📜  setCenter:不是具有有限坐标的 LatLng 或 LatLngLiteral:在属性 lat:不是数字 - Javascript (1)

📅  最后修改于: 2023-12-03 14:47:25.497000             🧑  作者: Mango

错误:'setCenter:不是具有有限坐标的 LatLng 或 LatLngLiteral:在属性 lat:不是数字 - Javascript'
问题描述

这个错误在JavaScript代码中可能会出现。如果使用Google Maps API,尝试使用setCenter方法设置地图中心时,可能会遇到此错误。错误消息指出,经度(lat属性)设置为非数字,因此Google Maps无法解析该值。

解决方案

解决此问题的方法是确保将经度和纬度都设置为有效数字。以下是一些可能导致此错误的常见问题及其解决方案。

问题1:使用字符串而不是数字

const map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: {lat: '37.7749', lng: '-122.4194'}
});

在上面的例子中,经度和纬度都是使用字符串而不是数字设置的。导致错误的原因是因为Google Maps API需要数字而不是字符串。修复此问题的解决方案是将经度和纬度更改为数字。

const map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: {lat: 37.7749, lng: -122.4194}
});

问题2:使用无效数字

在某些情况下,可能会在代码中使用无效的数字,例如NaN或Infinity。这些数字都不是有限数字,因此不能用作Google Maps API中LatLng或LatLngLiteral中的值。解决此问题的解决方案是确保将经度和纬度设置为有效数字。

const lat = NaN;
const lng = Infinity;

const map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: {lat: lat, lng: lng}
});

上面的代码片段会导致错误。修复此问题的解决方案是使用有效的数字。

const lat = 37.7749;
const lng = -122.4194;

const map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: {lat: lat, lng: lng}
});
结论

以上是解决'setCenter:不是具有有限坐标的 LatLng 或 LatLngLiteral:在属性 lat:不是数字'错误的两种常见方法。请确保您设置经度和纬度的方式正确,并且它们都是有效的数字。