How to detect a click event on a Google map through an overlay?

My problem is that I have a circle map overlay, but I want to be able to move the circle by clicking on the map to set a new center, the actual problem is that when I click on the overlay and call my setCenter ( overlay, latlng) ', I get an undefined latlang and a valid overlay.

here is an example that can illustrate the problem if you click on the map, the polygon is drawn, and if you click inside the polygon, the new polygon will not be drawn, if you click elsewhere on the map, the http://code.google polygon is drawn . com / apis / maps / documentation / examples / polygon-simple.html

I want to be able to click on the polygon and draw a new one, making them overlap

thanks

+7
google-maps
source share
1 answer

All you have to do is set the clickable: false parameter in the GPolygon constructor, as in the following example ( 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> 

Screenshot with proof:

Google Maps Non Clickable Polygon Demo

Note that the click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) event click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) gives different arguments depending on the context of the click and whether the click occurred on a clickable overlay. If a click does not occur on a clickable overlay, the overlay argument is null , and the latlng argument contains the geographic coordinates of the point the button was clicked on. If the user clicks on the overlay, the overlay argument contains the overlay object, and the overlaylatlng argument contains the coordinates of the clicked overlay ( Source: API Reference ).

+12
source share

All Articles