【发布时间】:2016-04-21 04:10:18
【问题描述】:
我有一个谷歌地图,我在上面使用不同的数据点列表绘制了多条路径。假设在谷歌地图上创建路线后,我需要在多条路线中删除该特定路线。我已经看到了使用Setmap(null) 方法的解决方案,但它会清除所有路线。下面是不同的数据源,我通过传递单个源来使用DrawRoute 方法。现在我需要删除 DataSource1 路由。
var dataSource1 = [{
"title": 'Duero',
"lat": '40.480243',
"lng": '-3.866172',
"description": 'This is Duero'
}, {
"title": 'Reyes Catolicos',
"lat": '40.47806',
"lng": '-3.870937',
"description": 'This is Reyes Catolicos'
}, {
"title": 'Guadarrama',
"lat": '40.478998',
"lng": '-3.878755',
"description": 'This is Guadarrama'
}];
var dataSource2 = [{
"title": 'Duero',
"lat": '40.460243',
"lng": '-3.866172',
"description": 'This is Duero'
}, {
"title": 'Reyes Catolicos',
"lat": '40.45806',
"lng": '-3.870937',
"description": 'This is Reyes Catolicos'
}, {
"title": 'Guadarrama',
"lat": '40.438998',
"lng": '-3.878755',
"description": 'This is Guadarrama'
}];
function DrawRoute(routeData, pathColor)
{
for (var i = 0; i < routeData.length; i++) {
if ((i + 1) < routeData.length) {
var src = new google.maps.LatLng(parseFloat(routeData[i].lat),
parseFloat(routeData[i].lng));
createMarker(src);
var des = new google.maps.LatLng(parseFloat(routeData[i + 1].lat),
parseFloat(routeData[i + 1].lng));
createMarker(des);
// poly.setPath(path);
service.route({
origin: src,
destination: des,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
var path = new google.maps.MVCArray();
var poly = new google.maps.Polyline({
map: map,
strokeColor: pathColor
});
for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++) {
path.push(result.routes[0].overview_path[i]);
}
poly.setPath(path);
map.fitBounds(bounds);
}
});
}
}
【问题讨论】:
-
请提供一个Minimal, Complete, Tested and Readable example,证明您正在尝试做什么,包括一些样本/测试数据。您打算如何移除这些路线?
-
在我看来 poly.setMap(null) 只会清除最后一条路径。
-
我已经更新了我的问题。请查看并建议我将传递一个数据源并且应该删除的方法
标签: jquery google-maps