Frage

Angeblich ist es möglich, diese von Google Maps oder einem solchen Dienst zu bekommen. (US-Adressen nur nicht gut genug ist.)

War es hilfreich?

Lösung

Der Begriff Sie suchen Geokodierung ist und ja Google diesen Dienst zur Verfügung stellen.

Andere Tipps

Wenn Sie dies tun wollen, ohne sich auf einen Dienst zu verlassen, dann laden Sie die

Sie können auch die versuchen OpenStreetMap Namefinder , die Open-Source-Wikis wie Straßendaten für die (potentiell) die ganze Welt enthält. Namefinder wird aufhören, am Ende August existieren, aber Nominatim ist sein Ersatz.

Google Sie erfordert eine Google-Karte mit ihren Daten zeigen, mit einem Maximum von 2,5k (waren 25k) HTTP-Anfragen pro Tag. Nützlich, aber Sie haben Nutzung zu beobachten.

Sie haben

http://groups.google.com/group/Google-Maps-API/web/resources-non-google-geocoders

(Google hat dies seit entfernt. Wenn Sie ein Duplikat oder Cache sehen, werde ich auf diesen Link.)

... in denen fand ich GeoNames welches sowohl einen herunterladbare db, kostenlosen Web-Service und einen kommerzieller Web-Service.

Google-Nutzungsbedingungen finden Sie API kostenlos nutzen, um ihre Geokodierung lassen, wenn Ihre Website wiederum frei ist für die Verbraucher zu verwenden. Wenn Sie nicht eine Lizenz für die Enterprise-Karten erhalten haben.

Für die Verwendung mit Drupal und PHP (und leicht modifiziert):

function get_lat_long($address) {
  $res = drupal_http_request('http://maps.googleapis.com/maps/api/geocode/json?address=' . $address .'&sensor=false');
  return json_decode($res->data)->results[0]->geometry->location;
}

Sie können hier an der Google Maps API-Dokumentation einen Blick auf einen Start auf diese:

http://code.google.com/apis/maps /documentation/services.html#Geocoding

Es scheint auch etwas zu sein, das man für internationale Adressen tun kann Live-Maps auch:

http://virtualearth.spaces.live.com/blog /cns!2BBC66E99FDCDB98!1588.entry

Sie können auch mit Microsofts MapPoint Web Service tun.

Hier ist eine Blog-Post, die erklärt, wie: http://www.codestrider.com/BlogRead. aspx? b = b5e8e275-cd18-4c24-b321-0da26e01bec5

R-Code die Breite und die Länge einer Straße Adresse

bekommen
# CODE TO GET THE LATITUDE AND LONGITUDE OF A STREET ADDRESS WITH GOOGLE API
addr <- '6th Main Rd, New Thippasandra, Bengaluru, Karnataka'  # set your address here
url = paste('http://maps.google.com/maps/api/geocode/xml?address=', addr,'&sensor=false',sep='')  # construct the URL
doc = xmlTreeParse(url) 
root = xmlRoot(doc) 
lat = xmlValue(root[['result']][['geometry']][['location']][['lat']]) 
long = xmlValue(root[['result']][['geometry']][['location']][['lng']]) 
lat
[1] "12.9725020"
long
[1] "77.6510688"

Wenn Sie möchten, dies in Python tun:

import json, urllib, urllib2

address = "Your address, New York, NY"

encodedAddress = urllib.quote_plus(address)
data = urllib2.urlopen("http://maps.googleapis.com/maps/api/geocode/json?address=" + encodedAddress + '&sensor=false').read()
location = json.loads(data)['results'][0]['geometry']['location']
lat = location['lat']
lng = location['lng']
print lat, lng

Beachten Sie, dass Google-Anfragen zu drosseln scheint, wenn es mehr als einen bestimmten Betrag sieht, so dass Sie nicht möchten, einen API-Schlüssel in Ihrem HTTP-Anforderung verwenden.

Ich hatte eine Charge von 100.000 Datensätze geocode zu sein und lief in Google API Grenze (und da es für einen internen Unternehmens-App war, mussten wir ihren Premium-Service aktualisieren, den $ 10K plus)

Also, ich verwendet, um dieses stattdessen: http://geoservices.tamu.edu/Services/ Geocode / BatchProcess / - sie auch eine API haben. (Die Gesamtkosten waren um ~ 200 $)

Sie können dies für Stadt wie in JavaScript versuchen Kohat

var geocoder = new google.maps.Geocoder();
var address = "kohat";
geocoder.geocode( { 'address': address}, function(results, status) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
alert(latitude+" and "+longitude);
  } 
});

In Python mit geopy PyPI verwendet, um die lattitude, langitude zu bekommen, zipcode etc .. Hier ist der Arbeitsbeispielcode ..

from geopy.geocoders import Nominatim

geolocator = Nominatim(user_agent="your-app-id")

location = geolocator.geocode("Your required address ")

if location:
    print('\n Nominatim ADDRESS :',location.address)
    print('\n Nominatim LATLANG :',(location.latitude, location.longitude))
    print('\n Nominatim FULL RESPONSE :',location.raw)
else:
   print('Cannot Find')

Nominatim - Einige Adressen können nicht arbeiten, so dass ich nur versucht MapQuest .
Es gibt richtig. Mapquest bietet Frei Plan 15000 Transaktionen / Monat. Es ist genug für mich.

Beispielcode:

import geocoder
g = geocoder.mapquest("Your required address ",key='your-api-key')

for result in g:
   # print(result.address, result.latlng)
   print('\n mapquest ADDRESS :',result.address,result.city,result.state,result.country)
   print('\n mapquest LATLANG :', result.latlng)
   print('\n mapquest FULL RESPONSE :',result.raw)

Hoffe, es hilft.

Ich weiß, dass diese alte Frage ist aber Google Art und Weise geografische Breite und Länge erhalten Ändern auf regelmäßige Basis.

HTML-Code

<form>
    <input type="text" name="address" id="address" style="width:100%;">
    <input type="button" onclick="return getLatLong()" value="Get Lat Long" />
</form>
<div id="latlong">
    <p>Latitude: <input size="20" type="text" id="latbox" name="lat" ></p>
    <p>Longitude: <input size="20" type="text" id="lngbox" name="lng" ></p>
</div>

JavaScript-Code

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>

    <script>
    function getLatLong()
    {
        var address = document.getElementById("address").value;
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latitude = results[0].geometry.location.lat();
                document.getElementById("latbox").value=latitude;
                var longitude = results[0].geometry.location.lng();
                document.getElementById("lngbox").value=longitude;
            } 
        });
    }
    </script>

Weitere Informationen finden Sie auf diesen Link: https://www.phpkida.com/java-script / get-Breite-Länge-von-Adresse /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top