Как добраться, центр полигона в Google отображает v3?

Это не должно быть на 100% корректно, это может быть центр ограничительного прямоугольника.

55
задан Brian Webster 17 February 2013 в 06:47
поделиться

2 ответа

Алгоритм:

Переберите все точки в многоугольнике. Для всех точек найдите;

  • x1, наименьшую x координату
  • y1, наименьшую y координату
  • x2, наибольшая x координата
  • y2, наибольшая y координата

Теперь у вас есть ограничивающий прямоугольник, и вы можете определить центр, используя:

center.x = x1 + ((x2 - x1) / 2);
center.y = y1 + ((y2 - y1) / 2);
63
ответ дан 26 November 2019 в 17:33
поделиться

Ответ Мэтью - хорошее решение. Однако при использовании Google Maps API v3 вы можете передать каждую точку многоугольника объекту LatLngBounds через метод extend () , а затем, наконец, вызвать ] getCenter () для объекта LatLngBounds . Рассмотрим следующий пример:

var bounds = new google.maps.LatLngBounds();
var i;

// The Bermuda Triangle
var polygonCoords = [
  new google.maps.LatLng(25.774252, -80.190262),
  new google.maps.LatLng(18.466465, -66.118292),
  new google.maps.LatLng(32.321384, -64.757370),
  new google.maps.LatLng(25.774252, -80.190262)
];

for (i = 0; i < polygonCoords.length; i++) {
  bounds.extend(polygonCoords[i]);
}

// The Center of the Bermuda Triangle - (25.3939245, -72.473816)
console.log(bounds.getCenter());
193
ответ дан 26 November 2019 в 17:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: