Я переделал этот подход, но до сих пор не работал. На этот раз у меня есть рабочий пример, который очень короток и иллюстрирует проблему прекрасно:Фильтр по точкам в многоугольнике и возвращении ID округа/Название
https://bl.ocks.org/diggetybo/raw/6d35e5ecd17992650d0a23896e649b25/
В приведенном выше блоке вы увидите карту графств. Кроме того, у меня есть пользовательские входы для широты и долготы, например:
var lat = d3.select('#lat_input').node();
var long = d3.select('#long_input').node();
Эти координаты могут быть в любом месте США. Я хочу создать функцию, которая запрашивает входные координаты пользователя и возвращает идентификатор FIPS в округе.
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]);
});
Не могли бы вы предоставить рабочий пример? – elias
наконец-то добрался до рабочего примера. –
вы все еще передаете параметр MultiPolygon вместо ожидаемого Polygon. – elias