Клуб API Карт

Множественное геокодирование

Пост в архиве.
Александр
9 июля 2014, 11:39

Подскажите пожалуйста

Как в примере про множественное геокодирование перебрать все точки и вывести (в консоль?) в виде массива "адрес|координаты"?

 

http://api.yandex.ru/maps/jsbox/2.1/multigeocode

 

11 комментариев

Внутри обработчика then

Что-то типа такого

objects.each(function (obj) {

console.log(obj.geometry.getCoordinates(), obj.properties.getAll());

});

Александр
27 января 2016, 23:57

подскажите

если я пишу 

 

var objects = ymaps.geoQuery(ymaps.geocode('Волгоград,ул. им. 64-й Армии, 131'))

.add(ymaps.geocode('Волгоград,ул. им. 64-й Армии, 28А'))

       .addToMap(myMap);

то на карте проставляется 7 меток.заметил это когда вставил 55 адресов, а координат получил 80 строк.что делать?

 

 

55 адресов это 55 http-запросов с каждого пользователя

Не надо делать множественное геокодирование на клиенте

геокодируйте на сервере и создавайте метки по координатам

Александр
27 января 2016, 23:57

не не не

55 запросов я делаю что бы узнать координаты - дальше по этим координатам построятся точки и все. пользователи не будут так делать :)

 

вопрос не в этом. почему когда я задаю 2 адреса - строится 7 точек?

по одному запросу может быть найдено несколько объектов

используйте опцию results:1 чтобы запрашивать только один результат

Александр
27 января 2016, 23:57

если вы посмотрите на запрос то я ищу 2 дома по улице 64й армии.

а если попробуете поискать - то увидите что в результатах поиска будет 3 раза просто улица 64 армии

2 правильных ответа

и 2 совершенно леввых улицы с другого района волгограда

 

ЗЫ а как мне быть увереным что этот "один результат" будет тот что нужно?

Александр
27 января 2016, 23:57

делаю так

 var objects = ymaps.geoQuery(ymaps.geocode('Волгоград,ул. им. 64-й Армии, 131'),{result:1})

.add(ymaps.geocode('Волгоград,ул. им. 64-й Армии, 28А'),{result:1})

.addToMap(myMap);


на карте 4 точки

Александр
27 января 2016, 23:57

ваш парсер спотыкается на адресе

если убрать

"им."

то все станет нормально.

 

спасибо большое

 

Александр
27 января 2016, 23:57

не могу удержаться

.add(ymaps.geocode('Волгоград,ул. 39-я Гвардейская, 29Б'),{result:1})//

выводит ДВЕ метки на карте

одна с адресом, другая

"

станция скоростного трамвая Улица имени 39-й Гвардейской дивизии

Россия, Волгоград, Волгоградский скоростной трамвай"

 

1. Опция называется results

2. Это опция геокодера (ymaps.geocode), а не метода add

Александр
27 января 2016, 23:57

ага, еще раз спасибо