百度地图中,根据起点和终点得到轨迹经纬度的数据

没有在网上找到答案。。。大概是我方式不对。

<%--
  Created by IntelliJ IDEA.
  User: 
  Date: 2018/9/26
  Time: 8:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      #allmap {width: 100%;height:40%;overflow: hidden;margin:0;font-family:"微软雅黑";}
 body, html  {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
       html {width: 100%;height: 80%;overflow: hidden;margin:0;font-family:"微软雅黑";}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你自己申请的秘钥"></script>
    <title>单个标注点沿直线的轨迹运动</title>
  </head>
  <body>
   <div id="allmap"></div>
 <!-- <div id = "content"></div>-->
  </body>
  <script type="text/javascript">
      // 百度地图API功能
      var map = new BMap.Map("allmap");  //创建Map实例
      //初始化  调用centerAndZoom方法对地图初始化
      //  Point(116.404, 39.915) 以指定的经度和纬度创建一个地理点坐标
      map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); //坐标点 第二个级别参数必须有
      var myP1 = new BMap.Point(116.380967,39.913285);    //起点
      var myP2 = new BMap.Point(116.424374,39.914668);    //终点
      var driving = new BMap.DrivingRoute(map, {onSearchComplete:function(results){
          if(driving.getStatus()== BMAP_STATUS_SUCCESS){
              var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
              var paths = pts.length;    //获得有几个点
              console.log("点的个数为:");
              console.log("paths=%d",paths);
             for(var i=0;i<paths;i++){
            console.log(pts[i].lng+" "+pts[i].lat);
    //document.write (pts[i].lng+" "+pts[i].lat);
        }}
        }},{renderOptions:{map:map,autoViewport:true}});    //驾车实例

     driving.search(myP1, myP2);    //显示一条公交线路
  </script>
</html>

结果 就是下图所示,没有调整起始点,根据地图的那个GPS中的单源路线改的(北京的西单到东单)

您可以使用百度地图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号"); ``` 注意,上述代码起点终点坐标是写死的,您可以根据自己的需求进行修改。此外,还可以使用其他覆盖物类来创建更加丰富的图层效果,比如自定义图标等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值