将javascript数组转换为JSON数据

n9vozmp4  于 2022-11-19  发布在  Java
关注(0)|答案(1)|浏览(149)

我有一个循环,在其中我将纬度/经度点添加到polygonLines数组

var polygonlines = [];
for (var k = 0; k < lines.length; k++) {
  var start = [Number(lines[k].start.lat), Number(lines[k].start.lng)];
  var end = [Number(lines[k].end.lat), Number(lines[k].end.lng)];
  polygonlines.push(new L.Geodesic([[start, end]], geodesicOptions));
}

我需要把多边形线数组转换成一个turf.polygon,我可以很容易地从一个JSON数据中获取turf.polygon的坐标

var turfPolygon = turf.polygon([[
  json.data.features[0].geometry.coordinates
]], ...

如何从多边形线数组中获取JSON数据坐标?2或者我可以创建多边形线作为json数据并在循环中将这些线推到它上面吗?3我如何向json坐标中添加以前从未使用过json数据的项?
还是有更好的办法?
非常感谢您的光临
编辑:我希望能够把多边形线放入json...可能是这样的。所有的例子都有硬编码的值,但是我的值会通过用户交互而改变。

var geojsonPolygon =
    {
      "type": "geojson",
      "data":
      {
         "type": "Feature",
         "geometry": {
         "type": "Polygon",
         "coordinates": [polygonlines]
    }                                               
 }
}

我从来没有使用过json对象,所以不知道如何复制一个数组到坐标部分。
然后使用turf booleanIntersect,这需要“GeoJSON要素或几何”

chhkpiq4

chhkpiq41#

因此,对于纬度/经度点,不要使用Geodesic,这样就可以了

var start = [vol.lines[k].start.lng, vol.lines[k].start.lat];                                           
polygonlines.push(start);

然后

var geojsonPolygon =
   {
    "type": "Feature",
    "properties": {},
    "geometry": {
    "type": "Polygon",
    "coordinates": [polygonlines]
   }

var turfpolygon = turf.polygon(geojsonPolygon.geometry.coordinates);
var result = turf.booleanIntersects(line, turfpolygon);

这将与本例中的poly 1匹配,它非常有用https://codesandbox.io/s/ripkk

相关问题