Android Google map - отступление, если маршрут к месту назначения не найден - PullRequest
0 голосов
/ 20 декабря 2018

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

String uri = "http://maps.google.com/maps?daddr=" + destLat + "," + destLong + " (" + safeURLString + ")"; //first way
//String uri = "https://www.google.com/maps/search/?api=1&query=" + destLat + "," + destLong; //second way
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setPackage("com.google.android.apps.maps");
if (intent.resolveActivity(getPackageManager()) != null) {
    startChildActivity(intent);
}

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

Можно ли проверить, не найден ли маршрут, затем использовать запасной / обратный вызов, чтобы попробовать второй URL-адрес ИЛИ хотя бы отметить пункт назначения?

1 Ответ

0 голосов
/ 21 декабря 2018

Вы можете использовать HttpUrlConnection и API направлений для проверки существования маршрута:

https://maps.googleapis.com/maps/api/directions/json?origin=<originLat>,<originLon>&destination=<destLat>,<destLon>&key=<YOUR_DIRECTIONS_API_KEY>

, а если HttpUrlConnection, например:

{
   "geocoded_waypoints" : [ {}, {} ],
   "routes" : [],
   "status" : "ZERO_RESULTS"
}

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

{
   "geocoded_waypoints" : [

   <lines of response here> 
   ...

   ],
   "status" : "OK"
}
...

, маршрут существует, и вы можете использовать первый способ, чтобы найти маршрут.Поэтому используйте Directions API через HttpUrlConnection и отметьте тег "status": если "status" : "OK" - маршрут существует.

...