[Talk-de] Anzahl der Punkte in einem Polygon für einen Zoom Level optimieren
Ralf Klammer
ralf_klammer at gmx.de
Di Dez 4 15:06:05 UTC 2012
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:ralf_klammer at gmx.de]
>> 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
>>> Talk-de at openstreetmap.org
>>> http://lists.openstreetmap.org/listinfo/talk-de
>>
>> _______________________________________________
>> Talk-de mailing list
>> Talk-de at openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-de
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
Mehr Informationen über die Mailingliste Talk-de