Voici l'auditeur que j'ajoute -
var map;
var geocoder;
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(22, 88),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
}
//google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(map, 'click', function(event) {
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'latLng': event.latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert(results);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
});
Mais il génère cette erreur dans la console -
Uncaught TypeError: Cannot read property '__e3_' of undefined
Ke
Ie
R.addListener
(anonymous function)
Essayé de chercher. Mais pas de solution.
Déplacez votre auditeur dans la fonction d'initialisation.
Il est difficile de dire avec seulement une petite partie de votre code, mais cela semble ne pas pouvoir trouver "carte".
Soit votre variable de carte n’est pas globale, soit accessible d’une manière ou d’une autre par ce code OR, la carte n’a pas été créée avec:
map = new google.maps.Map(....)
avant d'essayer d'ajouter un nouvel écouteur de clic.
Je ne sais pas si cela peut poser problème, car nous ne voyons pas la partie de votre code où vous créez un lien vers la bibliothèque Google Maps, mais je viens de découvrir que la raison de cette erreur était en essayant d'inclure la bibliothèque "visualisations". Heureusement, je n'avais plus besoin de l'utiliser.
J'ai eu ceci:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry,visualization&sensor=true"></script>
et l'a changé en ceci:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=true"></script>
Je ne reçois plus l'erreur e3 .
À propos, cette erreur pour moi n’était pas cohérente et je ne pouvais pas comprendre comment la reproduire. Je devais rester assis là et appuyer sur rafraîchir encore et encore jusqu'à ce que l'erreur se produise.
J'espère que ça aidera quelqu'un.
Cela se produit lors du chargement de vos données asynchrones. Vous pouvez éviter cela en incluant votre code document.ready dans la fonction ajaxStop.
$().ready(function() {
$(document).ajaxStop(function () {
/* your code here ?*/
});
});
Dans mon cas, c’était que la variable de carte globale avait été écrasée dans l’initialiseur, mais je voulais utiliser cette variable globale dans une autre fonction, ce qui posait problème.
Dans mon cas, google.maps.event.addListener(marker, 'click', function() {
, la variable de marqueur était indéfinie. Et d'où l'erreur. Pourrait être utile pour quelqu'un.
Oui, ensuite ... La variable de carte doit être déclarée à l'extérieur et avant son utilisation. En tant que Google Maps Listener ne peut pas le trouver.
Quelque chose comme ça?
var lati,longt; //contains latitude and longitude
func newLatLOng(){
get new value of latLong
initMap();
}
var map = 0;
function initMap() {
if (map ===0)
{
//load first time
lati= 28.5072216;
longt= 77.4971153;
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: lati, lng: longt},
zoom: 13
});
}else
{
var geolocation = { lat:lati,
lng: longt };
google.maps.event.trigger(map, 'resize');
map.setCenter(geolocation);
}