You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps报Not a LatLng or LatLngLiteral错误求助:经纬度已为数字仍触发InvalidValueError

解决「not a LatLng or LatLngLiteral: in property lat: not a number」错误(即使经纬度已是数字类型)

我之前也踩过这个坑!明明控制台打印出来lat和lng都是数字,Google Maps API却还是抛出这个错误。下面是几个常见的排查方向和解决方案:


1. 数字被隐式转为字符串(或看似数字的字符串)

有时候你以为是数字的变量,实际是字符串类型——比如从API接口返回的字段、表单输入值,或者模板渲染时的类型转换问题。比如:

// 错误示例:lat是字符串"39.9042",不是数字39.9042
const lat = "39.9042";
const lng = "116.4074";

new google.maps.Marker({
  position: { lat, lng }, // 这里会触发错误
  map: mapInstance
});

解决方案:显式转换为数字类型

const lat = Number("39.9042"); // 或 parseFloat()
const lng = parseFloat("116.4074");

new google.maps.Marker({
  position: { lat, lng },
  map: mapInstance
});

2. 经纬度值存在NaN或undefined

即使大部分场景下是数字,但某些边缘情况可能出现NaN(比如解析空字符串、无效格式的数字)或undefined(比如数据未正确加载)。比如:

// 假设某个接口返回的lat字段为空,解析后变成NaN
const lat = Number(""); // NaN
const lng = 116.4074;

new google.maps.Marker({ position: { lat, lng }, map: mapInstance });

解决方案:添加前置校验

// 校验是否为有效数字
function isValidCoordinate(val) {
  return typeof val === 'number' && !isNaN(val) && isFinite(val);
}

const lat = 39.9042;
const lng = 116.4074;

if (isValidCoordinate(lat) && isValidCoordinate(lng)) {
  new google.maps.Marker({ position: { lat, lng }, map: mapInstance });
} else {
  console.error("无效的经纬度值:", lat, lng);
}

3. LatLngLiteral结构错误

Google Maps要求position必须是**{ lat: 数字, lng: 数字 }**格式的对象,如果你写错了属性名(比如用latitude/longitude代替),或者传递了单个数字、数组等非对象结构,都会触发错误。

错误示例:

// 属性名拼写错误
new google.maps.Marker({
  position: { latitude: 39.9042, longitude: 116.4074 }, 
  map: mapInstance
});

// 传递数组而非对象
new google.maps.Marker({
  position: [39.9042, 116.4074], 
  map: mapInstance
});

解决方案:严格遵循LatLngLiteral格式

new google.maps.Marker({
  position: { lat: 39.9042, lng: 116.4074 },
  map: mapInstance
});

4. 调试小技巧

如果还是找不到问题,在调用Google Maps API前,打印出经纬度的类型和值:

console.log("lat类型:", typeof lat, "值:", lat);
console.log("lng类型:", typeof lng, "值:", lng);

这能帮你快速定位:比如是否是字符串、是否为NaN、是否undefined。


内容的提问来源于stack exchange,提问作者TANISHA GUPTA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 13:12:43