Ich habe diesen Ansatz überarbeitet, aber immer noch nicht funktioniert haben. Dieses Mal habe ich ein funktionierendes Beispiel, die sehr kurz ist und zeigt das Problem perfekt:Filter nach Punkt in Polygon und Return County ID/Name
https://bl.ocks.org/diggetybo/raw/6d35e5ecd17992650d0a23896e649b25/
In dem obigen Block finden Sie eine Karte der Kreise zu sehen. Außerdem habe ich Benutzereingaben für geografische Breite und Länge wie so:
var lat = d3.select('#lat_input').node();
var long = d3.select('#long_input').node();
Diese Koordinaten könnten überall in den USA. Ich möchte eine Funktion erstellen, die die Koordinaten der Benutzereingabe abfragt und die FIPS-ID des Countys zurückgibt.
var containing_county = us.objects.counties.geometries.filter(function(polygon) {
return d3.polygonContains(polygon, [long.value, lat.value]);
});
console.log(containing_county)
});
jedoch nicht Filtern der Art, wie ich es nicht lesen Eigentum 0 undefinierter erwarten, kann es sagt.
Was soll hier anders gemacht werden?
auch versucht:
var containing_county = topojson.feature(us, us.objects.counties).features.filter(function(d) {
return d3.polygonContains(d.geometry, [long.value, lat.value]);
});
Könnten Sie bitte ein funktionierendes Beispiel geben? – elias
ist jetzt endlich zu einem funktionierenden Beispiel geworden. –
Sie übergeben immer noch einen MultiPolygon-Parameter anstelle eines erwarteten Polygons. – elias