Ajout de plusieurs addListener événements à une Carte Google map forme avec le géocodage
J'ai créé une Carte Google formulaire qui permet aux utilisateurs de saisir une adresse dans un champ de texte et de géocodage à l'entrée. Ensuite, cela met un marqueur sur une carte. Cela fonctionne bien, mais je veux ajouter un addListener ainsi, lorsque l'utilisateur clique sur la carte, il va ajouter un autre code où cliquer. Pour une raison quelconque, mon 'cliquez sur' addListener ne fonctionne pas. Comment pourrais-je avoir plusieurs ajouter des Écouteurs comme ça?
J'ai joint mon actuelle code:
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(40.7,-74.0),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.bindTo('bounds', map);
var marker = new google.maps.Marker({
map: map,
draggable: true
});
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(16);
}
var image = "http://www.google.com/mapfiles/marker_green.png";
marker.setIcon(image);
marker.setPosition(place.geometry.location);
var address = '';
if (place.address_components) {
address = [(place.address_components[0] &&
place.address_components[0].short_name || ''),
(place.address_components[1] &&
place.address_components[1].short_name || ''),
(place.address_components[2] &&
place.address_components[2].short_name || '')
].join(' ');
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(map, 'click', function() {
//alert("Hello! I am an alert box!!");
var marker1 = new google.maps.Marker({
map: map,
draggable: true
});
var image = "http://www.google.com/mapfiles/marker_green.png";
marker1.setIcon(image);
marker1.setPosition(new google.maps.LatLng(40.7,-74.0));
map.addOverlay(marker1);
});
Merci
OriginalL'auteur AtomicCharles | 2011-12-20
Vous devez vous connecter pour publier un commentaire.
La carte, cliquez sur l'événement sera de retour à la position de la souris, cliquez sur.
Mise à jour: Pour effacer le marqueur de vieux quand un nouveau est ajouté vous avez besoin de stocker une instance de la marque à l'extérieur de l'auditeur champ d'application, alors vous pouvez l'effacer au début de l'écouteur d'événement.
Mis à jour violon exemple.
marker1.setMap(null)
mais ce n'est pas permettez-moi d'ajouter un nouveau marqueur)Mise à jour de la réponse.
Merci Bryan! Fonctionne parfaitement
OriginalL'auteur Bryan Weaver
Vous pouvez utiliser un
pour ajouter un événement onclick de l'objet map. Voici une référence:
http://code.google.com/apis/maps/documentation/javascript/reference.html#Map
Vous pouvez également utiliser les Cartes Google maps Outils de Dessin de la bibliothèque:
http://code.google.com/apis/maps/documentation/javascript/overlays.html#drawing_tools
google.maps.event.addListener(marker1, 'click', function() {...
àgoogle.maps.event.addListener(map, 'click', function() {...
Un clic n'est pas encore le déclenchement de la fonction si. Pensez-vous qu'il a à faire avec la façon dont je suis le chargement de ma fonction initialize ()?AtomicCharles - avez-vous résoudre ce problème? J'ai le sentiment que je reçois le même problème?
OriginalL'auteur Mano Marks