Mehr

Wählen Sie ein Polygon, das nur teilweise Teil eines anderen Polygons ist, mit seiner Fläche des anderen Polygons

Wählen Sie ein Polygon, das nur teilweise Teil eines anderen Polygons ist, mit seiner Fläche des anderen Polygons


Ich muss zufällige Punkte innerhalb von Geometrien generieren, was ziemlich gut funktioniert, aber es gibt einige kleine Fehler. Nehmen Sie das Bild unten auf. Es gibt einige grünliche und rötliche Polygone(?!), die keine Punkte enthalten, aber sie sollten. Meine Frage ist warum?

Um genauer zu sein, was ich tue:

  • My Code verwendet Python Shapely, um die Punkte innerhalb von Polygonen zu generieren
  • Es gewichtet den Bereich (grün = Wohnen) mit 50%, so dass mehr Punkte im roten (Industrie), gelben (Einzelhandel) und türkischen (Gewerbe) Bereich generiert werden.
  • Die Polygone stammen von OSM
  • Die Punkte stellen einen Endpunkt einer Pendlerroute dar

Gibt es also irgendwelche Funktionen usw., die ich auf den Polygonen ausführen kann, damit darin Punkte generiert werden? Meine Vermutung ist, dass sie nicht gültig sind.

AKTUALISIEREN

Okay ich habe das Problem gefunden. Wie Sie unten sehen können, sind die Interessengebiete aufgeteilt. Das heißt, sie haben Teile, die zu einer anderen Gemeinschaft gehören. Die Abfrage, die ich verwende, um die Geometrien innerhalb einer Community zu finden, sieht so aus:

CREATE TEMPORARY TABLE living_areas ON COMMIT DROP AS SELECT way as geom, CASE WHEN p.landuse = 'residential' THEN (0.5*ST_Area(way)) ELSE ST_Area(way) END AS area FROM de_osm_polygon p INNER JOIN de_shp_{shp!s} s ON (s.rs = %(rs)s AND ST_Within(p.way, s.geom)) WHERE OR landuse ='industrial' OR landuse="commercial" OR landuse="retail"

Was muss ich in dieser Abfrage ändern, um entweder das gesamte Polygon zu erhalten, das auch Teil einer anderen Community ist, oder nur den Teil, der innerhalb der Community liegt?


Schau das Video: Merging polygon features in ArcGIS