删除部分折线
我正在研究一个WordPress插件,用户可以在其中创建路线图并在其网站上显示它。在管理面板中,它会显示地图上现有路线的预览,并且还会显示一个标记,以便将其拖动到他们想要添加到地图的新位置。删除部分折线
地图的默认缩放位置在欧洲设置。但是,如果他们例如在澳大利亚添加了几个站点,那么只有世界的那一部分可见,并且您不会再看到用于指定新位置的可拖动图标,这是一个问题。
所以我想用fitbounds来修复它,所以它总会让可拖动的标记和已经创建的路线适合屏幕。我的代码确实显示了地图上的所有位置,但由于我在访问过的位置之间绘制了多段线,因此它也在欧洲绘制了一条可拖动的标记,不应该这样做,因为它不是路线的一部分。
你可以在这里看到一个例子 - >http://jsfiddle.net/tijmen/HctvT/1/
部分代码:
/* Draw lines between the markers */
function drawFlightPlan(flightPlanCoordinates) {
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: "#ad1700",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
fitBounds(flightPlanCoordinates);
}
/* Zoom the map so that all markers fit in the window */
function fitBounds(flightPlanCoordinates) {
var bounds = new google.maps.LatLngBounds();
/* Include this latlng value in europe, but I dont want a line going to that latng... */
var defaultLatlng = new google.maps.LatLng('52.378153', '4.899363');
flightPlanCoordinates.push(defaultLatlng);
for (var i = 0, flightPlanLen = flightPlanCoordinates.length; i < flightPlanLen; i++) {
bounds.extend (flightPlanCoordinates[i]);
}
map.fitBounds(bounds);
}
的澳大利亚标记之间的线条都很好,但行至欧洲不应该在那里(通常在欧洲会有一个不同的彩色标记)。
我真的不明白为什么有一条线路首先要去欧洲。 flightPath.setMap(map);在drawFlightPlan函数内运行。而且,直到fitBounds函数还没有将欧洲的latlng值添加到flightPlanCoordinates数组中。
我搜索了一种方法来删除部分折线,但我找不到任何有效的方法。我知道如何去除所有的标记或多段线,但不是一个单独的多段线部分。这甚至有可能吗?
任何想法或建议如何解决这个问题,或者这是不能按我想要的方式修复的东西?
在欧洲初始化bounds
与LatLng
代替推动此的LatLng
成flightPlanCoordinates
http://jsfiddle.net/doktormolle/HctvT/4/
当使用参考数组作为路径折线到所述阵列的任何变化将影响折线。
修复它,谢谢:) – tijmen