Как уменьшить количество путевых кординат в респонсе DirectionService API
Всем привет, как можно уменьшить количество путевых кординаты в результате DirectionService от google map? Когда я декодирую перебирая legs.steps.polyline то получаю огромный массив путевых координат(lat,lng). Мне нужно сократить эти точки. Я пробовал использовать simplify. Он удалял все путевые точки кроме первого и последнего, из-за этого маршрут строился некорректно
Ответы (1 шт):
Автор решения: Виктор Карев
→ Ссылка
По умолчанию simplify использует минимальное расстояние = 1. Поэтому, когда разница между точками порядка градуса, все промежуточные точки удаляются. Поэтому:
var x1 = 180,
x2 = -180,
y1 = 90,
y2 = -90;
for (var i = 0; i < coordinates.length; i++) {
var prop = coordinates[i];
x1 = Math.min(prop[0], x1);
x2 = Math.max(prop[0], x2);
y1 = Math.min(prop[1], y1);
y2 = Math.max(prop[1], y2);
}
var l = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
coordinates = simplify(coordinates, l / 100, true);
C константой 100 ещё можно поиграть.


