OpenStreetMap-logo OpenStreetMap

Знакомство с API

Pleatst troch Skilowatt op 20 oktober 2012 yn it Russian (Русский).
Директор сказал встроить в сайт карту. Я выбрал OpenStreetMap, и начал изучать её API.  Благодаря примерам в wiki быстро стало паонятно что к чему, однако я не сразу нашел, как группировать метки при уменьшении зума. Но до сих пор не понятно, как сделать надпись на метке группы с количеством меток, входящих в неё. Каждая метка в HTML-коде задается тегом <image> (о котором не удалось найти информацию в интернете), так что наверное никак. На Google Maps API кстати для этого есть специальная функция. 
Но переходить на гугл нельзя, т.к. планируется наложение на эту карту своих слоёв, которые будут храниться у нас на сервере - OSM в этом смысле единственный в своем роде, поэтому оставляю как есть и буду наверное делать какой-нибудь костыль на JS, который к каждому <image> прилаживает <div> с нужной циферкой. А пока метка группы просто изменяет свой размер в зависимости от количества вложенных меток.
Email icon Bluesky Icon Facebook Icon LinkedIn Icon Mastodon Icon Telegram Icon X Icon

Discussion

Reäksje fan Zverik op 20 oktober 2012 om 13.32 oere

Это называется clustering, и присутствует во всех библиотеках. Как я понял, вы используете OpenLayers. Вот примеры для него: http://openlayers.org/dev/examples/?q=cluster

Для библиотеки Leaflet (более простой, говорят) плагин с примерами здесь: https://github.com/danzel/Leaflet.markercluster

Reäksje fan Skilowatt op 20 oktober 2012 om 17.35 oere

Zverik, спасибо за комментарий. Примеры на сайте OpenLayers я видел, они не подходят потому что нужны цифры на маркерах группы и они не должны быть просто кружками, я использую свойство externalGraphic в стиле. Посмотрел демку Leaflet, вроде то что надо, позже посмотрю, можно ли использовать картинки вместо зеленых квадратиков (маркер группы) и увеличение карты при клике на маркер группы.

Reäksje fan Skilowatt op 20 oktober 2012 om 17.39 oere

А, всё, нашел. Всё это есть. Еще раз спасибо.

Meld jo oan en lit in reäksje efter