2010-03-21 39 views
7

Vấn đề của tôi là tôi có lớp phủ bản đồ vòng tròn nhưng tôi muốn có thể di chuyển vòng tròn bằng cách nhấp vào bản đồ để đặt trung tâm mới, vấn đề thực tế là khi tôi nhấp vào lớp phủ và gọi phương thức 'setCenter' của tôi overlay, latlng) ', tôi nhận được latlang không xác định và lớp phủ hợp lệ.Làm cách nào để phát hiện sự kiện nhấp chuột trên bản đồ google thông qua lớp phủ?

đây là ví dụ minh họa sự cố, nếu bạn nhấp vào bản đồ đa giác được vẽ và nếu bạn nhấp vào bên trong đa giác không có đa giác mới được vẽ, nếu bạn nhấp vào bất kỳ nơi nào khác trên bản đồ đa giác được vẽ http://code.google.com/apis/maps/documentation/examples/polygon-simple.html

tôi muốn để có thể nhấp vào đa giác và vẽ một cái mới làm cho chúng chồng lên nhau

nhờ

Trả lời

12

Tất cả bạn cần làm là thiết lập các clickable: false tùy chọn trong constructor GPolygon, như trong những điều sau đây ví dụ (GPolygonOptions: API Reference):

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps Non Clickable Polygon Demo</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" 
       type="text/javascript"></script> 
</head> 
<body onunload="GUnload()"> 
    <div id="map" style="width: 450px; height: 300px"></div> 

    <script type="text/javascript"> 
     var map = new GMap2(document.getElementById("map")); 
     map.setCenter(new GLatLng(37.4419, -122.1419), 13); 

     GEvent.addListener(map, "click", function(overlay, latlng) { 
     var lat = latlng.lat(); 
     var lon = latlng.lng(); 
     var latOffset = 0.01; 
     var lonOffset = 0.01; 
     var polygon = new GPolygon([ 
      new GLatLng(lat, lon - lonOffset), 
      new GLatLng(lat + latOffset, lon), 
      new GLatLng(lat, lon + lonOffset), 
      new GLatLng(lat - latOffset, lon), 
      new GLatLng(lat, lon - lonOffset) 
     ], "#f33f00", 5, 1, "#ff0000", 0.2, { clickable: false }); 

     map.addOverlay(polygon); 
     }); 
    </script> 
</body> 
</html> 

Ảnh chụp màn hình với bằng chứng:

Google Maps Non Clickable Polygon Demo

Lưu ý rằng các sự kiện click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) đi lập luận khác nhau dựa trên bối cảnh của nhấp chuột, và có hoặc không có nhấp chuột xảy ra trên một lớp phủ có thể click . Nếu nhấp chuột không xảy ra trên lớp phủ có thể nhấp, đối số overlaynull và đối số latlng chứa tọa độ địa lý của điểm được nhấp. Nếu người dùng nhấp vào lớp phủ có thể nhấp, đối số overlay chứa đối tượng lớp phủ, trong khi đối số overlaylatlng chứa tọa độ của lớp phủ được nhấp (Source: API Reference).

Các vấn đề liên quan