ホームページ  >  記事  >  バックエンド開発  >  PHPで経度と緯度に基づいて都市をクエリする方法

PHPで経度と緯度に基づいて都市をクエリする方法

PHPz
PHPzオリジナル
2023-04-24 10:49:522349ブラウズ

人々の旅行ニーズが高まるにつれ、地理的位置情報の重要性がますます高まっています。 Web 開発では、緯度と経度に基づいて都市や地域の情報をクエリする必要がある場合、PHP はこの目的を達成するためのさまざまなメソッドとライブラリを提供します。

1. PHP 組み込み関数を使用する

PHP には、「getgeoip」や「ip2long」などの地理的位置情報の処理に使用できる組み込み関数ライブラリがあります。これらの関数は、IP アドレスに基づいて対応する経度と緯度の情報を取得し、それが位置する都市と地域を計算できます。これらの関数によって得られる結果は参照のみを目的としており、特定の誤差が含まれる可能性があることに注意してください。

たとえば、次のコードを使用して IP アドレスを取得し、それに対応する経度と緯度の情報を取得できます:

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

その後、他の API またはライブラリを使用して、より正確な都市を取得できます。クエリ。

2. サードパーティ API の使用

PHP 組み込み関数に加えて、さまざまなサードパーティ API を使用して地理的位置情報をクエリすることもできます。一般的なものには、Google Maps API、OpenStreetMap API、Baidu Map API などが含まれます。これらの API は、高精度、安定性、リアルタイム パフォーマンスを特徴としており、ほとんどのシナリオのニーズを満たすことができます。

Baidu Map API を例に取ると、次のコードを通じて経度と緯度に対応する都市情報を取得できます。

$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'];

このうち、AK は申請した API キーです。 Baidu 開発者プラットフォーム上で、API 権限を表します。実際に使用する場合は、AK を独自の API キーに置き換える必要があります。

3. PHP 拡張ライブラリを使用する

上記の 2 つの方法に加えて、PHP では、Geocoder、Geotools、PhpGeo など、多くのオープン ソースの地理的位置処理拡張ライブラリも提供しています。これらのライブラリは、提供するクラスとメソッドを呼び出すことで、経度および緯度に対応する都市および地域の情報を直接取得できるため、クエリ プロセスとコード実装の難易度が簡素化されます。

Geocoder を例に取ると、次のコードを使用して経度と緯度に対応する都市情報を取得できます。

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();

このうち、YOUR_API_KEY は、 Google Developers Console。API 権限を表します。実際に使用する場合は、YOUR_API_KEY を独自の API キーに置き換える必要があります。

概要

この記事の導入部を通じて、経度と緯度に基づいて都市や地域の情報をクエリするための PHP の 3 つの方法について学びました。1 つは PHP 組み込み関数を使用する方法、3 番目の関数を使用する方法です。パーティ API と PHP 拡張ライブラリの使用、それぞれの方法には長所と短所があります。ニーズに合った方法を選択してください。実際の使用においては、不必要なセキュリティ リスクや法的リスクを回避するために、プライバシー保護や API 認証などの問題に特別な注意を払う必要があります。

以上がPHPで経度と緯度に基づいて都市をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。