Клуб API Карт

Геокодирование объектов, в кластер

maxnesterenko
29 декабря 2014, 07:02

Здравствуйте!

Бьюсь, никак не могу решить поставленную задачу...

Странице передается список адресов объектов (адреса в виде строк), нужно добавить их на карту, при этом чтобы чтобы в балунах - было название объекта и его адрес. И все это собиралось в кластер...

 

Собственно вот такое устраивает:

 

myGeoObjects = [];
myGeoObjects[0] = new ymaps.GeoObject({
   geometry: {type:"Point",coordinates:[44.155903,133.264336]},
   properties: {
     clusterCaption:\'Геообъект №1\',
     hintContent: \'Название\',
     balloonContentHeader: \'Название\',
     balloonContentBody: \'Содержимое балуна геообъекта №1.\'
  }
});
clusterer.add(myGeoObjects);
myMap.setBounds(clusterer.getBounds());
myMap.geoObjects.add(clusterer);

 

Но - здесь принимаются координаты, а не адрес... Сделал такое - вроде то что нужно, правда, добавляется только последний объект, но - никак не получается собрать всё в кластер...

  

 

    myCollection = new ymaps.GeoObjectCollection();

    myPoints = [{adress:'Арсеньев, Садовая, 19', text: 'Арсеньев Средняя школа №5 (10251)'},{adress:'Арсеньев, Олега Кошевого, 3', text: 'Арсеньев Средняя школа №10 (10252)'}];

    for (var i = 0, l = myPoints.length; i < l; i++) {

var point = myPoints[i];

ymaps.geocode(point.adress).then(function (res) {

var firstGeoObject = res.geoObjects.get(0);

var coords = firstGeoObject.geometry.getCoordinates();

 

myCollection.add(new ymaps.Placemark(

[coords[0],coords[1]], {

hintContent: point.text,

   balloonContentHeader: point.text,

              balloonContentBody: point.adress

}

));

});

    }

myMap.geoObjects.add(myCollection).applyBoundsToMap(myMap);

myMap.setBounds(myCollection);

 

 

Можно как-то объединить и кластер, и объекты. добавляемые по адресу, и - свое произвольный балун у них?
Заранее большое спасибо!
5 комментариев
Подписаться на комментарии к посту

Не надо так делать

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

https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/geocoding-docpage/#multi-geocode

http://ymapsapi.ya.ru/replies.xml?item_no=81

Замечательно, спасибо!

Первую ссылку изучал, а вторую вот не видел... А еще вопрос - можно ли передавать в скрипт "http://geocode-maps.yandex.ru/1.x/?geocode=....." например сразу несколько адресов, чтобы ускорить ответ для нанесения меток на карту? А то например 100-500 меток долго идут, а они динамические, раз за разом новые...

 

А то например 100-500 меток долго идут, а они динамические, раз за разом новые...

 

Что у вас за проект? есть ссылка?

доступной ссылки пока нет, настраивается пока еще в сетке...

Про 500 конечно погорячился:)) , но 40 грузится тоже долго ((

 

чтобы ускорить ответ для нанесения меток на карту?

еще раз, метки на карту надо выводить из своей БД по координатам это будет быстро.