it-swarm.com.de

Holen Sie sich das Land aus der geographischen Länge

Ich würde gerne wissen, wie ich mit JavaScript den Ländernamen aus Längen- und Breitengrad erhalten kann. Ich bin offen für die Verwendung der JavaScript-API von Google Maps. Kann ich auch Stadt und Postleitzahl erhalten?

Bearbeiten: Mein Ziel ist es, das Adressfeld automatisch auszufüllen, nicht auf einer Karte anzuzeigen.

45
aWebDeveloper

Ich weiß nicht, ob es mit Google Maps funktioniert, aber es gibt einen Webservice, der einen Ländercode zurückgibt und die Parameter Lat und Long als Parameter übernimmt.

Hier ist ein Beispiel:
http://api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo

Gibt ein JSON-Datum zurück: {"languages":"de","distance":"0","countryCode":"DE","countryName":"Germany"}

Ich habe auch eine kleine Beschreibung gefunden:

Der ISO-Ländercode eines beliebigen Punktes.

  • Webservice-Typ: REST
  • URL: ws.geonames.org/countryCode?
  • Parameter: lat, lng, type, lang, radius (Puffer in km für das nächstgelegene Land in Küstengebieten)
  • Ergebnis: Gibt den Iso-Ländercode für den angegebenen Längen- und Breitengrad zurück

Mit dem Parameter type=xml gibt dieser Dienst ein XML-Dokument mit ISO-Ländercode und Ländernamen zurück. Mit dem optionalen Parameter lang kann die Sprache angegeben werden, in der sich der Ländername befinden soll. Die JSON-Ausgabe wird mit type=JSON erzeugt.

Siehe die docs

Edit: Bitte beachten Sie, dass demo nur ein Demonstrationsbenutzer ist und Sie ein Benutzerkonto unter http://www.geonames.org/login erstellen müssen, um den Dienst zu verwenden. 

58
Christian

Die Google Geocoding API stellt diese Ergebnisse im JSON-Format bereit. Es ist kostenlos, aber Sie müssen möglicherweise für unbegrenzten Zugriff bezahlen.

Versuchen Sie den folgenden Link 

http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801
11
Nishad Up
<form id="form1" runat="server">
<div>
    <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js" ></script>
    <br />Country Code:
    <script type="text/javascript">document.write(geoip_country_code());</script>
    <br />Country Name:
    <script type="text/javascript">document.write(geoip_country_name());</script>
    <br />City:
    <script type="text/javascript">document.write(geoip_city());</script>
    <br />Region:
    <script type="text/javascript">document.write(geoip_region());</script>
    <br />Region Name:
    <script type="text/javascript">document.write(geoip_region_name());</script>
    <br />Latitude:
    <script type="text/javascript">document.write(geoip_latitude());</script>
    <br />Longitude:
    <script type="text/javascript">document.write(geoip_longitude());</script>
    <br />Postal Code:
    <script type="text/javascript">document.write(geoip_postal_code());</script>

</div>
</form>
9
Krishna Patel

Wenn eine eigenständige Bibliothek (dh keine Server-/Internetverbindung und schnell) erwünscht ist und nur Länderinformationen erforderlich sind, kann die folgende Bibliothek, die auf Openstreetmap-Daten basiert, nützlich sein - https://github.com/hlaw/ codegrid-js

<script type="text/javascript" src="[path]/codegrid.js"></script>
grid = codegrid.CodeGrid(); // initialize

grid.getCode (lat, lng, function (err, code) { ... });

Der Callback wird mit code aufgerufen, dem Ländercode für die Latlng.

6
headuck

Ja, Sie können Google Maps verwenden, um das Land für bestimmte Breiten- und Längengrade zu finden. Verwenden Sie den Geocodierungsdienst reverse .

Land, Ort, Postleitzahl und vollständige Adresse können Sie der Antwort entnehmen, die Sie vom Server erhalten. Überprüfen Sie das Beispiel aus dem Link für Details;)

5
aniri

Wenn Sie Golang verwenden, können Sie eine dieser beiden Bibliotheken verwenden, um das Land zu erhalten, und Sie müssen nicht einmal einen API-Aufruf durchführen, da der Datensatz unbegrenzt ist.

https://github.com/SocialHarvest/geobed

https://github.com/bradfitz/latlong

0
pyros2097