最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - invalidValueError : setCenter : not a LatLng or LatLngLiteral Object - Stack Overflow

programmeradmin3浏览0评论

I'm new to google map api v3. I already establish a decent google map with 2 marker but when I use google.maps.latlngBounds, it return me an error

invalidValueError : setCenter : not a LatLng or LatLngLiteral Object.

How can I fix this? I just want to centre my map around these markers.

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

I'm new to google map api v3. I already establish a decent google map with 2 marker but when I use google.maps.latlngBounds, it return me an error

invalidValueError : setCenter : not a LatLng or LatLngLiteral Object.

How can I fix this? I just want to centre my map around these markers.

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);
Share Improve this question edited Apr 11, 2014 at 3:55 gangadhars 2,7287 gold badges44 silver badges72 bronze badges asked Apr 11, 2014 at 3:46 Keluang Yang Ko KenalKeluang Yang Ko Kenal 861 gold badge3 silver badges9 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3

To "fit" the map to a set of markers added to a google.maps.LatLngBounds object use map.fitBounds(bounds), not map.setCenter().

google.maps.Map documentation

    map.setCenter(latlngbound);

map.setCenter takes a LatLng as a parameter, you're passing a LatLngBounds, I think you want to do it like this:

    map.setCenter(latlngbound.getCenter());
发布评论

评论列表(0)

  1. 暂无评论