web-dev-qa-db-fra.com

Erreur Google Maps pas une erreur de valeur invalide latlng ou latlngliteral

Je boucle certains marqueurs et leur ajoute un lat et un long mais je reçois toujours cette erreur:

message
:
"not a LatLng or LatLngLiteral: not an Object"
name
:
"InvalidValueError"

Et:

InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number

Voici ma boucle:

var bedrijvenlijst = []; // new array
    $.each( bedrijven, function( key, value ) {
      // console.log( key + ": " + value.plaats );
      console.log(value.lng);
      bedrijvenlijst.Push({
          title : value.title,
          image : 'bbvdw.jpg',
          address : value.straat + ' ' + value.plaats,
          position : {
              lat : value.lat,
              lng : value.lng
          },
          markerIcon : 'marker-green.png'
      }); // new item added in array
    });

Lorsque je console le journal, le lng ou le lat s'affiche simplement comme un nombre normal comme:

4.23626

Pourquoi ai-je cette erreur? Si je tape juste les coordonnées moi-même dans la boucle, cela fonctionne très bien, donc ce qui est différent lors de l'utilisation de value.lat et value.lng? Dans la console, cela ressemble exactement à ce que je voudrais taper moi-même.

5
twan

Le message d'erreur pointe vers la propriété "lat"; vous passez quelque chose qui n'est pas un nombre, il peut s'agir de la chaîne "4.36xxxx", alors vérifiez cela.

Tu pourrais essayer:

 position : {
          lat : parseFloat( value.lat ),
          lng : parseFloat( value.lng )
      },
29
dev8080

Je pense que vous avez besoin d'un LatLng Google Maps. Vous ne pouvez pas simplement prendre des nombres normaux pour les positions d'un marqueur.

Comme position = new google.maps.LatLng (lat, lng);

2
yohohohohohohoho