Расчет длины маршрута

голоса
2

У меня есть карта с около 80 аннотаций. Я хотел бы сделать 3 вещи.

1) Из моего текущего местоположения, я хотел бы знать фактический маршрут расстояние до этой позиции. Не линейное расстояние.

2) Я хочу, чтобы иметь возможность показать список всех аннотаций, но и для каждой аннотации (с LON / LAT) Я хотел бы знать фактическое расстояние маршрута от моего положения в эту позицию.

3) Я хотел бы знать, ближайшую аннотацию к моему possition, используя расстояние маршрута. Не линейное расстояние.

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

Я надеюсь, что кто-то может мне помочь.

С наилучшими пожеланиями, Пол Peelen

Задан 20/04/2010 в 08:49
источник пользователем
На других языках...                            


3 ответов

голоса
2

Из того, что я понимаю из вашего поста, я полагаю , вы искать Haversine формулы . К счастью для вас, есть целый ряд реализаций Objective-C , хотя писать собственный тривиален раз перед использованием формулы , о вас.

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

Ответил 29/04/2010 в 09:10
источник пользователем

голоса
1

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

Для получения расстояния, вы можете использовать Google Maps GDirectionsобъект ... как было указано здесь (в нижней части страницы есть « Маршруты и шаги » раздел, с передовым примером .

« The GDirections object also supports multi-point directions, which can be constructed using the GDirections.loadFromWaypoints() method. This method takes an array of textual input addresses or textual lat/lon points. Each separate waypoint is computed as a separate route and returned in a separate GRoute object, each of which contains a series of GStep objects.»

Использование API Карт Google в iPhone не должно быть слишком сложным, и я думаю , что ваш вопрос не распространяется, но если вам нужен некоторый базовый пример, вы можете посмотреть на этом вопросе, и перейдите к ответу.

Удачи!

Ответил 24/04/2010 в 16:23
источник пользователем

голоса
0

Расчет расстояния маршрута около 80 мест, несомненно, будет с интенсивными вычислениями на части Google, и я не могу себе представить, что вы могли бы сделать эти запросы к API Карт Google, были возможности сделать это на мобильном устройстве, не будучи сильно ограничены либо телефонной связи или ограничения скорости на сервере.

К сожалению, расчет расстояния по маршруту, а не геометрическое расстояния является очень дорогое вычислением с участием большого количеством данных о площади - данные вы почти наверняка не имеете. Это означает, что, к сожалению, это не то, что Core Location или MapKit может помочь вам.

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

Ответил 23/04/2010 в 08:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more