最佳答案
我正在制作一个应用程序,可以实时更新用户的位置和路径,并将其显示在Google地图上。我有一个功能,可以使用每秒钟更新一次的对象同时跟踪多个用户。
现在,当用户按下Android应用程序中的按钮时,坐标会被发送到数据库,每次位置发生变化时,地图上的标记都会更新(并形成一条折线)。
由于我有多个用户,我发送一个唯一的随机生成的字母数字字符串,以便我可以为每个用户显示一个单独的路径。当JS从数据库中提取此数据时,它会检查用户是否存在,如果不存在,它会创建一个值为列表的新键。它看起来像这样:
loc = {f096012e-2497-485d-8adb-7ec0b9352c52: [new google.maps.LatLng(39, -86),
new google.maps.LatLng(38, -87),
new google.maps.LatLng(37, -88)],
44ed0662-1a9e-4c0e-9920-106258dcc3e7: [new google.maps.LatLng(40, -83),
new google.maps.LatLng(41, -82),
new google.maps.LatLng(42, -81)]}
我正在做的是将坐标列表存储为键的值,即用户的ID。我的程序会在每次通过添加到列表来更改位置时不断更新此列表(这可以正常工作)。
我需要做的是每次位置变化时更新标记的位置。我想通过选择数组中的最后一项来做到这一点,因为那将是最后一个已知位置。现在,每次位置更改时,都会向地图添加一个新的标记(示例中的每个点都会在该位置显示一个标记),以便继续添加标记。
每次位置更新时,我会使用'for(x in loc)'语句从列表中获取最后一个位置并使用它来更新标记。如何从哈希中的数组中选择最后一个元素?