Как работать с маркерами и переменными в листовке

Я пробую использовать библиотеку leafletjs.com, которая, на мой взгляд, очень хороша для мобильного приложения, но сомневаюсь, как к ней подойти.

Я пытаюсь создать карту в реальном времени, где маркеры представляют положение каждого вошедшего в систему пользователя. Если пользователь перемещается, маркер пользователя должен перемещаться соответствующим образом.

Немного сомневаюсь, как это сделать в листовке. Моя проблема просто в том, как правильно сделать много маркеров, чтобы потом я мог их подбирать и перемещать.

Сначала мне нужно добавить каждый маркер в группу слоев и добавить эту группу слоев на карту, верно?

Но позже, как мне программно выбрать один конкретный маркер и обновить его положение?

Нужно ли мне использовать какие-либо плагины или это все, что мне нужно?

Томас


person user2561876    schedule 08.07.2013    source источник


Ответы (2)


Нет, вам не нужно добавлять маркеры в группу слоев, и вам не нужны плагины. Чтобы добавить маркер на карту, вы можете просто сделать:

var marker = L.marker([50.5, 30.5]);
marker.addTo(map);

Если вам нужно переместить маркер программно, вы можете использовать setLatLng:

marker.setLatLng([40.5, 40.5]);

Как вы решите сопоставить пользователей с маркерами, действительно зависит от вас. Простым решением может быть использование объекта, где ключи - это userId (или какой-либо другой идентификатор пользователя), а значения - маркеры:

var users = {
  11: L.marker([35.5, 15.5]), 
  15: L.marker([40.5, 20.5]), 
  17: L.marker([45.5, 25.5])
}

Вы читали документацию Leaflet?

http://leafletjs.com/reference.html

Вы также можете прочитать этот небольшой пример использования Leaflet на мобильных устройствах:

http://leafletjs.com/examples/mobile.html

person Robert Kajic    schedule 08.07.2013