Retrait d'un polygone à partir de google maps drawingManager V3
J'ai une modifiables par l'utilisateur de google map où les utilisateurs peuvent dessiner une superposition de polygones sur la carte à l'aide du plan directeur. Cela fonctionne bien et les journaux de la console de la lat lngs j'ai besoin. Cependant, j'ai besoin d'ajouter un bouton qui permettra de effacer de la carte du polygone de sorte qu'ils peuvent tirer d'une fois si une erreur a été faite.. Mon code d'application est collé ci-dessous:
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(<?php echo $latitude ?>, <?php echo $longitude ?>);
var myOptions = {
zoom: <?php echo $zoomlevel ?>,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
marker = new google.maps.Marker({
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: latlng
})
pos = marker.position;
//alert(pos);
document.getElementById("gpsite-surgery-latitude").value = pos.lat();
document.getElementById("gpsite-surgery-longitude").value = pos.lng();
google.maps.event.addListener(marker, "dragend", function() {
var myLatLng = marker.latLng;
pos = marker.position;
//alert(pos);
document.getElementById("gpsite-surgery-latitude").value = pos.lat();
document.getElementById("gpsite-surgery-longitude").value = pos.lng();
})
google.maps.event.addListener(map, 'zoom_changed', function() {
document.getElementById("gpsite-surgery-zoomlevel").value = map.getZoom();
});
var drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.MARKER,
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [google.maps.drawing.OverlayType.POLYGON]
},
polygonOptions: {
fillColor: '#ffff00',
fillOpacity: 0.4,
strokeWeight: 3,
clickable: true,
zIndex: 1,
editable: false
}
});
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
var coordinates = (polygon.getPath().getArray());
console.log(coordinates);
});
drawingManager.setMap(map);
});
Il est également un marqueur sur la carte, vous pouvez l'ignorer.
Merci d'avance
OriginalL'auteur Steve Smith | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Examiner ce code, il sonne exactement comme ce que vous êtes en train de parler, un bouton pour supprimer la forme
http://gmaps-samples-v3.googlecode.com/svn-history/r282/trunk/drawing/drawing-tools.html
Edit: lien ci-dessus est brisé, mais j'ai été en mesure de trouver le code ici.
Salut @Tina CG Hoehr.....j'ai besoin d'obtenir de la zone sélectionnée de la latitude et de la longitude.Est-il possible ah? merci de me fournir plus d'information.....
C'est une excellente mise en œuvre de la DrawingManager avec quelques belles améliorations de l'Interface Utilisateur.
le lien est mort, mais stackoverflow.com/a/12006751/1158842 est très similaire
OriginalL'auteur Tina CG Hoehr
Vous avez besoin d'une référence pour le polygone dans le contexte mondial. Ensuite, dans la fonction de gestionnaire de clic pour le bouton d'appel du polygone.setMap(null) (lorsque le polygone est une référence mondiale pour le polygone, ne peuvent pas dire si elle est globale ou non de l'incomplétude de l'extrait de code que vous avez posté)
aussi, j'ai réalisé que je ne peut pas référence à l'polygone à l'échelle mondiale parce que, comme mentionné, c'est un plygon entrée par l'utilisateur à l'aide de drawingManager. Il ne semble pas être une façon de laisser à l'utilisateur le supprimer
OriginalL'auteur geocodezip