怎样用百度地图绘制动画轨迹,并在结束后标明起点终点及经纬度
时间: 2023-06-26 15:04:19 浏览: 1692
您可以使用百度地图API来实现绘制动画轨迹并标明起点终点及经纬度。下面是一个简单的步骤:
1. 注册百度开发者账号,并创建一个应用,获取应用的AK(Access Key)。
2. 引入百度地图API的JavaScript库。
3. 创建地图容器,初始化地图对象。
4. 使用百度地图API的路线规划服务,获取经过的路线点。
5. 使用百度地图API的覆盖物类,创建动画轨迹并添加到地图上。可以使用标注类来标记起点终点及经纬度。
6. 等待动画播放完成后,显示起点终点及经纬度的标注。
下面是一个示例代码,可以参考并根据自己的需求进行修改:
```
// 初始化地图容器
var map = new BMap.Map("map-container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 12);
// 获取路线点
var driving = new BMap.DrivingRoute(map, {
onSearchComplete: function(results){
if (driving.getStatus() == BMAP_STATUS_SUCCESS){
var points = results.getPlan(0).getRoute(0).getPath();
// 创建动画轨迹
var polyline = new BMap.Polyline(points, {strokeColor:"blue", strokeWeight:3, strokeOpacity:0.5});
map.addOverlay(polyline);
// 创建起点终点标注
var startMarker = new BMap.Marker(points[0]);
var endMarker = new BMap.Marker(points[points.length - 1]);
map.addOverlay(startMarker);
map.addOverlay(endMarker);
// 创建经纬度标注
var startPoint = new BMap.Label(points[0].lng + "," + points[0].lat, {offset:new BMap.Size(20,-10)});
var endPoint = new BMap.Label(points[points.length - 1].lng + "," + points[points.length - 1].lat, {offset:new BMap.Size(20,-10)});
startMarker.setLabel(startPoint);
endMarker.setLabel(endPoint);
// 播放动画轨迹
var i = 0;
var timer = setInterval(function(){
if (i >= points.length){
clearInterval(timer);
// 显示起点终点及经纬度标注
map.addOverlay(startMarker);
map.addOverlay(endMarker);
startMarker.setLabel(startPoint);
endMarker.setLabel(endPoint);
return;
}
var p = points[i];
polyline.setPositionAt(i, p);
i++;
}, 10);
}
}
});
driving.search("北京市海淀区中关村南大街27号", "北京市朝阳区建国门外大街1号");
```
注意,上述代码中的起点和终点坐标是写死的,您可以根据自己的需求进行修改。此外,还可以使用其他覆盖物类来创建更加丰富的图层效果,比如自定义图标等。
阅读全文