2012-06-01 95 views
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

我的一个代码和例子之间的主要差异是在本例中使用的初始化函数调用,而我只是想在加载网页载入我的。在我的地图测试中,我可以在地图上放置标记并将它们移动并移动它们,但是每个标记上将poly更新为新标记点的功能以及删除每个标记的功能似乎都不起作用。

+0

参见:http://stackoverflow.com/questions/10854431/how-to-when-marker -is-点击-点心的地图和放映-A-大DIV-INSTEAD-OF-AN-IN/10854743#10854743 –

回答

0

它看起来像所有你需要做的就是声明一个变量markers可见的事件监听器:

... 
var markers = []; 
var poly; 
var path = new google.maps.MVCArray; 
...