У меня есть наложение, которое динамично сгенерировано от пользовательских данных, таким образом, я должен знать, как найти центр того наложения.
В настоящее время я просто использую первые координаты от наложения, но это действительно не представляет центр наложения. Поэтому, когда я загружаю карту, она не центрируется на наложении.
У кого-либо есть хороший метод для центрирования карты на наложении, путем вычисления центра, не трудно кодирования его?
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
};
Если у вас есть список координат, вы можете перебрать их и добавить в объект 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);