Клуб API Карт

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

Пост в архиве.

Всем привет! 

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

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

 

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

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

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

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

 

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

 

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

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

если недельку-две подождете - будет этот самый способ
Удалённый пользователь
28 января 2016, 06:54
Спасибо! Думаю имеет смысл подождать)

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

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

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

И на сколько удобнее будет метод загрузки данных, о котором вы говорили?
Имеет ли смысл его ждать?
скидываю в личку пример...
Удалённый пользователь
28 января 2016, 06:54
пока не получил...
написал вам в зеленый шарик рядом с именем. "личный чат" это
Удалённый пользователь
28 января 2016, 06:54
Начал работать с картой и возникли проблемы.
Пытаюсь сделать хотя бы это 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/

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

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




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




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



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



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

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

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

Кащей, можете скинуть пример реализации кластеринга? Кусок кода или что-то в этом роде? Хочу попробовать разобраться в этой штуковине:)
текушую версию показать наверное не смогу - кластер это 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) тех обьектов которые сейчас видны. Все что не в списке - не видно.
Удалённый пользователь
28 января 2016, 06:54
Так, что-то это сложнее чем я думал:)

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

Все же посмотрите как на альфе сделано (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();
    }

Удалённый пользователь
28 января 2016, 06:54
А как сие чудо прикрутить к своей карте?)
Что для этого надо сделать?

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

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

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

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