API Карт Google - расстояние, пройденное в городе и за его пределами - PullRequest
0 голосов
/ 01 ноября 2018

Таким образом, пользователь дает мне две начальные точки A и B. Я могу рассчитать общее расстояние вождения между этими точками, но мне интересно, возможно ли получить расстояние, пройденное внутри города и за его пределами.

Что я хочу узнать, так это расход топлива, и у меня есть два значения потребления. Одно значение - это когда вы едете по городу, а другое - когда вы путешествуете за пределами города. Так меньше трафика, национальных дорог, автомагистралей и т. Д.

Например, значения расхода топлива:

city - 9l/100km
outside - 7l/100km

Расстояние между A и B

10km inside city
50km outside city

Расход топлива:

9/100 * 10 + 7/100 * 50

Спасибо

1 Ответ

0 голосов
/ 01 ноября 2018

Вы не можете сделать это автоматически, внедрив какие-либо API, предоставленные Google. Однако есть несколько ручных способов. Необходимо составить базу данных границ города:

Эта ссылка возвращает детали города. Например, при поиске «Нью-Йорк» будет показана граница Нью-Йорка, например:

image

Теперь, если вы нажмете кнопку детализации, вы получите идентификатор OSM, который для Нью-Йорка равен «175905».

Теперь вам нужно перейти на эту ссылку , вставить этот OSM в текстовое поле Id of relation и отправить. Вы получите полилинию информации во многих форматах. Как и в Нью-Йорке - вам нужно сохранять информацию о полилинии для каждого города, который вы хотите включить в свое приложение.

Теперь задача становится легкой:

Добавьте это в свои зависимости:

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.5+'
}

и проверьте, подпадает ли ваше текущее местоположение под любой полигон из вашей базы данных городов:

PolyUtil.containsLocation(yourLocation, cityPolyPointsList, false);

...