OpenStreetMap

Директор сказал встроить в сайт карту. Я выбрал OpenStreetMap, и начал изучать её API.  Благодаря примерам в wiki быстро стало паонятно что к чему, однако я не сразу нашел, как группировать метки при уменьшении зума. Но до сих пор не понятно, как сделать надпись на метке группы с количеством меток, входящих в неё. Каждая метка в HTML-коде задается тегом <image> (о котором не удалось найти информацию в интернете), так что наверное никак. На Google Maps API кстати для этого есть специальная функция. 
Но переходить на гугл нельзя, т.к. планируется наложение на эту карту своих слоёв, которые будут храниться у нас на сервере - OSM в этом смысле единственный в своем роде, поэтому оставляю как есть и буду наверное делать какой-нибудь костыль на JS, который к каждому <image> прилаживает <div> с нужной циферкой. А пока метка группы просто изменяет свой размер в зависимости от количества вложенных меток.

Discussion

Comment from Zverik on 20 October 2012 at 13:32

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

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

Comment from Skilowatt on 20 October 2012 at 17:35

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

Comment from Skilowatt on 20 October 2012 at 17:39

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

Log in to leave a comment