0

Ich verwende derzeit Google Maps Anfahrt API (Web Services), um zwischen den Bahnhöfen zu routen, aber ich finde die Ergebnisse gehören Wanderwege Richtungen trotz Herkunft und Ziel verbunden Bahnhöfe .Wegbeschreibung API - Routing zwischen Bahnhöfen enthält unnötige Richtungen

Zum Beispiel, wenn ich Route von Birmingham International (UK) und London Euston, die über direkte Routen beide verbunden sind, ich die Ergebnisse erhalten:

Birmingham International to London Euston

Beachten Sie, dass die Suche an die Stelle mit tat IDs und beide Orts-IDs werden als Bahnhöfe angegeben. Daher weiß Google, dass sowohl der Ausgangspunkt als auch das Ziel Stationen sind und nicht nur Straßenadressen.

Wenn ich Birmingham Internation zu Kings Cross Station, die nicht miteinander verbunden sind:

Birmingham International to Kings Cross

Der letzte Schritt in die richtige ist, dass Sie von Euston nach Kings Cross gehen müsste, aber der erste Schritt ist falsch, da die Herkunftsort-ID bereits der Bahnhof ist.

Gibt es etwas, das mir hier fehlt? Ich möchte die Laufrichtungen wie beim 2. Beispiel beibehalten, aber das erste Beispiel sollte nur einen Schritt haben, da sowohl der Ursprung als auch das Ziel Bahnhof sind.

Prost im Voraus.

+0

Du hast recht, das sind ziemlich dumm zu Fuß Richtungen. Können Sie den Code Ihrer Routenanfrage anzeigen? Es muss möglich sein, diese mit einer gewissen Logik zu filtern –

+1

Es sieht so aus, als ob die Ursprungsort-ID einen Zugangspunkt zum Bahnhof darstellt, so dass der zu Fuß gehende Teil zu erwarten ist. Sehen Sie sich diese Route im Routenplaner-Rechner an: https://directionsdebug.firebaseapp.com/?origin=place_id%3AChIJE3Z8xJq8cEgRCtDfBcX984c&destination=place_id%3AChIJmxO_XDwbdkgR-zjbcc_J6Xs&mode=transit. Wahrscheinlich berücksichtigt die Route-API immer Access Points und bietet Wegbeschreibungen. – xomena

+0

Ja genau. Wenn der Ursprung ChIJE3Z8xJq8cEgRCtDfBcX984c ist, dann bekommen wir diese https://ibb.co/nrCDEv Wenn der Ursprung in der Route die Position des zweiten Punktes ist (lat: 52,450676, lng: -1,725229), dann es sieht so aus https://ibb.co/buZ4Ma –

Antwort

0

Hier ist mein vollständiger Code für die oben

geschrieben Bilder
<?php 
/* 
//Birmingham Int to Euston (Direct Route) 
$searchURLJSON = file_get_contents('https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJE3Z8xJq8cEgRCtDfBcX984c&destination=place_id:ChIJmxO_XDwbdkgR-zjbcc_J6Xs&mode=transit&key='.$googleMapsAPI); 

//Birmingham Int to Kings Cross (Indirect Route) 
$searchURLJSON = file_get_contents('https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJE3Z8xJq8cEgRCtDfBcX984c&destination=place_id:ChIJNVch-SMbdkgRqv1PBlyKQqU&mode=transit&key='.$googleMapsAPI); 
*/ 

$searchURLJSON = file_get_contents('https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJE3Z8xJq8cEgRCtDfBcX984c&destination=place_id:ChIJmxO_XDwbdkgR-zjbcc_J6Xs&mode=transit&key='.$googleMapsAPI); 
//$searchURLJSON = file_get_contents('https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJE3Z8xJq8cEgRCtDfBcX984c&destination=place_id:ChIJNVch-SMbdkgRqv1PBlyKQqU&mode=transit&key='.$googleMapsAPI); 

$searchURL = json_decode($searchURLJSON); 
print_r("<pre>"); 
print_r("<p>"); 
print_r("From: ".$searchURL->routes[0]->legs[0]->start_address." (id: ".$searchURL->geocoded_waypoints[0]->place_id.")<br />"); 
print_r("Types: "); 
foreach(($searchURL->geocoded_waypoints[0]->types) as $type){ 
    print_r($type.", "); 
} 
print_r("</p><p>"); 
print_r("To: ".$searchURL->routes[0]->legs[0]->end_address." (id: ".$searchURL->geocoded_waypoints[1]->place_id.")<br />"); 
print_r("Types: "); 
foreach(($searchURL->geocoded_waypoints[1]->types) as $type){ 
    print_r($type.", "); 
} 
print_r("</p>"); 
print_r("<h1>Route</h1>"); 
foreach(($searchURL->routes[0]->legs[0]->steps) as $step){ 
    print_r("<p>"); 
    print_r("(".$step->travel_mode.") "); 
    print_r($step->html_instructions); 
    print_r("</p>"); 
} 
print_r("</pre>"); 
?> 
Verwandte Themen