<!DOCTYPE html> <html> <head> <title>获取当前位置</title> </head> <body> <script> // 使用HTML5 Geolocation API获取当前位置的经纬度 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { alert("该浏览器不支持Geolocation API"); } function showPosition(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; // 将经纬度传递给后端PHP脚本来获取周边POI信息 window.location.href = 'get_poi.php?lat=' + lat + '&lng=' + lng; } </script> </body> </html>在上述代码中,我们使用`navigator.geolocation.getCurrentPosition`方法来获取当前位置的经纬度,并将其传递给`get_poi.php`文件。
<?php $lat = $_GET['lat']; $lng = $_GET['lng']; // 替换为自己的高德地图开发者Key $key = 'YOUR_AMAP_KEY'; $url = 'https://restapi.amap.com/v3/place/around?key=' . $key . '&location=' . $lng . ',' . $lat . '&output=json&radius=1000&keywords='; $response = file_get_contents($url); // 解析JSON响应 $result = json_decode($response, true); if ($result['status'] == '1') { // 获取返回的POI信息 $pois = $result['pois']; // 处理POI信息 foreach ($pois as $poi) { echo $poi['name'] . '<br>'; echo $poi['address'] . '<br>'; echo '类型:' . $poi['type'] . '<br>'; echo '<br>'; } } else { echo '获取周边POI信息失败'; } ?>
在这段代码中,我们从前端获取经纬度,通过$_GET数组传递给PHP后端。然后构建高德地图API的URL,利用file_get_contents函数调用API并获取响应。
返回的响应是一个JSON格式的字符串,使用json_decode函数将其解析为关联数组。接下来,我们遍历POI数组,输出每个POI的名称、地址和类型。
注意:请替换代码中的YOUR_AMAP_KEY为您自己的高德地图开发者Key。
在浏览器中打开获取经纬度的HTML文件,允许浏览器获取当前位置。浏览器将重定向到get_poi.php,并通过URL传递经纬度。服务器根据经纬度调用高德地图API,返回周边POI信息。
这篇文章为开发者提供了一个简单的示例,帮助你在PHP项目中集成高德地图API,获取并处理周边POI信息。希望本文对你有所帮助!