设置缩放和中心以显示所有标记 - 在地图元素中显示蓝色

时间:2012-09-01 10:00:51

标签: google-maps

我正在尝试将地图居中并使用此代码显示所有标记以适合最佳缩放级别

var searchname=document.getElementById("hidden_searchname").value;
if(trim(document.getElementById("longitude").value)!="")
{
    zoom=11; 
    lat=document.getElementById("latitude").value;
    longitude=document.getElementById("longitude").value;
}
else
{
    zoom=11;
    longitude="-88";
    lat="42";
}
latlng = new google.maps.LatLng(lat,longitude);
var myOptions = {
    zoom: zoom,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};

map = new google.maps.Map(document.getElementById("map"), myOptions);

var latlngbounds = new google.maps.LatLngBounds();

for (var i = 0; i < latlng.length; i++)
{
    latlngbounds.extend(latlng[i]);
}
//map.setCenter(latlngbounds.getCenter(), map.getBoundsZoomLevel(latlngbounds));
map.setCenter(latlngbounds.getCenter());
map.fitBounds(latlngbounds); 

但它显示我没有得到的地图和控制台错误是“类型错误c为空”。网址为http://tinyurl.com/bp94qdy

在框中键入Mcdonalds并查看。

我调整了代码并使用下面的代码正确缩放

   map = new google.maps.Map(document.getElementById("map"), myOptions);


var latlngbounds = new google.maps.LatLngBounds();

    for (var index in markersArray) {

       var lat = markersArray[index].lat;
       var lng = markersArray[index].lng;
   //alert(markersArray[index].lng);
       var latlng2 = new google.maps.LatLng(lat, lng);
        latlngbounds.extend(latlng2);
       }

    //map.setCenter(latlngbounds.getCenter(), map.getBoundsZoomLevel(latlngbounds));
   map.setCenter(latlngbounds.getCenter());
      map.fitBounds(latlngbounds); 

地图现在显示为蓝色,直到我将鼠标悬停在地址上方。这是因为变焦距离很远还是其他什么?

1 个答案:

答案 0 :(得分:0)

你的地图是去太平洋的中间,所以它是蓝色的。那是因为你没有正确阅读标记的latlon。而不是

  for (var index in markersArray) {

    var lat = markersArray[index].lat;
    var lng = markersArray[index].lng;

    var latlng2 = new google.maps.LatLng(lat, lng);
     latlngbounds.extend(latlng2);
}

你应该做

for (var i = 0 ; i < markersArray.length ; i++) {
     latlngbounds.extend(markersArray[i].getPosition());
}