Extrait drawingManager polygone chemin d'accès Google Maps, cliquez sur
J'ai une carte Google map avec le dessin gestionnaire activé lorsqu'un utilisateur peut dessiner un polygone et l'enregistrer dans ma db. J'ai ajouté un écouteur d'événement à la drawingManager de l'objet pour la overlaycomplete événement. Lorsque l'événement est déclenché, les coordonnées du polygone sont écrits dans un champ caché. Cela fonctionne très bien le seul problème étant que si les sommets sont glissés/modifié après que le point de l'événement n'est pas déclenché. J'ai besoin de mettre à jour le champ sur les(éventuelles)de modifier ou de parcourir le polygone de sommets lorsque l'utilisateur clique sur soumettre et de les écrire dans le champ caché. Je n'arrive pas à comprendre comment obtenir que cela fonctionne, mais vous pouvez voir ce que j'ai jusqu'à présent ici: http://jsfiddle.net/5Y4WT/21/
HTML:
<div id="map_canvas" style="width:500px; height:450px;"></div>
<form method="post" accept-charset="utf-8" id="map_form">
<input type="text" name="vertices" value="" id="vertices" />
<input type="button" name="save" value="Save!" id="save" />
</form>
JavaScript:
var map; //Global declaration of the map
var iw = new google.maps.InfoWindow(); //Global declaration of the infowindow
var lat_longs = new Array();
var markers = new Array();
var drawingManager;
function initialize() {
var myLatlng = new google.maps.LatLng(40.9403762, -74.1318096);
var myOptions = {
zoom: 13,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.POLYGON,
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [google.maps.drawing.OverlayType.POLYGON]
},
polygonOptions: {
editable: true
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager, "overlaycomplete", function(event) {
var newShape = event.overlay;
newShape.type = event.type;
});
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
$('#vertices').val(event.overlay.getPath().getArray());
});
}
initialize();
$(function(){
$('#save').click(function(){
//iterate polygon vertices?
});
});
merci!!!! J'ai été en mesure d'extraire le peu que j'avais besoin et il fonctionne très bien!
OriginalL'auteur Yev | 2013-03-16
Vous devez vous connecter pour publier un commentaire.
Compris!!
J'ai ajouté la fonction overlayClickListener:
et l'ont attaché à la superposition sur overlaycomplete:
Pour la solution en action, voir ici: http://jsfiddle.net/rvsMH/1/
OriginalL'auteur Yev