[Talk-de] Anzahl der Punkte in einem Polygon für einen Zoom Level optimieren

Ralf Klammer ralf_klammer at gmx.de
Di Dez 4 07:09:48 UTC 2012


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
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de





Mehr Informationen über die Mailingliste Talk-de