关于百度地图 的问题 百度地图JavaScriptHTMLflex 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 逻辑不需要这么复杂吧,起止点应该可以随意设置,只要定义两个变量记录起止点,保证只有一个起点一个终点就可以了。像这样,在script中加上两个变量:var startPoint, endPoint; // 这两个变量记录起止点菜单改成: var txtMenuItem = [{ text: '以此为起点', callback: function (e) { start(e);//调用自定义起点标注方法 if (startPoint) map.removeOverlay(startPoint); // 清除原来的起点,如果有的话 map.addOverlay(startPoint = mkr); // 加上新的起点 } }, { text: '以此为终点', callback: function (e) { end(e);//调用自定义终点标注方法 if (endPoint) map.removeOverlay(endPoint); // 清楚原来的终点,如果有的话 map.addOverlay(endPoint = mkr02); // 加上新的终点 } }, { }];ZoomControlDistance中的div.click改成: div.onclick = function(e) { if (!startPoint && !endPoint) alert("请右键设置起点和终点"); else if (!startPoint) alert("请选择起点"); else if (!endPoint) alert("请选择终点"); else { drive = new BMap.DrivingRoute(map, { renderOptions: { map: map, panel: 'panel', autoViewport: true, }, policy: BMAP_DRIVING_POLICY_LEAST_DISTANCE //选择最短距离作为驾车方案 }); map.clearOverlays(); // 清楚起止点标记 drive.search(startPoint.getPosition(), endPoint.getPosition()); // 画线路 startPoint = endPoint = null; // 清楚起止点记录变量 } }; 谢谢了,我思维有问题,没想到用一个变量代替Marker,只操作那个变量,移除时不用操作Marker对象。对于第二个问题,怎么解决? 第二个问题可能是浏览器兼容性的问题,我发现只要调用 map.addOverlay(polyline)画折线后,右键菜单就会失灵。这个应该是百度地图的问题,要解决的话就要分析它的源码了。 也许吧,IE可以运行的,谷歌浏览器和Flex AIR中调用html就运行不了,后面两个兼容应该是统一的再次表示感谢! 对于这个代码,只是在flex中调用失效,谷歌浏览器中可以,右键菜单的反复点击距离测量不会失效 flex中的html组件用的是webkit引擎,相当于safari,但是有一些功能不支持(用safari测也是没问题的)http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fb1.html你可以把问题简化(html页面上只留下右键菜单和添加折线覆盖物),然后提交一个bug给百度,看他们能不能改下。 你们好!各位大神! 为什么我用这个起点终点图标为NULL 找不到呀 救救我,救救我的JS。。。。。。 怎样实时显示操作信息 菜鸟求救:图片淡出淡入 简单问题,高手请进 利用JS在html页面间传参数的问题 急急急!求助: 给按钮绑定一个对话框,将按钮上的原来事件转移到对话框的ok按钮上 请教href 如何用Javascript取得在textarea中被选中的字符? 如何得到分帧页面的连接地址和title struct $.ajax()的登录问题 有没有什么方法 可以让我的网站自动加入到IE的可信任站点? 怎么实现这种不规则排列的图片,且要带滚动效果的?
像这样,在script中加上两个变量:
var startPoint, endPoint; // 这两个变量记录起止点
菜单改成: var txtMenuItem = [{
text: '以此为起点',
callback: function (e) {
start(e);//调用自定义起点标注方法
if (startPoint)
map.removeOverlay(startPoint); // 清除原来的起点,如果有的话
map.addOverlay(startPoint = mkr); // 加上新的起点
}
}, {
text: '以此为终点',
callback: function (e) {
end(e);//调用自定义终点标注方法
if (endPoint)
map.removeOverlay(endPoint); // 清楚原来的终点,如果有的话
map.addOverlay(endPoint = mkr02); // 加上新的终点
}
}, {
}];ZoomControlDistance中的div.click改成: div.onclick = function(e) {
if (!startPoint && !endPoint)
alert("请右键设置起点和终点");
else if (!startPoint)
alert("请选择起点");
else if (!endPoint)
alert("请选择终点");
else {
drive = new BMap.DrivingRoute(map, {
renderOptions: {
map: map,
panel: 'panel',
autoViewport: true,
},
policy: BMAP_DRIVING_POLICY_LEAST_DISTANCE //选择最短距离作为驾车方案
});
map.clearOverlays(); // 清楚起止点标记
drive.search(startPoint.getPosition(), endPoint.getPosition()); // 画线路
startPoint = endPoint = null; // 清楚起止点记录变量
}
};
再次表示感谢!
http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fb1.html你可以把问题简化(html页面上只留下右键菜单和添加折线覆盖物),然后提交一个bug给百度,看他们能不能改下。