📌  相关文章
📜  从谷歌地图 php 中获取 lat long(1)

📅  最后修改于: 2023-12-03 15:06:38.773000             🧑  作者: Mango

从谷歌地图 PHP 中获取 Lat Long

在开发 Web 应用程序时,获取位置数据是非常重要的一步。而如果要从 Google 地图获取特定地址的经纬度坐标,则需要使用 Google Maps Geocoding API。在本篇教程中,我们将介绍如何使用 PHP 通过 Google Maps Geocoding API 获取地理位置信息的经纬度坐标。

步骤一:注册 Google Maps API Key

在使用 Google Maps Geocoding API 之前,我们需要先注册一个 API Key。请按照下列步骤操作:

  1. 登录 Google Cloud Console

  2. 在 Cloud Console 中,点击“API和服务” → “凭据” → “创建凭据” → “API 密钥”。

  3. 在弹出的对话框中,选择“创建”。

  4. 您现在已成功注册了 API Key。

步骤二:编写 PHP 代码

在此示例中,我们将使用 PHP 和 cURL (一个用于传输数据的 PHP 扩展程序)来向 Google 地图 API 发送请求,并从响应中提取出经纬度坐标信息。

$address = '广东省广州市天河区天河路200号';

$api_key = 'YOUR_API_KEY';

$url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($address) . '&key=' . $api_key;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);

$geo = json_decode($output, true);

$lat = $geo['results'][0]['geometry']['location']['lat'];
$lng = $geo['results'][0]['geometry']['location']['lng'];

echo "Latitude: " . $lat . "<br>";
echo "Longitude: " . $lng;
步骤三:解释代码
1. 设置地址和 API 密钥
$address = '广东省广州市天河区天河路200号';

$api_key = 'YOUR_API_KEY';

$address 变量中,您需要设置要查询的地址。在上面的示例中,我们将要查询广州市天河区天河路200号的经纬度坐标信息。在“YOUR_API_KEY”中,您需要替换为您的 Google API Key。

2. 构建 Url
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($address) . '&key=' . $api_key;

构造一个 URL,该 URL 将是我们发送到 Google 地图 API 请求的 URL。您只需将 $address$api_key 变量替换为自己的即可。该 URL 将返回一个 JSON 响应,其中包含有关请求地址的位置信息,包括经纬度坐标。

3. 发送请求并获取响应
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);

使用 curl_init() 函数创建一个新的 cURL 请求并设置 URL。使用 curl_setopt() 函数设置一个选项,该选项将返回响应而不是直接输出。使用 curl_exec() 函数来执行请求并将响应存储在 $output 变量中。最后,使用 curl_close() 函数关闭 cURL 会话。

4. 解析 JSON 响应
$geo = json_decode($output, true);

$lat = $geo['results'][0]['geometry']['location']['lat'];
$lng = $geo['results'][0]['geometry']['location']['lng'];

使用 json_decode() 函数将响应解析为 PHP 数组,并使用数组的值获取经纬度坐标。在示例中,我们使用 json_decode($output, true) 将 JSON 响应转换为一个关联数组。

5. 显示结果
echo "Latitude: " . $lat . "<br>";
echo "Longitude: " . $lng;

最后,我们使用 PHP 的 echo 语句将获得的经纬度信息显示在页面上。

总结

在本篇教程中,我们介绍了如何使用 PHP 通过 Google Maps Geocoding API 获取位置信息的经纬度坐标。这个步骤简单易懂,而且只需要一些最基本的 PHP 和 cURL 知识。注意,在代码中替换 API 密钥时,请使用自己的 API 密钥。