Brauchst du noch nicht einmal:
http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html
Das ist so ein alter Hut...da haben sie schon genug die Hörner dran
abgestoßen ;-)
Grüße
Am 04.12.2012 15:59, schrieb Adrian Stabiszewski:
Vielen Dank für die Hinweise.
Douglas-Peucker sieht vielversprechend aus.
Werde wohl aber eine Implementierung für Java selber schreiben müssen ;)
Viele Grüße,
Adrian
-----Ursprüngliche Nachricht-----
Von: Ralf Klammer [mailto:[email protected]]
Gesendet: Dienstag, 4. Dezember 2012 08:10
An: Openstreetmap allgemeines in Deutsch
Betreff: Re: [Talk-de] Anzahl der Punkte in einem Polygon für einen Zoom
Level optimieren
Richtige Libraries gibt es dafür nicht...allerdings gibt es in PostGIS die
Funktion ST_Simplify() in der Douglas-Peucker umgesetzt
ist...http://postgis.org/docs/ST_Simplify.html
Ebenso ist diese Funktion auch in gdal vorhanden...hier mal für Python:
http://gdal.org/python/osgeo.ogr.Geometry-class.html#Simplify
Laut Dokumentationen soll die Funktion ST_SimplifyPreserveTopology()
speziell für Polygone geeignet sein...kann man aber nur bedingt empfehlen.
Ich habe letztens auch mitbekommen, dass in den neuesten Mapnik
Releases auch Linienvereinfachungsalgorithmen implementiert sind, finde
aber gerade den spez. Link nicht mehr...nur das hier:
https://github.com/mapnik/mapnik/pull/1385
Grüße
Am 03.12.2012 18:49, schrieb Adrian Stabiszewski:
Am 03.12.2012 18:21, schrieb Adrian Stabiszewski:
Das Ganze ist noch etwas langsam weil halt viele Punkte. Kennt
jemand euch noch einen Algorithmus mit dem ich die Anzahl der Punkte
in einem Polygon für einen bestimmten Zoom Level optimieren kann?
Sprich: Punkte entfernen, wenn sie sowieso nicht mehr zur äußeren
Form des Polygons beitragen.
Ich würde die Abweichung in Pixeln zwischen drei benachbarten Punkten
ausrechnen.
Genauer gesagt den Abstand des mittleren Punktes von der Tangente
von
Start und Ziel. Dazu die Auflösung.
Wenn der Abstand weniger als 1 Pixel brauchst Du Dir keine Gedanken
machen. Du kannst natürlich auch einen Schwellwert bestimmen.
Ansonsten: ggf. Mindestabstand in Pixeln bestimmen. Wenn Punkt nicht
dargestellt wird, mit nächstem Zielpunkt weiter. Start beibehalten.
Ja, genau.
Gibt es sowas schon fertig als Library? ;)
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de