我的谷歌地图多边形边界和缩放不起作用

My google maps polygon boundary and zoom is not working

本文关键字:缩放 不起作用 边界 谷歌地图 多边形 我的      更新时间:2023-09-26

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

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

除了做bounds.extend,你可能还需要在循环之后的最后做一个map.fitBounds(bounds);

而且您对map.setCenter的调用不正确。 此函数仅接受一个参数,即 LatLng。 你把它传了两个。 我假设你想做:

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

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