2016-05-17 11 views
2

Ich verwende Google Distance Matrix API, um Entfernungen von zwei Standorten nachzuschlagen. Ich muss die Suche auf das Vereinigte Königreich beschränken, da ich Probleme habe. Wenn Sie eine unvollständige Postleitzahl suchen, z. B. "L20", schlägt Google sofort einen "L20" -Bereich in den USA vor, der offensichtlich keine Ergebnisse liefert.Google Entfernung Matrix - Limit Land

Wie beschränke ich die Google-Annahmen/Suchkriterien auf ein bestimmtes Land?

Dies ist mein aktueller Code:

function dist($addr, $addr2) { 
    $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ($addr) . '&destinations=' . urlencode ($addr2) . '&key='; 
    return getCachableContent ($url); 
} 
+0

versuchen, dies zu lesen http : //stackoverflow.com/questions/23234975/how-to-restrict-google-map-api-to-find-places-within-a-specific-country-and-city/ http://stackoverflow.com/questions/14956511/googl e-geocodeing-api-search-in-nur-ein-land –

+0

@ d.datul1990 leider sind sie für map api, nicht distanzmatrix, ich habe sie ausprobiert, aber sie sehen nicht zu arbeiten. – Deckerz

+0

@Deckerz Ich habe das gleiche Problem. Haben Sie alle eine Lösung gefunden? –

Antwort

0

Sie könnten versuchen, den Google Geocoding API zusammen mit dem Google Distance Matrix API als Teil der Lösung. Die Geocodierungs-API kann Länderinformationen für eine bestimmte Adresse bereitstellen (siehe z. B. https://developers.google.com/maps/documentation/geocoding/start, z. B. Google Geocoding API-Ausgabe).

Zuerst würden Sie die Adressen an die Geocoding-API übergeben, um festzustellen, ob die Adresse einen Länderwert von, in Ihrem Fall, Großbritannien hat. Wenn ja, übergeben Sie die Werte an die Distanz-API.

UPDATE 1: Beispielcode basiert auf dem Original-Code

ursprünglichen Code Taking:

function dist($addr, $addr2) { 
    $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ($addr) . '&destinations=' . urlencode ($addr2) . '&key='; 
    return getCachableContent ($url); 
} 

es so etwas wie folgt aussehen:

function dist($addr, $addr2) { 
    $geocodeurl1 = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode ($addr) . '&key=';   

    $geocodeurl2 = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode ($addr2) . '&key='; 

    //Then do some checking here to see if the country values for both returns above are UK based (e.g. if statements). If both are UK then proceed to perform your original call to the distancematrix 
    $distanceurl = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ($addr) . '&destinations=' . urlencode ($addr2) . '&key='; 
    return getCachableContent ($distanceurl); 
} 
Verwandte Themen