【发布时间】:2017-03-16 16:13:03
【问题描述】:
我的 geoJson 格式是这样的:
statesData.features.push({
"type":"Feature",
"id":"AFG",
"properties":{
"name":"Afghanistan"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
61.210817,
35.650072
],
[
62.230651,
35.270664
],
[
62.984662,
35.404041
],
我正在尝试读取这些坐标并将它们设置为
var coord = statesData.features[0].geometry.coordinates;
lalo = L.GeoJSON.coordsToLatLng(coord);
map.setView(lalo, 18);
coordsToLatLng( coords ) 将用于的函数 将 GeoJSON 坐标转换为 LatLng 点(如果未指定, 坐标将被假定为 WGS84 — 标准 [经度,纬度] 度数)。
但我在控制台中收到此错误
未捕获的错误:无效的 LatLng 对象:(未定义, 61.210817,35.650072,62.230651,35.270664,62.984662,35.404041...
更新
第一个答案是正确的,因为它解决了上述问题,但是,它将地图缩放到第一组坐标,而我真正想要实现的是能够加载页面,地图自动缩放到多边形(我只加载一个多边形)。
【问题讨论】:
-
坐标是坐标数组,数组里面,数组里面。至少一个数组不是太多了吗?
setView()可以处理多个坐标吗? -
@JJJ 我正在尝试自动缩放到多边形
-
还有一个
coordsToLatLngs()函数(注意复数“s”)可以处理coordinates数组([[[],[],...],[[],[],...]])。coordsToLatLng()只会转换一个坐标。您必须在coordinates中选择一个纬度/经度对。setView()也只会使用一个坐标(纬度/经度)。
标签: javascript jquery json leaflet