1
私のgoogle mapsプログラムでは、座標のみを取得してマップ上にポリラインを作成する単純なKMLパーサーがあり、さらにポイントを追加すると、後でその行を編集するために使用されるマーカーが作成されます。より長いルートマップではマーカーの超過からハングアップします。カーブが10度を超える場合にのみ、マーカを作成することができます。今私はif
を1秒おきにしか選別していないが、これは弱い考えである。配列を開梱KML座標からマーカーの数を最適化する方法は?
実例:
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度を超えていることを計算する方法は?
あなたはそれがどのように最適化できるか他の考えがありますか?
ありがとう、これは素晴らしいアルゴリズムです、私が探していたものです。私の例では、javascript [link](http://mourner.github.com/simplify-js/)で実装が見つかりました。 – roza