0

これは、私のテスト例と私が理解しようとしているコードへのリンクです。 http://www.gaiser-vfx.com/media/maptest.html

<div id="googleMap">
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="http://code.google.com/apis/gears/gears_init.js"></script>
    <div id="map_canvas" style="width:100%; height:300px"></div>
<script>
    var noLocation = new google.maps.LatLng(52.1307, -3.78371);
    var initialLocation;
    var browserSupportFlag =  new Boolean();
    var map;
    var myOptions = {
        zoom: 6,
        draggable: true,
        minZoom: 0,
        maxZoom: 20,
        disableDefaultUI: true,
        zoomControl: true,
        scrollwheel: true,
        disableDoubleClickZoom: true,
        mapTypeId: google.maps.MapTypeId.false
    };

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    google.maps.event.addListener(map, 'bounds_changed', function() {
    var center = map.getCenter();
    var zoomLevel = map.getZoom();
    $('#LocationLatitude').val(center.lat().toFixed(5));$('#LocationLongitude').val(center.lng().toFixed(5));$('#LocationZoom').val(zoomLevel);});


    var poly
    var path = new google.maps.MVCArray;
    poly = new google.maps.Polygon({
        strokeWeight: 3,
        fillColor: '#5555FF'
    });

    poly.setMap(map);
    poly.setPaths(new google.maps.MVCArray([path]));
    google.maps.event.addListener(map, 'click', addPoint);

    function addPoint(event) {
        path.insertAt(path.length, event.latLng);
        var marker = new google.maps.Marker({
        position: event.latLng,
        map: map,
        draggable: true
    });

    markers.push(marker);
    marker.setTitle("#" + path.length);
    google.maps.event.addListener(marker, 'click', function() {
        marker.setMap(null);
        for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
            markers.splice(i, 1);
            path.removeAt(i);
        });

        google.maps.event.addListener(marker, 'dragend', function() {
            for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
                path.setAt(i, marker.getPosition());
            }
        );
    }
</script>

`

これは私が従おうとしている例です。

http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.html

私のコードと例の主な違いの 1 つは、ページをロードするときに自分のコードをロードしようとしているときに、例で初期化関数呼び出しを使用していることです。私のマップ テストでは、マップ上にマーカーを配置し、それらをピックアップして移動することはできますが、ポリゴンを新しいマーカー ポイントに更新する各マーカーの機能と、各マーカーを削除する機能は機能していないようです。

4

1 に答える 1

0

markersイベントリスナーに見える変数を宣言するだけです。

...
var markers = [];
var poly;
var path = new google.maps.MVCArray;
...
于 2012-06-01T19:03:30.893 に答える