8 votes

Comment puis-je détecter un événement de clic sur une carte Google via une superposition ?

Mon problème est que j'ai une superposition de carte circulaire mais je veux pouvoir déplacer le cercle en cliquant sur la carte pour définir le nouveau centre, le problème actuel est que lorsque je clique sur la superposition et appelle ma méthode 'setCenter(overlay, latlng)', je reçois une latitude et une longitude indéfinies et une superposition valide.

voici un exemple qui peut illustrer le problème, si vous cliquez sur la carte, un polygone est dessiné et si vous cliquez à l'intérieur du polygone, aucun nouveau polygone n'est dessiné, si vous cliquez ailleurs sur la carte, un polygone est dessiné http://code.google.com/apis/maps/documentation/examples/polygon-simple.html

Je veux pouvoir cliquer sur le polygone et en dessiner un nouveau en les superposant

merci

13voto

Daniel Vassallo Points 142049

Tout ce que vous avez à faire est de définir l'option clickable: false dans le constructeur de GPolygon, comme dans l'exemple suivant (GPolygonOptions: Référence de l'API) :

   Démo de Polygone non cliquable de Google Maps 

      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);
      });

Capture d'écran à l'appui :

Google Maps Non Clickable Polygon Demo

Remarquez que l'événement click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) passe des arguments différents en fonction du contexte du clic et de la cliquabilité de l'overlay. Si le clic ne se produit pas sur un overlay cliquable, l'argument overlay est null et l'argument latlng contient les coordonnées géographiques du point cliqué. Si l'utilisateur clique sur un overlay cliquable, l'argument overlay contient l'objet d'overlay, tandis que l'argument overlaylatlng contient les coordonnées de l'overlay cliqué (Source : Référence de l'API).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X