PHP中如何从Google Elevation API返回结果输出高程值
提取Google Elevation API返回的高程值(PHP实现)
嘿,这事儿其实挺简单的,我给你一步步拆解怎么在PHP里拿到这个高程值:
1. 先获取API的JSON响应
你可以用file_get_contents快速发起请求(前提是服务器的allow_url_fopen配置是开启的),或者用更可靠的cURL(推荐用于生产环境,兼容性更好)。这里给两种方式的示例:
方式一:用file_get_contents
// 替换成你的API密钥和目标经纬度 $apiKey = 'your_actual_api_key'; $lat = 40.7143528; $lng = -74.0059731; // 构建请求URL $url = "https://maps.googleapis.com/maps/api/elevation/json?locations={$lat},{$lng}&key={$apiKey}"; // 获取API响应内容 $response = file_get_contents($url); // 检查请求是否成功 if (!$response) { die('请求API失败,请检查网络或URL配置'); }
方式二:用cURL(更稳定)
$apiKey = 'your_actual_api_key'; $lat = 40.7143528; $lng = -74.0059731; $url = "https://maps.googleapis.com/maps/api/elevation/json?locations={$lat},{$lng}&key={$apiKey}"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); if (!$response) { die('cURL请求失败,请检查服务器curl扩展是否开启'); }
2. 解析JSON并提取高程值
把返回的JSON字符串转成PHP关联数组,然后从results数组的第一个元素里取出elevation字段就行。一定要先检查API返回的status是否为OK,避免处理无效响应(比如密钥错误、请求超限等):
// 解析JSON为关联数组 $data = json_decode($response, true); // 检查解析是否成功,以及API返回状态是否正常 if (json_last_error() !== JSON_ERROR_NONE || $data['status'] !== 'OK') { die('API返回异常或解析失败,错误状态:' . ($data['status'] ?? '未知')); } // 提取高程值 $elevation = $data['results'][0]['elevation']; // 按需输出结果(比如保留两位小数) echo "该地址的高程值为:" . round($elevation, 2) . " 米";
小提示
- 记得替换
your_actual_api_key为你自己的Google API密钥,并且确保密钥已经启用了Elevation API权限 - 如果需要批量获取多个地点的高程,可以在
locations参数里用竖线分隔多个经纬度对(比如locations=lat1,lng1|lat2,lng2),然后循环遍历results数组即可 - 生产环境里建议用日志记录错误,而不是直接
die,方便后续排查问题
内容的提问来源于stack exchange,提问作者Schalk Joubert
相关产品推荐
相关产品推荐

