2017-10-10 4 views
0

Lorsque j'utilise ng-map, j'obtiens cette erreur après avoir cliqué sur un bouton personnalisé que j'ai implémenté pour obtenir l'emplacement actuel de l'utilisateur:ng-map - erreur 'setCenter: pas un objet LatLng ou LatLngLiteral: pas un objet' après navigator.geolocation.getCurrentPosition

InvalidValueError: setCenter: not a LatLng or LatLngLiteral: not an Object 

Je ne fais « setCenter » explicitement, et l'erreur ne se produit que lorsque je fais un contrôle sur l'emplacement actuel de l'utilisateur à l'aide:

navigator.geolocation.getCurrentPosition 

J'ai d'autres sur mesure boutons, et en cliquant sur eux ne provoque pas l'erreur - le problème est spécifiquement lié à la «actuelle bouton de localisation en quelque sorte. Qu'est-ce qui peut causer cela? Je sais que cela peut être appelé si une valeur nulle ou mal formée est passée pour lat et long, mais je ne fais rien pour centrer explicitement la carte sur un lat spécifié et long.

Répondre

0

J'ai découvert que le problème était avec le marqueur personnalisé ng-map que j'utilise pour montrer la position actuelle. Lorsque cela a été affiché (après avoir mis ma propriété mapsCtrl.showCurrentLocation true), il essayait de centre parce qu'il y avait un « centré » attribut défini sur « true »:

custom-marker position="current-location" centered="true" ng-if="mapsCtrl.showCurrentLocation"> 

Je ne sais pas pourquoi il Impossible de trouver une valeur valide dans le centre actuel (j'ai essayé de définir une valeur LatLng pour la propriété 'center' sur ma carte ng), mais supprimer cet attribut et définir manuellement le centre de ma carte dans le code résout le problème.