Frage

Ich habe eine riesige Shape-Datei von 36.000 nicht-überlappende Polygonen (Stadtgrenzen). Ich möchte einfach die polygone bestimmen, in die ein lat gegeben / lang fällt. Was wäre der beste Weg, da es extrem computationaly effizient sein muss?

Ich dachte an eine Lookup-Tabelle erstellen (Tilex, Tiley, polygone_id), wo Tilex und Tiley sind Kachel-IDs an Zoomstufen 21 oder 22 Ja, die mangelnde Präzision der Fliese Nummern und eine ebene Projektion ist akzeptabel in meinem Anwendung.

Ich würde lieber nicht Postgres GIS Erweiterung und am Fein mit einem Programm, das für 2 Tage laufen alle die INSERT-Anweisungen zu erzeugen.

War es hilfreich?

Lösung

Insert-Anweisungen in was? Verwenden Sie eine andere räumliche Datenbank oder eine andere Datenbank? Wenn Sie bereit sind, Python zu verwenden, C oder Java könnten Sie shapely, GEOS, oder JTS einige benutzerdefinierte Code zu schreiben, zu tun, was wollen Sie lieber einfach.

In Python verwenden diese lib die Shape-Datei zu öffnen http://indiemaps.com/blog/2008/03 / easy-Shape-Datei-Laden-in-python /

dann wohlgeformt http://gispython.org/shapely/docs/1.0/manual.html# enthält In dem Test Eindämmung

Für Java Verwendung Geotools die auch JTS enthält.

Andere Tipps

Sounds wie Sie BSP Baum . Grundsätzlich teilen Sie den Bereich in immer kleinere Polygone in einem Baum wie Mode.

Der Vorteil ist, dass Sie nicht Koordinaten müssen mit jedem Polygon auf später vergleichen. Das macht es eine sehr schnelle Art und Weise das richtige Polygon zu finden.

QGIS / Vector Tools hat die Eigenschaft, die Sie suchen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top