Я делаю приложение, которое обновляет местоположение и путь пользователя в реальном времени и отображает это на карте 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)]}
То, что я делаю, это хранить список координат в качестве значения ключа, который является идентификатором пользователя. Моя программа постоянно обновляет этот список при каждом изменении местоположения путем добавления в список (это работает правильно).
Что мне нужно сделать, это обновлять местоположение маркера при каждом изменении местоположения. Я хотел бы сделать это, выбрав последний элемент в массиве, так как это будет последнее известное местоположение. Прямо сейчас, каждый раз, когда местоположение изменяется, к карте добавляется новый маркер (каждая из точек в примере показывает маркер в этом месте), поэтому маркеры продолжают добавляться.
Я бы использовал инструкцию'for (x in loc) 'каждый раз, когда местоположение обновляется, чтобы захватить последнее местоположение из списка и использовать это для обновления маркера. Как выбрать последний элемент из массива в хеше?