[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