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

Cache auf Karte anzeigen

arbor95

Geoguru
Hat jemand Interesse an einer Erweiterung:
Alle Cache (egal ob markiert) auf der Karte anzeigen?
 

Team Lotte

Geocacher
Hmmmm.....sowas hatte ich mir schon mal gewünscht. Gerade als ich noch keinen Oregon hatte und auf dem Alan ist das alles recht mühsam.
Wenn ich mir aber den Radar einstelle und mir überlege, wie unübersichtlich das ist, wenn man (so wie ich meistens) mit 300 und mehr Caches im CW unterwegs ist, dann weiss ich nicht ob das Sinn macht. Die Darstellung auf einem "normalen" PDA-Display ist ja ohnehin schon nicht so besonders groß.
Schick wäre es, wenn man einen Kartenbereich definieren und alle darin befindlichen Caches anzeigen lassen könnte, die gerade im CW geladen sind. Das könnte auch noch auf einem PDA-Display angezeigt werden.
 

MiK

Geoguru
"Alle" würde ich auf keinen Fall machen. Sondern eher alle, die in der Liste sind. So kann man dann Addis und Caches die weiter weg sind auch gleich ausfiltern.
 

greiol

Geoguru
wobei ich "alle" in dem fall automatisch auf den gewählten krartenausschnitt mit zoomstufe beschränken würde. also nicht rauszoomen nur um alle drauf zu bekommen.
 

Wutschkow

Geomaster
Früher hatte ich immer alle Caches markiert, um sie auf der Karte zu sehen. Bis ich mir dann mal den Code der MovingMap angeschaut habe. Seitdem markiere ich meist nur den Cache, den ich gerade in Arbeit habe und freue mich über die bessere Performance der MM.

Also wenn das kommt, dann bitte nur optional.
 
OP
arbor95

arbor95

Geoguru
Wutschkow schrieb:
Früher hatte ich immer alle Caches markiert, um sie auf der Karte zu sehen. Bis ich mir dann mal den Code der MovingMap angeschaut habe. Seitdem markiere ich meist nur den Cache, den ich gerade in Arbeit habe und freue mich über die bessere Performance der MM.

Also wenn das kommt, dann bitte nur optional.

Eben, weil das alle markieren die Performance und den Speicher frisst. Habe bisher auch immer so wie du jetzt gearbeitet. Wenn man alle markiert werden ja auch die, die nicht auf dem Bildschirm sind "geladen".
Es werden natürlich nur die Cache "geladen", die auf dem Display sichtbar sind. Und natürlich wird es eine Option sein.
 

pfeffer

Geowizard
die aber bitte standardmäßig aktiviert ist.
araber95 will es ja extra so machen, dass die Performance nicht leidet.

Gruß,
Pfeffer.
 

Wutschkow

Geomaster
araber95 schrieb:
Es werden natürlich nur die Cache "geladen", die auf dem Display sichtbar sind.
Wir reden hier also über einen grundlegenden Umbau der MovingMap? Da besteht sicherlich Optimierungspotenzial. Trotzdem klingt Deine Formel "Mehr Wegpunkte berücksichtigen und trotzdem bessere Performance" ein wenig nach einem Perpetuum Mobile. ;)
Aber ich lasse mich gerne vom Gegenteil überzeugen.
 
OP
arbor95

arbor95

Geoguru
Wutschkow schrieb:
araber95 schrieb:
Es werden natürlich nur die Cache "geladen", die auf dem Display sichtbar sind.
Wir reden hier also über einen grundlegenden Umbau der MovingMap? Da besteht sicherlich Optimierungspotenzial. Trotzdem klingt Deine Formel "Mehr Wegpunkte berücksichtigen und trotzdem bessere Performance" ein wenig nach einem Perpetuum Mobile. ;)
Aber ich lasse mich gerne vom Gegenteil überzeugen.

Der Code würde so aussehen und nach Zeile 1007 in die MM eingefügt (Bei Änderung von 10%)
Code:
				CacheHolder ch;
				int twidth = width/10;
				int theight = height/10;
				Area screenArea = new Area(ScreenXY2LatLon(-twidth,-theight), ScreenXY2LatLon(width+twidth,height+theight));
				for (int i = cacheDB.size() - 1; i >= 0; i--) {
					ch = cacheDB.get(i);
					if (screenArea.isInBound(ch.pos)) {
						// because visible and valid don't change while showing map -->need no remove
						if (ch.isVisible() && ch.pos.isValid()) {
							addSymbolIfNecessary(ch.cacheName, ch, GuiImageBroker.getTypeImage(ch.getType()), ch.pos);
						}
					}else{
						removeMapSymbol(ch.cacheName);	
					}
				}
wobei ch.cacheName noch public gemacht werden muss in Cacheholder.java
 

Wutschkow

Geomaster
Das heißt, Du überprüfst alle paar 100 Meter alle Caches und sparst dafür bei den ständigen Überprüfungen zwischendurch Zeit, weil Du da immer nur die Caches beachten musst, die wirklich in der Nähe sind und in Frage kommen. Richtig verstanden?
Hast Du schon mal getestet, ob das bei einem großen Profil (500+ oder mit was manche hier so rumlaufen) einen spürbaren Hänger gibt, wenn es dann soweit ist? Ansonsten könnte das zumindest in den meisten Szenarien wohl wirklich effizienter sein.

Apropos: Wäre es nicht effizienter, erst die billigen isVisible und isValid zu prüfen, ehe man das aufwändigere IsInBound aufruft?

Und das ganze müsste auch schon beim Aufruf der Map einmal gemacht werden, oder? Sonst poppen die Nachbarwegpunkte erst auf, wenn Du weit genug gelaufen bist? Andererseits dauert es dann wieder etwas länger, bis die Map angezeigt wird. Am besten erst die Map mit dem gewählten Wegpunkt komplett anzeigen und dann erst schauen, welche Wegpunkt noch in der Area sind.
 
OP
arbor95

arbor95

Geoguru
ab V2241 - 2245 hab ich das eingebaut/umgebaut. (Menüpunkt unter gelbem Dreieck)
 
Oben