Wolfgang Silbermayr schrieb: > 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. > Ich bin ja bestimmt kein JAVA Spezialist - daher kann das natürlich auch Blödsinn sein, den ich schreibe, aber ich meine mich zu erinnern, das Eclipse ein eigenes Grafikframework für die GUI geschrieben hat, da die normalen JAVA Klassen zu langsam waren. Dieses Eclipse GUI Framework ist meines Wissens auf den wichtigsten Plattformen als native Implementation verfügbar. Evtl. wäre das ja einen Blick wert. Eine andere Alternative wäre OpenGL für die Darstellung zu nutzen (Falls unter JAVA verfügbar). Das ist auch Plattfromunabhängig, und das Zeichnen eines ausgefüllten Polygons mit teilweiser Transparenz ist für OpenGL eher eine Sache von Millisekunden als von Sekunden. Und so als Nebeneffekt wäre es auch möglich eine deutlich ansprechendere Darstellung der Karte erreichen, indem auch Linien als texturierte Polygone dargestellt würden. (Um z.B. eine Linie noch eine dunkle Umrandung zu geben.)
Gruß, Thomas _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-de