在我的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 algorithm。 Here is another description with implementation
关于javascript - 如何从KML坐标中优化标记数量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10041873/