Клуб API Карт

Маршруты, уточнить запрос?!?!

xxxPatriot777xxx
11 ноября 2010, 18:58

Добрый вечер.

Допустим пользователь в данный момент  находится в городе Брянск.

ищем по названию улиц new Router([Красноармейская 174, Красноармейская 1]) , в результате маршруты говорят что, в Саранске невозможно проложить маршрут по этим улицам, но сейчас карта маштабируется в брянске....

Вообщем подскажите, как угадывать желания пользователя? Ведь пользователь может ввести не названия улиц а названия городов ?

11 комментариев
Подписаться на комментарии к посту
Вообщем прогеокодируйте сначала все точки маршрута с boundedBy Брянска и параметром strictBounds = 1
а потом отдайте их роутеру уже ввиде геоточек
Комментарий удалён
 
Зачем делать 2а запроса из за одного действия?

Ну внутри роутера это тоже будет +2 запроса

Можете передать тот же boundedBy и strictBounds прямо роутеру
он их тоже понимает, но тогда он будет общим при поиске этих 2-х точек. (ну те либо Брянск либо Саранск)

Либо склейте адрес с городом

 
new Router(["Брянск, Красноармейская 174", "Брянск, Красноармейская 1"])

 
myRouter._wayPoints[0]._boundedBy = сюда ?
Все нашел, options.boundedBy :-)

Пасиба всем!
Итак, нам придется:
геокодировать город, что бы узнать его bounds
потом геокодировать точки маршрута,
а потом уже строить сам маршрут.
Пользователь вводит: от_ул Красноармейска, до_Москва, каширское.
В режиме бета-тестирования сервис доступен для маршрутов по Москве, Московской области и Украине.
Так вот все это надо для того что бы когда уже роутер говорит что не может проложить маршрут мы отмаштабировались и поставили 2е метки, именно на те места которые пользователь имел в виду.
Конечно было бы хорошо если бы роутер умел искать как геокодер, сначало в границах bounds, а уже потом по всему.
Интересное применение роутера.
Роутер вообще не умеет искать, а ходит в геокодер с вашими почтовыми адресами и областью поиска. Рекомендую всё же ходить в геокодер, и добавлять точки в группы. На группу также можно смаштабировать карту
Группы - хорошая идея.
Текущий вариант: из 2ух geoPoints, беру максимальные XY и минимальные XY, по ним выставляю  map.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(xmin,ymin), new YMaps.GeoPoint(xmax,ymax)));
Для вашей задачи подходит YMaps.GeoCollectionBounds.
Подробнее: http://api.yandex.ru/maps/jsapi/doc/dg/concepts/bounds.xml