百度地图API 修改起点和终点样式并删除点击事件监听

准备把开发过程中遇到的一些小问题总结一下,大家如果遇到相同问题,也可以拿来参考。

进入百度地图   http://developer.baidu.com/map/jsdemo.htm#i5_2 中,如下:

修改代码

var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true},
            onPolylinesSet:function(routes) {
            searchRoute = routes[0].getPolyline();//导航路线
            map.addOverlay(searchRoute);
        },
        onMarkersSet:function(routes) {
    var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdemo/img/Mario.png", new BMap.Size(30,33));
    var markerstart = new BMap.Marker(routes[0].marker.getPosition() ,{icon:myIcon}); // 创建点
    map.removeOverlay(routes[0].marker); //删除起点
    map.addOverlay(markerstart);  
    var markerend = new BMap.Marker(routes[1].marker.getPosition() ,{icon:myIcon}); // 创建点
    map.removeOverlay(routes[1].marker);//删除终点
              map.addOverlay(markerend);  
        }});
driving.search(p1, p2);

原理是删除了原来的起点终点,然后重新画了点,所以原先marker的点击事件监听就没有了,也达到了删除点击事件监听的目的。


要实现HBuilder调用百度地图并实现输入起点终点规划步行线路以及点击地图上任意位置获取起点终点规划步行线路,你需要先完成以下步骤: 1. 在HBuilder中创建一个HTML5+项目。 2. 在项目根目录下创建一个名为“baidumap”的文件夹,并在该文件夹下创建一个名为“index.html”的文件,并在其中添加百度地图API引用代码。 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>百度地图API实例</title> <style type="text/css"> #container { width: 100%; height: 100%; } </style> </head> <body> <div id="container"></div> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的百度地图API密钥"></script> </body> </html> ``` 请将上述代码中的“你的百度地图API密钥”替换为你自己的百度地图API密钥。 3. 在“baidumap”文件夹下创建一个名为“js”的文件夹,并在该文件夹下创建一个名为“main.js”的文件,并在其中添加以下代码: ```javascript var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.enableScrollWheelZoom(true); // 规划步行路线 function walkingRoute(start, end) { var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true } }); walking.search(start, end); } // 监听地图点击事件 map.addEventListener("click", function (e) { var marker = new BMap.Marker(e.point); map.addOverlay(marker); if (map.getOverlays().length > 1) { map.removeOverlay(map.getOverlays()[0]); } walkingRoute(e.point, map.getOverlays()[0].getPosition()); }); // 获取起点终点并规划步行路线 function getWalkingRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; var localSearch = new BMap.LocalSearch(map, { onSearchComplete: function (results) { if (localSearch.getStatus() == BMAP_STATUS_SUCCESS) { var startLocation = results.getPoi(0).point; var endLocation = results.getPoi(1).point; walkingRoute(startLocation, endLocation); } } }); localSearch.search([start, end]); } ``` 4. 在“baidumap”文件夹下创建一个名为“index.css”的文件,并在其中添加以下样式代码: ```css html, body, #container { margin: 0; padding: 0; width: 100%; height: 100%; } input { width: 100%; height: 40px; font-size: 16px; padding: 10px; box-sizing: border-box; margin-bottom: 20px; } button { width: 100%; height: 40px; font-size: 16px; background-color: #009688; color: #fff; border: none; border-radius: 5px; } ``` 5. 在“index.html”文件中添加起点终点输入框和规划步行路线按钮。 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>百度地图API实例</title> <style type="text/css"> #container { width: 100%; height: 100%; } html, body, #container { margin: 0; padding: 0; width: 100%; height: 100%; } input { width: 100%; height: 40px; font-size: 16px; padding: 10px; box-sizing: border-box; margin-bottom: 20px; } button { width: 100%; height: 40px; font-size: 16px; background-color: #009688; color: #fff; border: none; border-radius: 5px; } </style> </head> <body> <div id="container"></div> <div id="controls"> <input type="text" id="start" placeholder="请输入起点"> <input type="text" id="end" placeholder="请输入终点"> <button onclick="getWalkingRoute()">规划步行路线</button> </div> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的百度地图API密钥"></script> <script type="text/javascript" src="js/main.js"></script> </body> </html> ``` 6. 运行项目,在输入框中输入起点终点点击“规划步行路线”按钮即可实现规划步行路线。在地图上点击任意位置也可以获取起点终点并规划步行路线。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值