Gmaps.js a cessé de fonctionner

D'un jour à l'autre, la bibliothèque Gmaps.js a cessé de fonctionner … J'ai créé une carte avec 3 marqueurs sur elle et ils ont eu InfoWindows et j'ai ajouté une petite option de routage dans l'InfoWindow où vous avez pu taper votre adresse In et Gmaps vous ont acheminé vers ce point.

Maintenant, sans changer quoi que ce soit au cours des 2 dernières semaines, je ne peux plus le faire fonctionner: la carte est chargée sans problème mais lorsque je clique sur un marqueur, la carte se tue.

Voici l'URL: http://gruber.tv/z/#standorte

Lorsque je charge la carte dans Firefox, je peux voir beaucoup d'erreurs "trop ​​de récursivité" et elles proviennent toutes de Google.js

J'espère que quelqu'un peut m'aider!

Cordialement iDave

Regardez votre code qui gère l'événement de click pour chacun de vos marqueurs:

 map.setCenter( e.position.k, e.position.D ); 

La méthode setCenter() dans gmaps prend des arguments de latitude et de longitude. Do k et D ressemblent-ils à des noms sensibles? 🙂

Je soupçonne que vous avez trouvé ces propriétés en recherchant les outils de développement tout en développant votre code, n'est-ce pas? Définissez un point d'arrêt sur cette ligne de code et regardez d'abord lorsque vous y arrivez.

Yikes, il n'y a plus de propriétés k ou D Maintenant, il a des propriétés A et F place. Eh bien, cela ne le fera pas.

Mais vois-tu la propriété __proto__ juste en dessous? Développez cela et vous verrez les méthodes disponibles pour l'objet de position . Notez les méthodes lat() et lng() ici. Cela a beaucoup plus de sens, alors essayez-les:

 map.setCenter( e.position.lat(), e.position.lng() ); 

Ce qui s'est passé ici: e.position est un objet LatLng de l'API Google Maps. Les objets API ont un certain nombre de propriétés internes sans papiers, ainsi que des propriétés et des méthodes documentées. lat() et lng() sont les méthodes documentées pour obtenir la latitude et la longitude d'un objet LatLng . Les autres propriétés que vous avez découvertes sont utilisées en interne dans l'API, mais elles ne sont pas destinées à être utilisées dans votre propre code. Google exécute tout son code d'API JavaScript via un «minifier» qui modifie arbitrairement les noms internes pour raccourcir le code mais garde les noms publics documentés intacts. Donc, toutes les semaines où ils mettent à jour leur API, tous les noms internes sans papiers peuvent changer.