Frederik Ramm schrieb:
> Hallo,
> 
>> Ich habe mich (obwohl ich schon einige Zeit mappe) vor Kurzem erst
>> intensiver mit ausgefüllten Polygonen beschäftigt, insbesondere um
>> Wälder zu mappen. Die aktuelle Version von JOSM wird jedoch immer dann
>> extrem langsam wenn eine große Fläche eines halbtransparent ausgefüllten
>> Polygons sichtbar ist
> 
> JOSM mit "Wireframe"-Anzeige ist langsam, JOSM mit "mappaint" ist
> langsamer und JOSM mit "mappaint" mit ausgefuellten Polygonen ist
> extremst langsam. Dieser ganze Zeichencode ist ueberhaupt nicht
> optimiert, da ist viel Spielraum fuer Verbesserungen (wie JOSM-NG
> schon bewiesen hat). Wenn sich jemand mal gruendlich der Sache
> annehmen will, das waere allen eine grosse Hilfe.

Habe da mal reingesehn, und bei dem Code, der das Zeichnen der Polygone
betrifft, scheint nicht sehr viel Raum für Verbesserungen zu sein.
Die Funktion g.fillPolygon(polygon); in
org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java Zeile 228
im aktuellen SVN benötigt nach meinen Messungen über 1 Sekunde, wenn ich
ein Polygon so anzeigen lasse, dass es die gesamte Zeichenfläche
ausfüllt. Sind mehrere übereinander liegende Polygone im Bild, so kann
es durchaus mal bis zu 5 Sekunden dauern, bis ein Zoomschritt
durchgeführt wurde.

fillPolygon() ist eine Java-eigene Funktion:
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html

Wenn da jemand andere Verbesserungsvorschläge hätte als Java abzuändern
oder eine eigene Alternative zu schreiben (die natürlich auch erstmal
effizienter werden müsste) würde mich das sehr freuen. Ein Workaround,
der mir so auf die Schnelle einfällt (aber sicher nicht das Gelbe vom Ei
ist), wäre zuerst mit Wireframe zu zeichnen, und dann das Befüllen der
Polygone einem Workerthread zu überlassen.

Lg, Wolfgang.

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de

Antwort per Email an