• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Gute oder schlechte Nachricht, entscheidet selber!

Longri

Geoguru
In letzter Zeit habe ich mir viele Gedanken dazu gemacht, wie wir in Cachebox ein vernünftiges SVG-Handling einbauen können. Ich habe hier viel recherchiert, aber keine einfache Lösung gefunden.
Es gibt entweder eine Lösung für Android oder eine für Desktop, aber keine direkt für LibGdx, also OpenGL.

Beim arbeiten mit dem Mapsforge Source sind mir hier aber einige Code stellen aufgefallen, welche man dazu benutzen könnte um mit diesem Code auch SVG- Grafiken darzustellen.

Also habe ich hier ein wenig weiter geforscht und auch fest gestellt, dass es hier auch bei Mapsforge wieder die Entscheidung gibt, entweder Android oder Desktop, aber kein OpenGL.
Hier ist es für Cachebox sogar so, dass wir die MapTiles über Mapsforge als PNG rendern lassen (entweder Android oder Desktop) und dann dieses PNG in eine OpenGL passende Form zu bringen(PixMap) und sie dann anzuzeigen.

Ich habe mich jetzt dazu entschlossen, alle Graphik Befehle von Mapsforge gleich in OpenGL auszuführen und nicht mehr den Umweg über ein PNG von Android oder Desktop zu gehen.

Der nächste Vorteil dieses Weges ist, dass wir mit diesen Graphik-Befehlen dann auch SVGs zeichnen können. Ein SVG ist hier nämlich nicht viel anders, als die Informationen eines MapTiles von Mapsforge. Es gibt Linien, Kreise, Fälschen, Text…..

Die schlechte Nachricht wäre dann, es kostet Zeit und es müssen einige Dinge Warten.
Aber ich möchte es machen und habe auch schon angefangen. Ach wozu so ein Urlaub alles gut ist ;-)

Gruß vom Pool, icon_mrkaktus.gif

Andre
 

GeoSilverio

Geowizard
Ich muss gestehen:
Ich habe nicht wirklich viel verstanden... :D

Ich habe mir nun einiges er-google-t...
Was ist SVG? Wahrscheinlich gehts um Vektor-Grafiken?
Und es geht darum, die mapsforge-Vektorkarten in cachebox darzustellen?
Aber wieso Desktop? Also nicht, dass es nicht schön wäre, dann später irgendwann mal ein Cachebox auf dem PC oder Android (oder....) einheitlich zu haben...

Aber wenn sich das mit nicht ZU viel Aufwand lösen lässt, wieso nicht?
Vielleicht kann mapsforge davon ja auch noch ein wenig profitieren, so dass man dort quasi etwas zurückgeben kann.

Ein Vorteil könnte ja sicher die Geschwindigkeit der Kartendarstellung und daraus resultierend auch die Optimierung des Stromverbrauchs sein?
 
OP
Longri

Longri

Geoguru
Was ist SVG? Wahrscheinlich gehts um Vektor-Grafiken?
Ja genau darum geht es. Ich möchte gerne alle Icons als SVG haben, damit wir hier unabhängig von der Bildschirmauflösung werden.

Vielleicht kann mapsforge davon ja auch noch ein wenig profitieren, so dass man dort quasi etwas zurückgeben kann.
Das denke ich nicht, aber ich werde den Code hierfür unabhängig von CB Aufsetzen und bei Mapsforge einreichen. Wer weis, vielleicht gibt es hier dann auch eine Mapsforge für iOS?

Ein Vorteil könnte ja sicher die Geschwindigkeit der Kartendarstellung und daraus resultierend auch die Optimierung des Stromverbrauchs sein?
Das ist auch ein Punkt, den ich mir erhoffe.
Da ich aber noch so ziemlich am Anfang stehe, kann ich es noch nicht sagen!

Nicht dass der Laptop ins Wasser fällt, immer gut vorsorgen:
ich habe doch vom nicht aus dem Pool geschrieben! :D
 

Teleskopix

Geowizard
Das Du die Icons/Grafiken als SVG umsetzen möchtest ist logisch, da damit die unterschiedlichen Bildschirmauflösungen leichter unter einen Hut zu bekommen sind.
Bei Mapsforge würde ich mir in Sachen Geschwindigkeit einen Vorteil erwarten/wünschen da nur "ein" Rechenvorgang notwendig.
Das dabei was für iOS rauskommt erwarte ich nicht, da iOS und Opensource keine Freunde sind.

