iPhone: маршруты Google Maps

я разрабатываю приложение для iPhone, которое встраивает mapView, созданное с помощью mkmapkit. У меня есть две координаты, и я отслеживаю направление между этими двумя точками.

Все работает хорошо. Я использую API карт Google: maps.googleapis.com/maps/api/directions для получения XML со всеми шагами направления.

Но одно очень странно: я просто не могу понять, почему направление движения не точное. Между двумя шагами он проводит прямую линию и не следует по дороге, в то время как в режиме пешеходного движения он очень точно отслеживает направление, следуя дорогам.

Режим вождения: http://www.michael-blin.fr/misc/aden/google/driving.png

Режим ходьбы: http://www.michael-blin.fr/misc/aden/google/walking.png

Мой вопрос прост: вы когда-нибудь использовали API карт Google и можете ли вы понять, почему один более точен, чем другой...


person Bejil    schedule 24.02.2011    source источник


Ответы (1)


Кажется, что ваши направления движения ведут вас по основным дорогам или автомагистралям, поэтому нет изменения направления движения между каждой из этих точек. Вы не указали ответ, который вы получаете от API направлений, но я предполагаю, что вы получаете шаги по маршруту, где вам нужно изменить направление, например. транспортные развязки и т. д.:

Документация Google: каждый элемент в массиве шагов определяет один шаг рассчитанного направления. Шаг — это самая атомарная единица маршрута направления, содержащая один шаг, описывающий конкретную единственную инструкцию в путешествии. Например. «Поверните налево на W. 4th St.» Шаг не только описывает инструкцию, но также содержит информацию о расстоянии и продолжительности, относящуюся к тому, как этот шаг относится к следующему шагу. Например, шаг, обозначенный как «Выезд на I-80 West», может содержать продолжительность «37 миль» и «40 минут», указывая на то, что следующий шаг находится в 37 милях/40 минутах от этого шага.

Когда вы идете, вы чаще сменяетесь, чтобы пройти кратчайший путь.

API направлений не предоставляет вам точных наложений, которые соответствуют фактически пройденным дорогам. Только позиции, где вы вносите изменения.

В качестве альтернативы вы можете взглянуть на поле overview_polyline в ответе. Это может иметь более плавный путь, чем при использовании путевых точек.

person Claus Broch    schedule 24.02.2011
comment
Большое спасибо, это работает как шарм! Я настраиваю эту функцию для анализа полей полилиний: fkn1337.com/decode-google- maps-polylines-objective-c - person Bejil; 24.02.2011