gpt4 book ai didi

javascript - 按多边形中的点过滤并返回县 ID/名称

转载 作者:行者123 更新时间:2023-12-01 03:58:46 24 4
gpt4 key购买 nike

我已经重做了这个方法,但仍然没有成功。这次我有一个非常简短的工作示例,完美地说明了问题:

https://bl.ocks.org/diggetybo/raw/6d35e5ecd17992650d0a23896e649b25/

在上面的 block 中,您将看到一张县 map 。另外,我有用户输入的纬度和经度,如下所示:

var lat = d3.select('#lat_input').node();

var long = d3.select('#long_input').node();

这些坐标可能位于美国境内的任何地方。我想要做的是创建一个函数来查询用户输入的坐标并返回该县的 FIPS id。

   var containing_county = us.objects.counties.geometries.filter(function(polygon) {
return d3.polygonContains(polygon, [long.value, lat.value]);
});
console.log(containing_county)
});

但是它没有按照我期望的方式进行过滤,它说无法读取未定义的属性 0。

这里应该采取什么不同的做法?

也尝试过:

    var containing_county = topojson.feature(us, us.objects.counties).features.filter(function(d) { 
return d3.polygonContains(d.geometry, [long.value, lat.value]);
});

最佳答案

我检查了您链接的数据。
objects.counties.geometries 的元素 0 不是“Polygon”类型,而是“MultiPolygon”类型。
d3.polygonContains 的第一个参数需要一个多边形,并且不能处理多重多边形。也许您应该对不同的几何形状使用不同的方法。

关于javascript - 按多边形中的点过滤并返回县 ID/名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com