Saya baru saja beralih ke Google Maps API V3. Saya sedang mengerjakan contoh sederhana yang memplot penanda dari array, namun saya tidak tahu cara memusatkan dan memperbesar secara otomatis sehubungan dengan marker.
Saya telah mencari bersih tinggi dan rendah, termasuk dokumentasi Google sendiri, tetapi belum menemukan jawaban yang jelas. Saya tahu saya bisa mengambil rata-rata koordinat, tetapi bagaimana cara mengatur zoom?
function initialize() {
var myOptions = {
zoom: 10,
center: new google.maps.LatLng(-33.9, 151.2),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
setMarkers(map, beaches);
}
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.423036, 151.259052, 5],
['Cronulla Beach', -34.028249, 121.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.450198, 151.259302, 1]
];
function setMarkers(map, locations) {
var image = new google.maps.MarkerImage('images/beachflag.png',
new google.maps.Size(20, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png',
new google.maps.Size(37, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
for (var i = 0; i < locations.length; i++) {
var beach = locations[i];
var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
shadow: shadow,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[3]
});
}
}
javascript
google-maps
google-maps-api-3
Michael Bradley
sumber
sumber
Dapatkan semuanya diurutkan - lihat beberapa baris terakhir untuk kode - (
bounds.extend(myLatLng); map.fitBounds(bounds);
)sumber
Saran saya untuk google maps api v3 adalah (jangan berpikir itu bisa dilakukan dengan lebih efisien):
Sebagai hasilnya, Anda akan cocok dengan semua titik dalam batas di jendela peta Anda.
Contoh berfungsi dengan baik dan Anda bebas dapat memeriksanya di sini www.zemelapis.lt
sumber
false
jikabounds
adanull
, Anda bisamaps[ mapId ].getBounds()
.Jawabannya sempurna untuk menyesuaikan batas peta untuk marker tetapi jika Anda ingin memperluas batas Google Maps untuk bentuk seperti poligon dan lingkaran, Anda dapat menggunakan kode berikut:
Untuk Lingkaran
Untuk Poligon
Untuk Rectangles
Untuk Polylines
sumber
Metode setCenter () masih berlaku untuk versi terbaru dari Maps API for Flash di mana fitBounds () tidak ada.
sumber
Gunakan di bawah satu,
map.setCenter (bounds.getCenter (), map.getBoundsZoomLevel (batas));
sumber