>  기사  >  백엔드 개발  >  PHP에서 경도와 위도를 기준으로 도시를 쿼리하는 방법

PHP에서 경도와 위도를 기준으로 도시를 쿼리하는 방법

PHPz
PHPz원래의
2023-04-24 10:49:522350검색

사람들의 여행 요구가 증가함에 따라 지리적 위치 정보의 중요성이 점점 더 부각되고 있습니다. 웹 개발에서 위도와 경도를 기반으로 도시 및 지역 정보를 쿼리해야 하는 경우 PHP는 이 목표를 달성하기 위한 다양한 방법과 라이브러리를 제공합니다.

1. PHP 내장 함수 사용하기

PHP에는 "getgeoip" 및 "ip2long"과 같은 지리적 위치 정보를 처리하는 데 사용할 수 있는 함수 라이브러리가 내장되어 있습니다. 이러한 기능은 IP 주소를 기반으로 해당 경도 및 위도 정보를 얻은 다음 해당 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를 사용하여 지리적 위치 정보를 쿼리할 수도 있습니다. 일반적인 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는 우리가 Baidu 개발자 플랫폼에서 신청한 API 키로, 우리의 API 권한. 실제 사용에서는 AK를 자체 API 키로 교체해야 합니다.

3. PHP 확장 라이브러리 사용

위의 두 가지 방법 외에도 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 개발자 콘솔에서 신청한 API 키로, API를 나타냅니다. 권한. 실제 사용에서는 YOUR_API_KEY를 자체 API 키로 바꿔야 합니다.

요약

이 기사의 소개를 통해 우리는 경도와 위도를 기반으로 도시 및 지역 정보를 쿼리하는 PHP의 세 가지 방법, 즉 PHP 내장 함수 사용, 타사 API 사용 및 PHP 확장 라이브러리 사용에 대해 배웠습니다. . 각 방법에는 장단점이 있으므로 필요에 맞는 방법을 선택하십시오. 실제 사용에서는 불필요한 보안 위험과 법적 위험을 피하기 위해 개인정보 보호, API 인증 등의 문제에 특별한 주의를 기울여야 합니다.

위 내용은 PHP에서 경도와 위도를 기준으로 도시를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.