1

私のGoogleマッププログラムには、座標のみを取得してマップ上にポリラインを作成する単純なKMLパーサーがあり、さらにすべてのポイントで、後でラインを編集するために使用されるマーカーを作成します。ルートが長いと、マップが余分なマーカーからぶら下がります。カーブが 10 度を超える場合にのみマーカーを作成できるのではないでしょうか。今、私はif2 点ごとにのみスクリーニングされるものを持っていますが、これは弱い考えです。

配列のアンパックの例:

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度を超える計算方法は?

最適化する方法について、他に考えがあるのではないでしょうか?

4

1 に答える 1

2

ポリラインの単純化 - Douglas-Peucker algorithmが必要なようです。これが実装に関する別の説明です

于 2012-04-06T11:02:22.183 に答える