1

我一直在努力使用我的多边形绑定......当我只有标记时它似乎工作我是地图的完整初学者,所以任何帮助将不胜感激!我知道我将硬编码的长纬度放在前面,但我不知道以后如何更新它。我以为我的最后一行代码应该这样做?

function initialize() {
    var projpoints = tempstr.split("|");
    var mapDiv = document.getElementById('map-canvas');
    var map = new google.maps.Map(mapDiv, {
            center: new google.maps.LatLng(-26.6532808494364, 27.8769719868429 ),
            zoom: 16,
            mapTypeId: google.maps.MapTypeId.ROADMAP});
    var bounds = new google.maps.LatLngBounds();
    var pt = [];
    for (var j = 0; j < projpoints.length; j++) {
        pt=[];
        var latlongpoints=projpoints[j].split(",");
        for (var i = 0; i < latlongpoints.length; i++) { 
            var lat = (latlongpoints[i].split(" "));
            var latlng = new google.maps.LatLng(lat[1],lat[0]);
            pt.push(latlng);
            bounds.extend(latlng);
            var shape = new google.maps.Polygon({
                paths: pt,
                strokeColor: '#000000',
                strokeOpacity: 0.8,
                strokeWeight: 2,                    
                fillColor: '#808080',                    
                fillOpacity: 0.35    
            });

            shape.setMap(map);    
        }  

        map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));

    }
4

1 回答 1

0

除了做之外bounds.extend,您可能还需要map.fitBounds(bounds);在最后做 a 在您的循环之后。

而且您对 map.setCenter 的调用不正确。这个函数只接受一个参数,一个 LatLng。你通过它两个。我假设你想做:

map.setCenter(bounds.getCenter());
map.getBoundsZoomLevel(bounds);

虽然我知道地图对象上没有 getBoundsZoomLevel 函数。

于 2013-01-29T09:36:53.927 回答