如何从LatLng对象中读取纬度和经度值
问题:如何从Leaflet的LatLng对象中获取纬度和经度值?
我希望从LatLng对象中分别读取纬度和经度值。为此我编写了以下代码:
var latLng = L.marker(data[0]).getLatLng(); console.log(latLng); // 输出为 LatLng {lat: 45.285639154610315, lng: 20.27291721572189} var lat = latLng.lat; // 此处报错 var lng = latLng.lng; console.log(lat);
请问有谁知道如何正确获取纬度和经度值?
解答
Leaflet的LatLng对象支持两种方式获取经纬度:
- 直接访问实例属性:
latLng.lat(纬度)、latLng.lng(经度) - 调用内置实例方法:
latLng.getLat()(获取纬度)、latLng.getLng()(获取经度)
你的代码报错大概率不是属性访问逻辑的问题,可先排查以下几点:
- 验证
latLng类型:添加console.log(latLng instanceof L.LatLng),确认是有效的LatLng实例 - 检查
data[0]合法性:确认它是[纬度, 经度]格式的数组,或是有效的LatLng对象
如果直接访问属性仍报错,可尝试改用方法调用的方式:
var latLng = L.marker(data[0]).getLatLng(); console.log(latLng); var lat = latLng.getLat(); var lng = latLng.getLng(); console.log(lat, lng);
也可以用ES6解构赋值简化代码:
const { lat, lng } = L.marker(data[0]).getLatLng(); console.log(lat, lng);
内容的提问来源于stack exchange,提问作者Niko Gamulin
相关产品推荐
相关产品推荐

