如何向turf.polygon方法传入坐标JSON数据?
如何将JSON格式的坐标数据传入turf.polygon方法?
没问题,我来帮你一步步搞定这个需求!其实核心就是从你的JSON数据里提取出Polygon对应的坐标数组,然后直接传给turf.polygon()的第一个参数就行,下面给你具体的操作步骤和示例:
1. 明确坐标的提取路径
你的JSON数据是一个GeoJSON FeatureCollection,目标坐标的位置很清晰,就在这个路径下:json.data.features[0].geometry.coordinates
因为你要的是第一个Feature里的Polygon几何坐标,通过这个路径就能拿到完全符合turf.polygon要求的坐标数组格式。
2. 完整代码示例
直接看整合后的代码会更直观,我把你的JSON数据和调用逻辑放在一起:
// 你的JSON格式数据示例 var json = { "type": "geojson", "data": { "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[ [1.275543, 54.464547], [1.275543, 54.489271], [1.215118, 54.489271], [1.215118, 54.464547], [1.275543, 54.464547] ]] } }] } }; // 提取目标坐标数组 var polygonCoords = json.data.features[0].geometry.coordinates; // 传入turf.polygon,还可以自定义属性参数 var myPolygon = turf.polygon(polygonCoords, { name: '从JSON提取的多边形', population: 500 }); // 打印结果验证 console.log(myPolygon);
3. 几个注意点
- 确保坐标数组的嵌套格式正确:必须是
[[[lon1, lat1], [lon2, lat2], ..., [lon1, lat1]]],也就是外层数组包裹一个线性环数组,且线性环的首尾坐标要保持一致(你的示例已经满足这个要求啦)。 - 如果JSON里包含多个Polygon Feature,只需要循环遍历
features数组,逐个提取坐标调用turf.polygon即可。
内容的提问来源于stack exchange,提问作者JinD
相关产品推荐
相关产品推荐

