【发布时间】:2017-02-22 06:02:34
【问题描述】:
我已经重做了这种方法,但仍然没有奏效。这次我有一个非常简短的工作示例,可以完美地说明问题:
https://bl.ocks.org/diggetybo/raw/6d35e5ecd17992650d0a23896e649b25/
在上面的区块中,您将看到一个县的地图。另外,我有用户输入的纬度和经度,如下所示:
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]);
});
【问题讨论】:
-
您能提供一个工作示例吗?
-
现在终于有时间提供一个工作示例。
-
您仍在传递 MultiPolygon 参数而不是预期的 Polygon
标签: javascript d3.js topojson