javascript - 使用 turfjs 在多边形和多重多边形之间相交

标签 javascript leaflet turfjs

我使用 turfjs 执行 turfjs 的相交函数时出错

enter image description here

绘制的图层是“多边形”,而我希望它在“多多边形”图层中相交。

这是我的代码片段:

$.getJSON("FloodHazard_CRB_100Year.json", function(baha) { 
            //addDataToMap(data, map); 
            console.log(json);
            console.log(baha);
            //check_intersect(baha,json);
            f1 = baha.features;
            f2 = json.features;

            var conflictlist;

            for (var i = 0; i < f1.length; i++) {
                var parcel1 = f1[i];
                for (var j = 0; j <f2.length; j++) {
                    var parcel2 = f2[j];
                    //console.log("Processing",i,j);
                        var conflict = turf.intersect(parcel1, parcel2);
                        if (conflict != null) {
                            conflictlist = conflict;
                        }
                }
            }
            var intersect_style = {
                fillColor: "#ff0000",
                color: "#000",
                opacity: 1,
                weight:0.5,
                fillOpacity: 0.8
            };
            L.geoJson(conflictlist,{
                style: intersect_style
            }).addTo(map);
            console.log(conflictlist);

            //check_intersect(json);
        });

最佳答案

首先请注意,Turf 需要完整的 GeoJSON Feature 对象作为参数,而不仅仅是它们的几何

那么如果我的理解是正确的,您的第二个循环是一种解决方法,只需将多边形传递给turf.intersect,而不是多多边形?

在这种情况下,您需要首先将 MutiPolygon 正确转换为每个具有多边形几何体的要素集合或数组。然后您可以循环它们以执行交叉操作。

关于javascript - 使用 turfjs 在多边形和多重多边形之间相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690420/

相关文章:

javascript - 识别多边形内部的点(包括位于边界和边缘上的点)

javascript - Vue.js - Highmaps - 从图表内部更改变量的值

javascript - 这是指什么以及为什么?

javascript - 如何让这个 jquery 分页插件正常工作

javascript - 测试传单插件中用于绘制叠加的私有(private)函数(karma/jasmine)

javascript - 从 latlng 获取基于百分比或基于像素的 x 和 y 坐标

mongodb - 如何修复geojson以满足mongodb 2dsphere索引的需求

javascript - 草皮缓冲区传单geojson ajax

javascript - 减少客户端编译

javascript - 按百分比获取两点之间连线上的经纬度点