Клуб API Карт

Подскажите как лучше!?

mr.anyone
3 ноября 2010, 18:16

Всем привет! 

Все очень просто. Есть много торговых точек в разных городах России. Их нужно отобразить на карте.

Мне нравится как реализовано тут http://www.alfabank.ru/atm/moscow/ (показать на карте), собственно хочу сделать на подобии.

 

Но, возник ряд вопросов, а точнее один - как лучше сделать?

С добавлением карты на сайт и всяких кнопок к ней все понятно.

Думал добавлять метки через "мои карты", все получилось, но как потом поменять их стиль понять не могу.

Потом как избавиться от перегрузки метками? То есть что бы при малом увеличении была только одна метка, при нажатии на которую появлялись остальные, как на ссылке выше?

 

И вообще, может есть способ добавить всю массу необходимой информации более оперативно?

 

Заранее спасибо за помощь!

34 комментария
Подписаться на комментарии к посту
>И вообще, может есть способ добавить всю массу необходимой информации более оперативно?

если недельку-две подождете - будет этот самый способ
Спасибо! Думаю имеет смысл подождать)

А по остальным вопросам кто-нибудь сможет подсказать?
>о есть что бы при малом увеличении была только одна метка, при нажатии на которую появлялись остальные, как на ссылке выше?

поясните, на сайте альфабанка нифига не понятно что вы имели в виду
Ну например, в Москве несколько магазинов и они отмечены на карте метками. При уменьшении карты они будут на ней оставаться, а надо чтобы, скажем, при уменьшении карты до размера "X" вместо всех меток в Москве появлялась одна метка, при нажатии на которую происходило автоматическое увеличение и появлялись все метки в городе. Как-то так.
кластеринг в общем.
Такое тоже через некоторое время будет.
Единственное - уточните каким макаром вы хотите задавать данные
Вообще это один из самых главных для меня вопросов! Понятия не имею. Учитывая, что забивать около 100 объектов. Как посоветуете? Конечно вручную в коде не хочется. В последний раз была мысль через мои карты, но там встает вопрос со стилями меток.
Вариантов тут два - или мышкой драг и дроп, или автоматически геокодером.
Лично "я" поддерживаю только первый вариант.
но без ручек всеже обойтись не получиться :(
Полнедельки прошло, еще через полнедельки будет инструмент
Мышкой вы имеете ввиду в моих картах? Если да, то как потом изменить вид необходимых мне меток?
под "моими" я подразумевал мои а не яндексовые  :)
:-) я имел ввиду "мои карты".
Если я сейчас начну в "моих картах" наносить метки я смогу потом присвоить им свои иконки?
можно будет экспортнуть в yml и довинтить малек.
И так подвиду итоги.
на данный момент я могу:
Создать свою карту в "мои карты", экспортировать полученное в yml, в нем довести стили под себя и готово.

Смогу ли я потом на свое творение сделать кластеринг? (кстати если его пока нет, как тогда на сайте альфа банка сделано?:-\)

И на сколько удобнее будет метод загрузки данных, о котором вы говорили?
Имеет ли смысл его ждать?
скидываю в личку пример...
пока не получил...
написал вам в зеленый шарик рядом с именем. "личный чат" это
Начал работать с картой и возникли проблемы.
Пытаюсь сделать хотя бы это http://api.yandex.ru/maps/ymapsml/examples/parentstyleobject.html
все по аналогии, копирую код (кстати, как я понял, правила языке yml изменились, тот что в примерах не подходит), на карте объекты не отображаются.

Вот код:




http://maps.yandex.ru/ymaps/1.x"> 
  http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml"> 
     
       
         
          37.618205 55.744871 
          37.62344 55.752084 
         
       
     


    


 


  


   
     
    
          Кафе
          Пункт питания
          
            37.561598 55.692394
          
          #styleCafe
    
     
   
 




Что тут не так? И где можно взять актуальную информацию по yml?








    
Актуальная информация в руководстве и справочнике по YMapsML.
http://api.yandex.ru/maps/ymapsml/

Какие примеры у вас не заработали?
Прошу прощения, все работает. Возникла путаница из-за различий в коде примеров и экспортируемом с "мои карты".

Например:
Запись в примере выглядит так.




                Автозаправочная станция
                АЗС
                
                    37.501546 55.799411
                
                #styleGas




