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

2012-12-04 Diskussionsfäden Norbert Renner
Hab's selbst nicht ausprobiert, aber für Osmosis gibt es ein 
simplifyways Plugin:


https://github.com/podolsir/osmosis-simplifyways

Für JavaScript gibt es Simplify.js vom Leaflet-Autor:

http://mourner.github.com/simplify-js/

Laut Beschreibung aus Leaflet extrahiert, müsste also auch direkt in 
Leaflet zu finden sein.


Gruß,
Norbert


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-04 Diskussionsfäden Fabian Patzke
Moin,
da hier schon wieder die alten JTS Quellen angegeben wurden, kurz der
Hinweis, dass JTS schon länger hier:
http://tsusiatsoftware.net/
zu finden ist. Da gibt es dann auch eine neuere Version, als auf der
veralteten Seite.

JavaDoc: http://tsusiatsoftware.net/jts/javadoc/
http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html

Ändert am besten gleich alle Eure Links. Ich bin da auch schon drauf
reingefallen.

Grüße,
Fabian



--
View this message in context: 
http://gis.19327.n5.nabble.com/Anzahl-der-Punkte-in-einem-Polygon-fur-einen-Zoom-Level-optimieren-tp5738871p5739038.html
Sent from the Germany mailing list archive at Nabble.com.

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-04 Diskussionsfäden Ralf Klammer
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_klam...@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@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de



___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-04 Diskussionsfäden Jochen Topf
On Tue, Dec 04, 2012 at 03:59:06PM +0100, Adrian Stabiszewski wrote:
> Douglas-Peucker sieht vielversprechend aus. 
> Werde wohl aber eine Implementierung für Java selber schreiben müssen ;)

http://www.vividsolutions.com/jts/jtshome.htm

Jochen
-- 
Jochen Topf  joc...@remote.org  http://www.remote.org/jochen/  +49-721-388298

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-04 Diskussionsfäden 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_klam...@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@openstreetmap.org
> > http://lists.openstreetmap.org/listinfo/talk-de
> 
> 
> ___
> Talk-de mailing list
> Talk-de@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-04 Diskussionsfäden Fabian Patzke
Eine völlig andere Möglichkeit wäre es, die Grenzen per WMS oder ähnlichem
darzustellen und nur die Hover-/Auswahl-Polygone als Vektoren zu laden. Für
Openlayers gitb es hier:
http://openlayers.org/dev/examples/getfeature-wfs.html
ein Beispiel. Allerdings brauchst du halt dafür die Ganzen Geo-Server
Geschichten zusätzlich.

Grüße,
Fabian



--
View this message in context: 
http://gis.19327.n5.nabble.com/Anzahl-der-Punkte-in-einem-Polygon-fur-einen-Zoom-Level-optimieren-tp5738871p5739032.html
Sent from the Germany mailing list archive at Nabble.com.

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-03 Diskussionsfäden Ralf Klammer
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@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de



___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-03 Diskussionsfäden Christoph Hormann
On Monday 03 December 2012, Adrian Stabiszewski wrote:
>
> Ich spiele gerade mit einer Karte rum, wo man Gemeinden auswählen
> kann: http://grundid.de/data/gemeinden/
>
> 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?

Zur Vereinfachung von Linien gibt es die gängigen Methoden Douglas–
Peucker[1] und Visvalingam[2].  Bei der Anwendung an Polygonen ist 
allerdings Vorsicht geboten, da die Vereinfachung zu ungültigen 
Topologien führen kann. Douglas–Peucker kannst Du mit OGR ausprobieren 
(ogr2ogr -simplify).

Eigentlich ist es auch etwas heikel, derart vereinfachte Linien direkt 
in einer Karte darzustellen, da die entstehenden scharfen Ecken 
künstlich sind.  Für Grenzen ist das jedoch nicht so problematisch 
(denn die haben sowieso oft Ecken).

[1] http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm
[2] http://www2.dcs.hull.ac.uk/CISRG/publications/DPs/DP10/DP10.html

Grüße,

-- 
Christoph Hormann
http://www.imagico.de/

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-03 Diskussionsfäden 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@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-03 Diskussionsfäden Rainer Kluge
Der Douglas-Peucker-Algorithmus könnte sowas bewerkstelligen: 
http://de.wikipedia.org/wiki/Douglas-Peucker-Algorithmus


Gruß
rainer




___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


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

2012-12-03 Diskussionsfäden Thomas Reincke

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.




___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de