Клуб API Карт

Подгружать адреса точек маршрута по координатам

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

Добрый день!

У меня есть начальная точка и несколько точек, через которые надо проложить маршрут.

Для начала я строю от начальной точки маршрут ко всем точкам и закидываю данные о маршрутах в массив, узнаю какая точка ближняя и записываю ее, далее от этой ближней точки строю маршрут ко всем остальным и нахожу ту, до которой по времени ближе, в итоге получается список точек, через который надо проложить этот маршрут. Строю маршрут и указываю промежуточные точки wayPoint.

Вопрос: при нажатии на точки маршрута выскакивает балун с координатами точки, как можно сделать чтобы у меня там был адрес?

И еще вопрос в том, как узнать при формировании маршрута по адресу правильно ли он определил адрес, ведь бывает такое, что дом или корпус не существует, как сравнивать эти значения, тоесть какой искался и какой нашелся?

Спасибо!

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

Это наверное больше сотни http-запросов на один маршрут получается? Почему бы не рассчитывать просто на основании расстояния по прямой?

1. Можно получить из маршрута коллекцию путевых точек и обновить им данные в балуне

2. Нужно геокодировать адрес и смотреть в поле precision 

 

Маршрут обычно 3-5 точек, на расстоянии прямой не учитываются пробки, поэтому приходится строить маршрут.

1. route.getWayPoints(); это понятно, циклом пройдусь по ним, и сделаю запрос geocode, но там запрос же пройдет асинхронно, правильно ли запишутся значения? Можно пример?

2. ymaps.geocode([координаты]).then(function(res)
  {console.log(res.precision)}); пусто, или как нужно?

Можно ли как-нибудь обозначить вызванные запросы чтобы по приходу результатов можно было знать по какому запросу этот результат? 

 

 UPD. Нашел как обратиться к precision:

geocode.geoObjects.get(0).properties._T.metaDataProperty.GeocoderMetaData.precision

 

 

Мне нужно как-то передать параметр к запросу геокодирования, например уникальный идентификатор запроса, чтобы потом его определить по результатам асинхронного выполнения, можно ли как-то это сделать? Например мне нужно провести геокодирование и по результату в балун присвоить уникальную информацию по именно этому геокодированию.

 

 

 

 

 

 

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

используйте задокументированные интерфейсы

precision нашел только тут:

http://api.yandex.ru/maps/doc/jsapi/1.x/ref/reference/geocoderresult.xml

в итоге не понятно как к нему обращаться...

 

 

 

 

Можете посмотреть все что есть в данных, среди них должно быть и это поле.

console.log(geocode.geoObjects.get(0).properties.getAll());

спасибо!