1

Ich möchte fragen, wie man erreicht, um die Koordinate in Geokodierung API zu bekommen, die wie diese geocoding api perimeter ab dem Moment ist, könnte ich in der Lage sein, die jsonresult der Geokodierung API, die Geometrie hat ": { " Grenzen ": { "Nordosten": { "lat": 37,842911, "lng": -85,682537 }, "SW": { "lat": 37,559684, "lng": -86,07509399999999 } }, " Standort ": { " lat ": 37.7030051, " lng ": -85.8647201 }, "Location_type": "APPROXIMATE", "Ansichtsfenster": { "Nordosten": { "lat": 37,842911, "lng": -85,682537 }, "SW": { "lat": 37,559684, „lng“: -86,07509399999999 } } },Wie bekomme ich den Umfang des Bereichs, der in der Geocodierung von api android ausgewählt wurde?

Was könnte der beste Teil verwenden Sie diesen Umfang zu erreichen, wie in der Karte?

Antwort

4

Sie können die SphericalUtil.computeLength Methode aus der Google Maps Android API Utility Library verwenden. Diese Methode empfängt List<LatLng> als Parameter und berechnet die Länge des Pfads, sodass Ihre Liste einen geschlossenen Pfad enthalten muss.

Sie können Ihre JSON dekodieren und den Umfang wie folgt berechnen:

try { 
    String jsonString = "{ \"bounds\" : { \"northeast\" : { \"lat\" : 37.842911, \"lng\" : -85.682537 }, \"southwest\" : { \"lat\" : 37.559684, \"lng\" : -86.07509399999999 } }, \"location\" : { \"lat\" : 37.7030051, \"lng\" : -85.8647201 }, \"location_type\" : \"APPROXIMATE\", \"viewport\" : { \"northeast\" : { \"lat\" : 37.842911, \"lng\" : -85.682537 }, \"southwest\" : { \"lat\" : 37.559684, \"lng\" : -86.07509399999999 } } }"; 
    JSONObject object = new JSONObject(jsonString); 

    JSONObject boundsJSON = object.getJSONObject("bounds"); 
    LatLng northeast = getLatLng(boundsJSON.getJSONObject("northeast")); 
    LatLng southwest = getLatLng(boundsJSON.getJSONObject("southwest")); 
    LatLng northwest = new LatLng(northeast.latitude, southwest.longitude); 
    LatLng southeast = new LatLng(southwest.latitude, northeast.longitude); 

    List<LatLng> path = new ArrayList<>(); 
    path.add(northwest); 
    path.add(northeast); 
    path.add(southeast); 
    path.add(southwest); 
    path.add(northwest); 
    double perimeter = SphericalUtil.computeLength(path); 
} catch (JSONException e) { 
    // TODO: Handle the exception 
    String a = ""; 
} 

Dies ist die getLatLng Methode, die ein (verwendet in der obigen Code) koordinieren decodiert:

private LatLng getLatLng(JSONObject coordinateJSON) throws JSONException { 
    double lat = coordinateJSON.getDouble("lat"); 
    double lon = coordinateJSON.getDouble("lng"); 

    return new LatLng(lat, lon); 
} 
+0

krank werde versuchen, diese Danke für die Post –