web-dev-qa-db-fra.com

erreur: InvalidValueError: setCenter: pas un LatLng ou LatLngLiteral: dans la propriété lat: pas un nombre

function initAutocomplete() {
    var lat=document.getElementById('lat').value;
    var lng=document.getElementById('lng').value;
    console.log(lat);
    console.log(lng);


    var map = new google.maps.Map(document.getElementById('map'), {
      center: {lat:lat, lng:lng},
      zoom: 13,
      mapTypeId: 'roadmap'
    });}

cela me donne l'erreur suivante:

erreur: InvalidValueError: setCenter: pas un LatLng ou LatLngLiteral: dans la propriété lat: pas un nombre

15
ravneet

L'attribut .value D'un HTMLInputElement renvoie la valeur sous forme de chaîne.

Vous devez analyser le contenu de lat et lng avec parseFloat() avant de le passer à l'API Maps

function initAutocomplete() {
    var lat = parseFloat(document.getElementById('lat').value);
    var lng = parseFloat(document.getElementById('lng').value);

    var map = new google.maps.Map(document.getElementById('map'), {
        center: {
            lat: lat,
            lng: lng
        },
        zoom: 13,
        mapTypeId: 'roadmap'
    });
}
40
Andreas

Ajoutez simplement "+" avant vos variables:

function initAutocomplete() {
var lat=document.getElementById('lat').value;
var lng=document.getElementById('lng').value;

var map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: +lat, lng: +lng},
  zoom: 13,
  mapTypeId: 'roadmap'
});}
3
anasmorahhib