Tho*_*wes 3 javascript google-maps
function initialize(){
// Creating a map
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(53.0123601276819, -2.44519164333635),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var m = [];
function addMarker(title, lat, lng) {
m[m.length] = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
title: title,
clickable: true,
icon: 'http://domain.com/MVC/images/full.png'
});
}
addMarker('Home', 53.0682143712504, -2.52150736731894);
addMarker('Away', 53.0123601276819, -2.44519164333635);
addMarker('Away', 59.0123601276819, -2.44519164333635);
// Create a LatLngBounds object
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < m.length; i++) {
// Insert code to add marker to map here
// Extend the LatLngBound object
bounds.extend(m[i]);
}
alert(m[0]);
map.fitBounds(bounds);
document.write(getBounds());
}
Run Code Online (Sandbox Code Playgroud)
以上是我的代码.
我的目的是开发一个地图,显示许多标记并平移缩放,使所有标记都适合我的屏幕.
我是JS的新手.
我的理解是
var m = [];
Run Code Online (Sandbox Code Playgroud)
创建一个空数组.
然后每次我调用addMarker()细节都会添加到这个数组m
在顶部,我设置了默认的缩放和中心点.
然后我添加各种标记.
然后我循环遍历m数组中的每个键,并使用此数据扩展边界.
根据我的理解,map.fitBounds(bounds);应该重新定义适用于所有标记的缩放/中心.
它不是.我的所有标记都显示,但缩放/中心不是自动调整,我不明白为什么.
任何建议将不胜感激.谢谢
您需要将LatLng对象传递给该bounds.extend函数.
这是代码:
....
bounds.extend(new google.maps.LatLng(lat, lng));
....
Run Code Online (Sandbox Code Playgroud)
小智 5
以上是对上述答案的澄清,这是正确的,除了它缺少一个括号和一个简短的说明.
//make an empty bounds variable
var bounds = new google.maps.LatLngBounds();
//do your map stuff here
//special note: make sure your lat and lng are integers or googleMaps will error
var lat = 38.103;
var lng = -121.572;
bounds.extend(new google.maps.LatLng(lat, lng));
//adjust the viewport of the map
//special note: this only needs to be done once, don't put it in a loop
map.fitBounds(bounds);
Run Code Online (Sandbox Code Playgroud)