invalidValueError:setCenter:不是LatLng或LatLngLiteral对象

时间:2014-04-11 03:46:15

标签: javascript google-maps google-maps-api-3

我是谷歌地图api v3的新手。我已经用2个标记创建了一个不错的谷歌地图但是当我使用google.maps.latlngBounds时,它会返回错误

invalidValueError : setCenter : not a LatLng or LatLngLiteral Object

我该如何解决这个问题? 我只想围绕这些标记居中。

function initialize() {

          var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
          var myLatlng2 = new google.maps.LatLng(-25.573688, 132.567212);

        var mapOptions = {
          center: myLatlng,
          zoom: 8,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        try {
        var map = new google.maps.Map(document.getElementById("map-canvas"),
            mapOptions);

            var marker = new google.maps.Marker({
            position: myLatlng
        });

        var marker2 = new google.maps.Marker({
            position: myLatlng2
        });

        trackerMarkerArray.push(marker);
        trackerMarkerArray.push(marker2);

        var latlngbound = new google.maps.LatLngBounds ();
        for (var i = 0; i<trackerMarkerArray.length; i++){
            trackerMarkerArray[i].setMap(map);

            latlngbound.extend(trackerMarkerArray[i].position);
        }




        //render new map and center around group of marker
        map.setCenter(latlngbound);
        map.fitBounds(latlngbound);


        } catch (err){
            alert(err);
        }


      }
      google.maps.event.addDomListener(window, 'load', initialize);

2 个答案:

答案 0 :(得分:3)

To&#34; fit&#34;添加到google.maps.LatLngBounds对象的一组标记的地图使用map.fitBounds(bounds),而不是map.setCenter()。

google.maps.Map documentation

答案 1 :(得分:1)

    map.setCenter(latlngbound);

map.setCenter takes a LatLng as a parameter,你传递的是LatLngBounds,我想你想这样做:

    map.setCenter(latlngbound.getCenter());