jVectorMap: как динамически добавить маркер по координатам?

У меня есть карта, преобразованная из файла SVG, и теперь я хочу добавить маркер на эту карту прямо в позицию курсора. Но маркер расположен в неправильном месте, и они не следуют никаким правилам, поэтому я не могу их отслеживать и корректно изменять.
Из этого примера: http://jvectormap.com/examples/mall/ Я знаю, что мы можем размещать маркеры на карте по их координатам, а не по долготе и широте карты. Но они ставятся при инициализации карты, а я хочу ставить маркер динамически каждый раз, когда я щелкаю мышью.
И из этого примера: http://jvectormap.com/examples/reverse-projection/, мы можем поставить маркер прямо в позицию курсора, но карта требует врезок и проекции (для преобразования e.offsetX и e. offsetY to lat, long), в то время как моя карта настроена из файла SVG, поэтому эта информация отсутствует.
Так вы можете мне помочь:
1. Как определить вставки и проекцию для пользовательской карты? (Я использую http://svgto.jvectormap.com/ для преобразования файла SVG, но он просто возвращает пути)
2. Без использования долготы и широты карты, как я могу поставить маркер точно в позицию курсора?
Большое спасибо.


person Đinh Hồng Châu    schedule 22.03.2014    source источник


Ответы (3)


При добавлении маркера просто укажите ключ coords с нужными координатами в конфигурации вместо latLng:

map.addMarker(markerIndex, {coords: [100, 100]});
person bjornd    schedule 22.03.2014
comment
Спасибо @bjornd, я попробовал. Но маркер не был размещен прямо в позиции курсора. Я использовал: 'map.addMarker(markerIndex, {координаты: [e.offSetX, e.offsetY]});' - person Đinh Hồng Châu; 22.03.2014

Я нашел это решение, которое работает для меня

map.addMarker(markerIndex, {координаты: [(e.offsetX / map.scale) - map.transX, (e.offsetY / map.scale) - map.transY]});

Независимо от того, увеличивается масштаб или нет, позиционирование компенсируется.

Лоренцо

person LorenzoGi    schedule 27.04.2014

У меня есть предложение. Если вы собираетесь использовать плагин jVectorMap для работы с векторной картой, вы можете взглянуть на это: AmMap. Я использовал его для решения почти всех проблем, возникающих при работе с jVectormap. Кроме того, он также предоставляет множество замечательных функций с гибкими настройками.

person Đinh Hồng Châu    schedule 27.04.2014
comment
не отвечает на вопрос. ссылки на коммерческий сайт. почти уверен, что в stackdocs есть что-то относительно этого типа ответа - person ; 14.03.2015
comment
@gerdi К сожалению, я не знаю этого правила. На самом деле я решил эту проблему, объединив несколько методов для управления SVG до абсолютной координаты и настройки плагина jVectorMap. Трудно рассказать вам подробности, так как до сих пор прошло больше года. Затем я нашел AmMap (да, это коммерческая библиотека JS), но я думаю, что это просто личная акция для тех, кто хочет больше возможностей. - person Đinh Hồng Châu; 17.03.2015
comment
Не беспокойтесь .. Я не думаю, что вам * не разрешено , но это кажется более подходящим в качестве комментария, чем фактический ответ, поскольку он не отвечает на вопрос напрямую. - person ; 17.03.2015