Also ich bin dafür das du es so machst wie du schreibst, auch wenn CB-Desktop dann später kommt. Die jetzige Lösung mag unter Linux/Ubuntu noch nicht so recht. Das ist für mich nicht schlimm, da ich CacheWolf habe und für die Karten QLandkarteGT.

Grüße
Martin
 

kallenebel

Geocacher
Ja, also ob gut oder schlecht kann ich mangels des geballten Expertenwissens nicht entscheiden, insofern kann ich mich nur auf die Empfehlung des/der Experten verlassen.

Wobei auch ich nicht verstanden habe, worum es denn nun konkret geht.

Aber was ich eigentlich sagen wollte:

Mit der Kombination WCB und ACB bin ich eigentlich gut versorgt.

Meine Wünsche (nice to have) hatte ich hier schon mal direkt oder indirekt geäußert:

1. ein schnelleres WCB bei Datenbanken über 5.000 Caches (ja, leider komme ich immer wieder in die Situation vielzu viele Caches downzuloaden, obwohl ich dann netto nur auf 3 bis 5 Logs am Tag/WE komme)

2. Vektormaps auf dem PC/Netbook insbesondere bei offline-sessions.

Übrigens: habe mich mit ACB am letzten WE weder ordentlich ausgetobt und eine kleine Unschönheit entdeckt
- nach Anlegen eines neuen Wegepunkteswurde in der aktuellen NB-Version aber auch in der Store-Version dieCache-Beschreibung nicht mehr dargestellt -

Aber ansonsten: dieaktuelle NB-ACB läuft

perfetto

in allen Standardanwendungen!
 
OP
Longri

Longri

Geoguru
Ok, dann versuch ich es mal ein wenig anders zu erklären.
Die Mapsforge benutzt hier Befehle um die Karte zu Zeichnen.
Dies Befehle sind zB. zeichne eine Linie von a nach b oder fülle ein Rechteck mit der Farbe x.
Dieser Befehlssatz der hier verwendet wird ist aber weit aus größer als die beiden Beispiele.

Da es für Android und Desktop hier aber keine Einheitlichen Befehle gibt, hat Mapsforge das ganze sehr einfach gehalten um die Befehle hier entweder auf Android oder Desktop so zu verwenden, das hier ein MapTile im *.png Format entsteht.

Jede andere App kann jetzt hier dieses MapTile auf seiner Oberfläche zeichnen.
Wir müssen dieses *.png erst in ein Format wandeln, damit wir es in OpenGL zeichnen können.

Dies wäre nicht nötig, wenn wir den Befehlssatz von Mapsforge gleich in OpenGL umsetzen.
Und wir hätten den Vorteil, dass wir diese Befehle auch dazu verwenden können, um ein *.svg direkt in OpenGL zu zeichnen. Ein SVG besteht nämlich auch nur aus einer Liste von Befehlen wie zeichne eine Linie von a nach b.

Gruß Andre, schon wieder am Pool sitzend, nachdem mich ACB heute drei schöne Caches hat finden lassen.
 

Inder

Geowizard
Aus meiner ureigenen und egoistischen Sicht ist das völlig o.k., wenn Du hier Deinem Bedürfnis freien Lauf lässt. Ich kann mit der aktuellen Version alles tun, was ich brauche. Die paar kleinen Unschönheiten, die in meinem Cacheralltag auffallen, haben keine hohe Priorität.
 

Ging-Buh

Geowizard
Hi Andre,

erst Mal wünsche ich dir einen tollen, erholsamen Urlaub und übertreib es nicht mit dem Programmieren.

Wie hast du das genau vor?
Hast du vor hier erst Mal auch noch in eine Pixmap rein zu rendern oder gleich direkt in OpenGL?

Wenn du da Chancen siehst dass dies umgesetzt werden kann dann bin auch ich dafür dass du dies machst. Das könnte ja im Erfolgsfall auch den Speicherhunger von ACB etwas reduzieren?

Aber unabhängig davon, alleine die Tatsache dass es dich anscheinend "juckt", dies anzupacken ist ja schon Grund genug.
 
OP
Longri

Longri

Geoguru
Der Urlaub ist jetzt schon Erholung und beim Programmieren ist es wie immer.

Der 10m entfernt sitzende Hahn weckt mich um 5:30 Uhr und dann habe ich genug Zeit bis meine Familie wach wird.

Ja ich verfolge erst einmal den Weg über die Pixmap arbeitet hier aber mit Dreiecken zum Zeichen was OpenGL im Hintergrund sowieso macht meine ersten Tests zeigen hier gute Ergebnisse.

Die Performance sollte hier auch etwas besser werden, schon allein weil wir compress() zu byte[] komplett umgehen.

Gruß Andre

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
Oben