【问题标题】:invalidValueError : setCenter : not a LatLng or LatLngLiteral ObjectinvalidValueError : setCenter : 不是 LatLng 或 LatLngLiteral 对象
【发布时间】:2014-04-11 13:39:59
【问题描述】:

我是谷歌地图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);

【问题讨论】:

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


    【解决方案1】:

    要将地图“匹配”到添加到google.maps.LatLngBounds 对象的一组标记,请使用 map.fitBounds(bounds),而不是 map.setCenter()。

    google.maps.Map documentation

    【讨论】:

    • 那么您的代码创建的边界有问题(或者您添加到其中的数据会导致覆盖整个世界的边界)。但是使用您发布的代码对我有用jsfiddle(一旦我修复了明显的 javascript 错误并删除了无效的 map.setCenter(bounds) 调用)
    【解决方案2】:
        map.setCenter(latlngbound);
    

    map.setCenter takes a LatLng as a parameter,你正在传递一个 LatLngBounds,我想你想这样做:

        map.setCenter(latlngbound.getCenter());
    

    【讨论】:

    • 好的,我得到了结果,但是地图缩小到行尾.....你能建议我用地图做什么吗?缩小部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多