删除部分折线

问题描述:

我正在研究一个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数组中。

我搜索了一种方法来删除部分折线,但我找不到任何有效的方法。我知道如何去除所有的标记或多段线,但不是一个单独的多段线部分。这甚至有可能吗?

任何想法或建议如何解决这个问题,或者这是不能按我想要的方式修复的东西?

在欧洲初始化boundsLatLng代替推动此的LatLngflightPlanCoordinates

http://jsfiddle.net/doktormolle/HctvT/4/

当使用参考数组作为路径折线到所述阵列的任何变化将影响折线。

+0

修复它,谢谢:) – tijmen