2012-04-06 3 views
1

В моей программе карт google у меня есть простой парсер KML, который извлекает только координаты и создает для них полилинии, кроме того, в каждой точке создаются маркеры, которые позже используются для редактирования строки. При более длинных маршрутах карта зависает от избытка маркеров. Я понял, возможно, вы можете создавать маркеры, только если кривая превышает 10 градусов? Теперь у меня есть if, который экранируется только каждый второй момент, но это слабая идея.Как оптимизировать количество маркеров из координат 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 градусов?

Возможно, у вас есть другое представление о том, как его можно оптимизировать?

ответ

Смежные вопросы