А в экспортируемом файле так.



                Автозаправочная станция
                АЗС
                
                    37.501546 55.799411
                
                #styleGas



Вот и запутался.

за что не люблю умные языки - что yml что kml - так за их недостаточную заумность.
Позволяют сделать много, но не сверх заложеного.

Давайте сделаем просто.
twitter.esosedi.ru - контролы управления - правый верх карты, драг и дроп.
Система вроде работает, но не особо чтобы хорошо. На полгода уже рефакторинг запаздывает.
Далее два пути - или региситрируетесь, или как либо еще сообщаете мне что это вы( типа привет кащей, вот одна из моих меток) - после чего раскидываете метки где вам надо.
Я их потом( по номеру пользователя или IP ) выкачаю и дам вам карту с кластеризацией.
Мог бы предложить более удобный вариант, но именно сегодня взял на доделку и ... сломал
В общем и целом со всеми крокозябрами разобрался.
С добавлением лады. С настройкой стилей тоже.

Кащей, можете скинуть пример реализации кластеринга? Кусок кода или что-то в этом роде? Хочу попробовать разобраться в этой штуковине:)
текушую версию показать наверное не смогу - кластер это 700 строк кода завязанный еще на сотни строк кода.

но - пример со статьи на хабре все еще актуальный - http://www.gdeetotdom.ru/map/#lat=55.72866&lng=37.81806&m=google&z=15&l=7-14

код на который можно оринтироваться - http://www.kashey.ru/maps/SAPI/scripts/SAPI/map/ztile/cluster.js

вас, в принципе, интересует  map.cluster.zpoint
а точнее функция  glueData - она определяет взаимное наложение маркеров и "клеит" - остальное обьвязки.
Скрипт работает исключительно на уровне данных и выдает в итоге( через getWorkingset id(ID_MAP_OBJECT) тех обьектов которые сейчас видны. Все что не в списке - не видно.
Так, что-то это сложнее чем я думал:)

То что я имел ввиду намного проще должно быть по моему мнению)

Все же посмотрите как на альфе сделано (http://alfabank.ru/atm/moscow/)! Там над схемой метро ссылка "показать на карте". Посмотрите как изменится картина при уменьшении карты до размера МКАДА например. 
Насколько я понял, вот скрипт этой штуковины http://alfabank.ru/f/1/atm/cityatms.js

Может там и проще можно сделать.
Все сводится к тому, что на карте у всех объектов стоит ограничение по зуму, например после 12 они не отображаются, но начинают отображаться другие иконки, которые являются кнопками и при нажатии переводят карту на, скажем, зум 10 с определенными координатами. То есть там нет привязки к объектам расположенным именно в Москве.

Конкретный пример можно реализовать более простым путем?
у них другой вариант, который работает сильно лучше моего :)


if (alfamap.map.getZoom() < 11 || $.browser.msie && false && alfamap.map.getZoom() < 12) {
        alfamap.hideOverlays();
        return showCitys();
    }

А как сие чудо прикрутить к своей карте?)
Что для этого надо сделать?

На данном этапе у меня простейший экспорт с видоизмененными метками.
у них просто ОТДЕЛЬНЫЙ набор обьектов для высоких зумов.
так и называется - города
Да но ведь они при этом кликабельны!

Ну в общем пока не представляю как это переделать, буду думать.
у них отдельный набор конечных обьектов + проверка маркеров на видимость
и отдельный набор групповых маркеров - городов.
тоесть "группировка" - выполнена в ручную оператором
Я с явой вообще не контачу, так что фиг что пойму там, кроме очевидного.

Что посоветуете почитать, желательно в нете?
Что бы хотя бы понять логику и отличить переменную от функции:-)
хрен его знает, но явно не javascript.ru :)
купите какойнить С\С++ для носорога - Си подобные языки очень хорошо для школьников и студентов описанны.
А javascript - очень сиподобный.
Различные тама замыкания и прототипы - можно и без них
А можете подсказать фрилансера, который сможет подкрутить это дело?
Там, как я понимаю, ничего сложного если понимаешь.
честно говоря никогда не крутился в их среде
Для начала вам нужно получить координаты этих объектов.
Как это сделать описано у нас в одной из статье:
http://ymapsapi.ya.ru/replies.xml?item_no=81

А потом уже их отображать. А дальше делать кластеризацию или можно вывести все метки с помощью активных областей.
Спасибо, буду разбираться!