2017-03-13 3 views
0

Ich versuche, eine Route zwischen der Ursprungskoordinate und der Zielkoordinate zu bekommen.iOS) Keine Route von zwei Koordinaten aus Google Richtungen api

Ich referenzierte stackoverflow.

So Mein Code unten:

let url = "https://maps.googleapis.com/maps/api/directions/json?origin=37.496375,126.9546903&destination=37.48121,126.9505233&mode=walking&key=MY_KEY" 
Alamofire.request(url).responseJSON 
{ response in 
print(response.request) // original URL request 
print(response.response) // HTTP URL response 
print(response.data)  // server data 
print(response.result) // result of response serialization 

let json = JSON(data: response.data!) 
let routes = json["routes"].arrayValue 

for route in routes 
{ 
    let routeOverviewPolyline = route["overview_polyline"].dictionary 
    let points = routeOverviewPolyline?["points"]?.stringValue 
    let path = GMSPath.init(fromEncodedPath: points!) 
    let polyline = GMSPolyline.init(path: path) 
    polyline.map = self.mapView 
} 
} 

Aber als Ergebnis response.data unter:

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

Über diese Frage suchte ich es und fand, dass es verursacht werden kann, wenn Die Koordinate kann nicht in die Adresse konvertiert werden.

Aber ich habe überprüft, dass beide Koordinaten durch 'CLGeocoder' (reverseGeocodeLocation) in die richtige Adresse konvertiert werden.

Schließlich habe ich bei 'maps.google.com' überprüft, dass die gleichen Koordinaten adressiert sind und die Route mir angezeigt wird.

Wie kann ich dieses Problem lösen?

+0

Ändern Haben Sie Route mit anderem Ursprung, Ziel kommen? –

+0

Ich testete verschiedene Paare (new_origin, new_destination), aber das Ergebnis ist das gleiche, ich werde die genaue URL aktualisieren, die ich angefordert habe. – LKM

Antwort

0

available_travel_modes enthält eine Reihe von verfügbaren Fahrmodi. Dieses Feld wird zurückgegeben, wenn eine Anfrage einen Reisemodus angibt und keine Ergebnisse liefert. Das Array enthält die verfügbaren Reisemodi in den Ländern der angegebenen Wegpunkte.

Ihre Antwort zurückgegeben als

"available_travel_modes":["TRANSIT"] 

versucht So mode=walking zu &mode=transit

+0

Vielen Dank, mit der Option "Transit", die Polylinie ignoriert die echte Wanderstraße ein wenig. – LKM

+0

Können Sie einen Screenshot anhängen? –

+0

Ja, aber ich denke, weil es die Route für Bus widerspiegelt ... Schwer, diese komplizierte Information zu analysieren. – LKM

0

Änderung Fahrmodus zu Fuß, ich meine zum Wandern kippt find Weg google, aber ich biete api Verwendung martix ähnlicher https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=(currentLat),(currentLng)&destinations=(restLat),(restLng)&key=MY_KEY&mode=driving

+0

Wofür steht der Code 'units = metric'? – LKM

+0

Google gibt Wert in Metern zurück –

+0

Danke, aber wie Sie die Antwort oben sehen können, nur 'Transit' Option kehrt zurück – LKM

Verwandte Themen