在我的Google Maps程序中,我有一个简单的KML解析器,该解析器仅检索坐标并在地图上为其创建折线,此外,在每个点上都创建了标记,以后可用来编辑线。路线较长时,地图会因多余的标记而挂起。我知道,也许只有曲线超过10度才能创建标记?现在,我有了if,仅每隔一秒进行一次筛选,但这是一个很差的主意。

说明性拆包数组:

for (var i=0;i<coords.length;i++) {
    if(i!=0&&i!=coords.length-1){
        var prevpt = new google.maps.LatLng(coords[i-1].lat, coords[i-1].lng);
        var pivot = new google.maps.LatLng(coords[i].lat, coords[i].lng);
        var nextpt = new google.maps.LatLng(coords[i+1].lat, coords[i+1].lng);

        var marker = createMarker(pivot);
        polyMarkers.push(marker);
        var path = polyLine.getPath();
        path.push(pivot);
    }
}


如何计算下一个超过10度?

也许您对如何对其进行优化有其他想法?

最佳答案

看来您需要简化折线-Douglas-Peucker algorithmHere is another description with implementation

关于javascript - 如何从KML坐标中优化标记数量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10041873/

10-10 16:15