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.extenda を実行する必要もあります。map.fitBounds(bounds);

また、map.setCenter への呼び出しが正しくありません。この関数は、LatLng という 1 つのパラメーターのみを受け取ります。あなたはそれを2つ渡しています。私はあなたがやりたいと思っています:

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

私が知っているマップオブジェクトにはgetBoundsZoomLevel関数はありませんが。

于 2013-01-29T09:36:53.927 に答える