0

このコードを使用して、マップを中央に配置し、最適なズーム レベルに合わせてすべてのマーカーを表示しようとしています

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); 

しかし、マップが表示されず、コンソールエラーが「type error c is null」です。URL は 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); 

住所にカーソルを合わせるまで、マップは青色で表示されるようになりました。これは、ズームが遠すぎるためですか、それとも他の何かですか?

4

1 に答える 1

0

あなたの地図は太平洋の真ん中に向かっているので、青です。これは、マーカーのラトロンを正しく読み取っていないためです。それ以外の

  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());
}
于 2012-09-01T14:22:07.907 に答える