2015-07-26 4 views
7

Wie kann ich mit der API v3 von Google Maps einen Stadtnamen geocodieren und eine Karte mit dem Umriss des Ergebnisses zurückgeben? normalerweise ist dies eine politische Einheit mit strengen Grenzen, wie eine Stadt, Gemeinde usw.Welche API-Methode bietet die Zeichnung der Grenzen einer Stadt?

Welche API method sollte verwendet werden?

+1

Es gibt keine API (derzeit), die diese Daten bereitstellt. – geocodezip

+5

Hallo Downvoters und Closers! ** Externe APIs sind strikt am Thema **. Wenn Sie ein Problem mit der Struktur der Frage haben, lassen Sie es uns in den Kommentaren wissen! Wenn für ein Feature derzeit keine API vorhanden ist, ist dies immer noch eine gültige Antwort. Wenn sich dies bei Google ändert, kann diese Frage mit einer neuen Antwort aktualisiert werden, in der erläutert wird, wie diese neue API verwendet wird. –

+1

Ich freue mich auch auf eine API – Daniel

Antwort

1

Ich glaube, Sie Tiger/Line files benötigen, wie in diesem answer verwiesen. Sie können die Daten zu generate polygons verwenden. Verwenden Sie Geocoder.geocode, um nach Städtenamen zu suchen. Hier ist eine Versprechen basierte Funktion, die ich verwende:

function locateAddress(address) { 
    var deferred = $q.defer(); 
    if(!address) { $q.resolve(null); return; } 

    var geocoder = new google.maps.Geocoder(); 

    var a = address; 
    if(_.isObject(a)) { 
     a = (a.line1 || '') + ' ' + (a.city || '') + ' ' + (a.state || '') + ' ' + (a.zip || ''); 
    } 

    geocoder.geocode({ 'address' : a}, function(results, status) { 
     if(status === 'ZERO_RESULTS') { 
     deferred.resolve(null); 
     return; 
     } 

     var c = results[0].geometry.location; 
     deferred.resolve({latitude: c.lat(), longitude: c.lng()}); 
    }, function(err) { 
     deferred.reject(err); 
    }); 

    return deferred.promise; 
    } 
Verwandte Themen