Google Maps API: Вычислите Центр/Масштабирование Ломаной линии

У меня есть наложение, которое динамично сгенерировано от пользовательских данных, таким образом, я должен знать, как найти центр того наложения.

В настоящее время я просто использую первые координаты от наложения, но это действительно не представляет центр наложения. Поэтому, когда я загружаю карту, она не центрируется на наложении.

У кого-либо есть хороший метод для центрирования карты на наложении, путем вычисления центра, не трудно кодирования его?

var latlng = new google.maps.LatLng(38.269239, -122.276010);
    var myOptions = {
        zoom: 15,//Calculate this somehow?
        center: latlng,// Calculate value from array of coordinates?
        mapTypeId: google.maps.MapTypeId.HYBRID
    };
26
задан Nic Hubbard 23 July 2010 в 18:04
поделиться

1 ответ

Если у вас есть список координат, вы можете перебрать их и добавить в объект LatLngBounds . Вот пример API V3, но концепция V2 аналогична:

var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < coordinates.length; i++) {
  bounds.extend(coordinates[i]);
}

После этого вы можете получить центр с помощью:

bounds.getCenter();

Или, альтернативно, вы можете вызвать map.fitBounds () напрямую, что позволит центрировать карту вокруг центра границ и отрегулировать масштаб так, чтобы все границы точно помещались в окно просмотра.

map.fitBounds(bounds);
86
ответ дан 28 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

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