使用 Google Map API 和 PHP 进行反向地理编码,以使用纬度、经度坐标获取最近的位置

发布于 2024-08-17 15:31:24 字数 66 浏览 4 评论 0 原文

我需要一个函数来使用谷歌地图API反向地理编码和php从坐标(纬度,经度)获取最近的地址或城市...请给出一些示例代码

I need a function to get an nearest address or city from coordinates(lat,long) using google map api reverse geocoding and php... Please give some sample code

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事未完 2024-08-24 15:31:24

您需要在 getLocations 方法GClientGeocoder 对象code.google.com/apis/maps/documentation/reference.html" rel="nofollow noreferrer">Google 地图 API

var point = new GLatLng (43,-75);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) {
    // access the address from the placemarks object
    alert (result.address);
    });

编辑:好的。你正在服务器端做这些事情。这意味着您需要使用 HTTP 地理编码服务 。为此,您需要使用链接文章中描述的 URL 格式发出 HTTP 请求。您可以解析 HTTP 响应并提取地址:

// set your API key here
$api_key = "";
// format this string with the appropriate latitude longitude
$url = 'http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&sensor=true_or_false&key=' . $api_key;
// make the HTTP request
$data = @file_get_contents($url);
// parse the json response
$jsondata = json_decode($data,true);
// if we get a placemark array and the status was good, get the addres
if(is_array($jsondata )&& $jsondata ['Status']['code']==200)
{
      $addr = $jsondata ['Placemark'][0]['address'];
}

NB Google 地图服务条款明确规定,禁止对数据进行地理编码而不将结果放在 Google 地图上。

您可以在 Google 地图上显示 Geocoding API 结果,也可以在没有地图的情况下显示
地图。如果您想在地图上显示 Geocoding API 结果,那么这些
结果必须显示在 Google 地图上。禁止使用
在非 Google 地图的地图上对 API 数据进行地理编码。

You need to use the getLocations method on the GClientGeocoder object in the Google Maps API

var point = new GLatLng (43,-75);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) {
    // access the address from the placemarks object
    alert (result.address);
    });

EDIT: Ok. You are doing this stuff server side. This means you need to use the HTTP Geocoding service. To do this you will need to make an HTTP request using the URL format described in the linked article. You can parse the HTTP response and pull out the address:

// set your API key here
$api_key = "";
// format this string with the appropriate latitude longitude
$url = 'http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&sensor=true_or_false&key=' . $api_key;
// make the HTTP request
$data = @file_get_contents($url);
// parse the json response
$jsondata = json_decode($data,true);
// if we get a placemark array and the status was good, get the addres
if(is_array($jsondata )&& $jsondata ['Status']['code']==200)
{
      $addr = $jsondata ['Placemark'][0]['address'];
}

N.B. The Google Maps terms of service explicitly states that geocoding data without putting the results on a Google Map is prohibited.

You can display Geocoding API results on a Google Map, or without a
map. If you want to display Geocoding API results on a map, then these
results must be displayed on a Google Map. It is prohibited to use
Geocoding API data on a map that is not a Google map.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文