错误:InvalidValueError:setCenter:不是LatLng或LatLngLiteral:在属性lat中:不是数字

rav*_*eet 18 javascript maps google-maps-api-3

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'
    });}
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

错误:InvalidValueError:setCenter:不是LatLng或LatLngLiteral:在属性lat中:不是数字

And*_*eas 43

a的.value属性HTMLInputElement将值作为字符串返回.

你要分析的内容lat,并lngparseFloat()它传递到地图API之前

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'
    });
}
Run Code Online (Sandbox Code Playgroud)


ana*_*hib 5

只需在变量前添加“+”:

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'
});}
Run Code Online (Sandbox Code Playgroud)