通过百度API获取路径经纬度点
时间: 2023-10-02 10:04:28 浏览: 50
可以通过百度地图API的Geocoding API接口来获取路径经纬度点。具体步骤如下:
1. 获取百度地图API的开发者密钥(ak)。
2. 根据起点和终点的地址使用Geocoding API接口分别获取起点和终点的经纬度。
3. 使用Direction API接口获取路径规划的结果,可以选择步行、驾车或公交等方式。
4. 解析Direction API返回的结果,获取路径经纬度点。
需要注意的是,使用百度地图API需要付费,具体收费标准可以参考百度地图API的官方网站。另外,使用API时需要遵守相关协议和规定,不得用于非法用途。
相关问题
百度API获取路径上经纬度点的HTML程序
以下是一个获取路径上经纬度点的百度API HTML程序,你可以尝试将其中的ak参数替换为自己的百度API密钥,并替换掉path参数为你想要获取经纬度点的路径。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>百度地图API获取路径上经纬度点</title>
<script src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script>
</head>
<body>
<div id="map" style="width: 100%; height: 500px;"></div>
<script>
var map = new BMap.Map("map");
var path = "39.915,116.404;39.990,116.472;40.015,116.500;40.070,116.532";
var points = [];
var pathArr = path.split(";");
for (var i = 0; i < pathArr.length; i++) {
var pointArr = pathArr[i].split(",");
var point = new BMap.Point(pointArr[1], pointArr[0]);
points.push(point);
}
var polyline = new BMap.Polyline(points, { strokeColor: "blue", strokeWeight: 3, strokeOpacity: 0.5 });
map.addOverlay(polyline);
map.setViewport(points);
var markers = [];
for (var i = 0; i < points.length; i++) {
var marker = new BMap.Marker(points[i]);
markers.push(marker);
map.addOverlay(marker);
}
var markerClusterer = new BMapLib.MarkerClusterer(map, { markers: markers });
</script>
</body>
</html>
```
在这个程序中,我们使用了百度地图API的Polyline、Point、Marker和MarkerClusterer等类来绘制路径和标注经纬度点。具体来说,我们首先将路径字符串按分号分隔成多个点,然后将每个点的经纬度字符串按逗号分隔,得到经度和纬度值,最后将它们转化为BMap.Point对象,并添加到points数组中。接着,我们使用Polyline类将所有点连接起来,形成路径,并使用Marker类在每个点上标注出经纬度。最后,我们使用MarkerClusterer类将所有Marker进行聚合,以提高地图的可视化效果。
使用百度API获取规划路径上点经纬度的HTML5程序代码
以下是使用百度地图API获取规划路径上点经纬度的HTML5程序代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>获取规划路径上点经纬度</title>
<style>
#map {
height: 500px;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>
<script>
var map = new BMap.Map("map");
var pointA = new BMap.Point(116.404, 39.915); // 起点坐标
var pointB = new BMap.Point(121.447, 31.224); // 终点坐标
var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
driving.search(pointA, pointB); // 规划路径
driving.setSearchCompleteCallback(function(){
var path = driving.getResults().getPlan(0).getRoute(0).getPath(); // 获取路径经纬度数组
for (var i = 0; i < path.length; i++) {
var pt = path[i];
console.log(pt.lng + ',' + pt.lat); // 打印经纬度
}
});
</script>
</body>
</html>
```
在代码中,使用了百度地图API的 `BMap` 对象来创建地图,并使用 `BMap.DrivingRoute` 对象进行路径规划。在路径规划完成后,可以使用 `getResults().getPlan(0).getRoute(0).getPath()` 方法获取路径上的经纬度数组,然后遍历数组,打印每个点的经纬度。
此外,需要将代码中的 `您的密钥` 替换为申请的百度地图API密钥。