Heim >Backend-Entwicklung >PHP-Problem >So fragen Sie eine Stadt basierend auf Längen- und Breitengrad in PHP ab

So fragen Sie eine Stadt basierend auf Längen- und Breitengrad in PHP ab

PHPz
PHPzOriginal
2023-04-24 10:49:522489Durchsuche

Da die Reisebedürfnisse der Menschen steigen, wird die Bedeutung geografischer Standortinformationen immer wichtiger. Wenn wir in der Webentwicklung Stadt- und Regionsinformationen basierend auf Breiten- und Längengraden abfragen müssen, bietet PHP eine Vielzahl von Methoden und Bibliotheken, um dieses Ziel zu erreichen.

1. In PHP integrierte Funktionen verwenden

PHP verfügt über integrierte Funktionsbibliotheken, die zur Verarbeitung geografischer Standortinformationen wie „getgeoip“ und „ip2long“ verwendet werden können. . Diese Funktionen können die entsprechenden Längen- und Breitengradinformationen basierend auf der IP-Adresse abrufen und dann die Stadt und Region berechnen, in der sie sich befindet. Es ist zu beachten, dass die von diesen Funktionen erhaltenen Ergebnisse nur als Referenz dienen und bestimmte Fehler enthalten können.

Zum Beispiel können wir den folgenden Code verwenden, um die IP-Adresse und die entsprechenden Breiten- und Längengradinformationen zu erhalten:

$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
$lat = $details->loc[0];
$long = $details->loc[1];

Dann können wir andere APIs oder Bibliotheken verwenden, um Erzielen Sie eine genauere Städteabfrage.

2. API von Drittanbietern verwenden

Zusätzlich zu den in PHP integrierten Funktionen können wir auch verschiedene APIs von Drittanbietern verwenden, um geografische Standortinformationen abzufragen. Zu den gebräuchlichsten gehören Google Maps API, OpenStreetMap API, Baidu Map API und so weiter. Diese APIs zeichnen sich durch hohe Genauigkeit, Stabilität und Echtzeitleistung aus und können die Anforderungen der meisten Szenarien erfüllen.

Am Beispiel der Baidu-Karten-API können wir die dem Längen- und Breitengrad entsprechenden Stadtinformationen über den folgenden Code abrufen:

$lat = 40.170799;
$long = 116.370453;
$url="http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的AK&output=json&coordtype=wgs84ll&location=".$lat.",".$long;
$res=file_get_contents($url);
$data=json_decode($res,true);
$city = $data['result']['addressComponent']['city'];

Unter diesen ist AK die API Das Passwort, das wir auf dem Baidu Developer Platform Key beantragt haben, stellt unsere API-Berechtigungen dar. Bei der tatsächlichen Verwendung muss der AK durch unseren eigenen API-Schlüssel ersetzt werden.

3. PHP-Erweiterungsbibliothek verwenden

Zusätzlich zu den beiden oben genannten Methoden bietet PHP auch viele Open-Source-Erweiterungsbibliotheken für die geografische Standortverarbeitung, wie Geocoder, Geotools und PhpGeo. Diese Bibliotheken können Stadt- und Regionalinformationen entsprechend dem Längen- und Breitengrad direkt abrufen, indem sie die von ihnen bereitgestellten Klassen und Methoden aufrufen, wodurch der Abfrageprozess vereinfacht und die Schwierigkeit bei der Codeimplementierung verringert wird.

Am Beispiel von Geocoder können wir den folgenden Code verwenden, um die Stadtinformationen zu erhalten, die dem Längen- und Breitengrad entsprechen:

use Geocoder\Geocoder;
use Geocoder\Query\GeocodeQuery;
use Geocoder\Provider\GoogleMaps\GoogleMaps;
$lat = 40.170799;
$long = 116.370453;
$provider = new GoogleMaps('en', null, 'YOUR_API_KEY');
$geocoder = new Geocoder($provider);
$results = $geocoder->geocodeQuery(GeocodeQuery::create($lat.','.$long));
$city = $results->first()->getLocality();

Unter diesen ist YOUR_API_KEY der API-Schlüssel, den wir verwenden in der Google Developers Console beantragt und stellt unsere API-Berechtigungen dar. Bei der tatsächlichen Verwendung muss YOUR_API_KEY durch unseren eigenen API-Schlüssel ersetzt werden.

Zusammenfassung

Durch die Einleitung dieses Artikels haben wir drei Möglichkeiten kennengelernt, Stadt- und Regionalinformationen basierend auf Längen- und Breitengraden in PHP abzufragen: mithilfe der in PHP integrierten Funktionen Bei der Verwendung von APIs von Drittanbietern und der Verwendung von PHP-Erweiterungsbibliotheken hat jede Methode ihre Vor- und Nachteile. Wählen Sie einfach die Methode aus, die Ihren Anforderungen entspricht. Bei der tatsächlichen Nutzung muss besonderes Augenmerk auf Themen wie Datenschutz und API-Autorisierung gelegt werden, um unnötige Sicherheitsrisiken und rechtliche Risiken zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo fragen Sie eine Stadt basierend auf Längen- und Breitengrad in PHP ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn