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

TomTom POIs für Parkplätze

baby hübner

Geomaster
Moin,

folgende Situation: Ich möchte die als Parkplatz deklarierten ChildWaypoints aus meiner DB als POIs auf meinen TomTom laden. Mein Vorgehen:

Filter:
Children->Type Equal to Parking Area
Menu:
File->Export->TomTom POI File...
Fenster "TomTom POI File":
Include additional child waypoints:
"Yes" "And ONLY include child waypoints" und "Include.. Only flagged" ausgewählt

Soweit so gut. Mit nem selbst kreierten POI-Symbol sieht es auf der Karte auch ganz gut aus. :)
ABER: Man hat (im Gegensatz zum Garmin POI-Export) keinen Einfluss auf den Namen des POI. Das führt zu diversen nichts sagenden Variationen von "Parklatz", "Hier könnt ihr parken", Parkmöglichkeit... Es ist nur möglich, die Description über die bekannten %-Tags zu ändern. Und in der kann man mit dem TomTom nicht suchen. :down:

Ich suche jetzt nach einer Möglichkeit den Namen zB nach folgendem Scheema zusammenzubasteln "%Name - %c_Name" oder "%code - %c_Name"
Wobei ich mit %Name und %code den Namen bzw. GC-Code vom Cache meine.

Hab auch schon probiert mir selbst ein Makro zu erstellen, dass den Cachenamen in den Namen von den Childwaypoints schreibt. Ich weiß allerdings nicht, wie ich die einzelnen Waypoints "ansprechen" und deren Eigenschaften beinfussen kann. :???:

Aus diesem Grunde: :hilfe:
 

caesar

Geocacher
Da gibt es bei gsak.net unter Macros einiges. Gib mal in der Suche tomtom ein. Evtl. ist da ja was dabei was du brauchen kannst.
Sonst hilft nur selbst "basteln"
 
OP
baby hübner

baby hübner

Geomaster
Die TomTom Export Helfer von der GSAK-Seite sind toll, sind schön, machen aber nicht dass was ich wollte :no: :
Nämlich den Cachenamen in den Waypoint-Namen integrieren, damit ich den POI im Navi direkt suchen kann.

Also habe ich selbst gebastelt: :hexe3:

Code:
Goto Position=top

while not ($_eol)

  table active=waypoints scope=parent
  while not($_eol)

     if $d_cType = "Parking Area"
       $d_cName = $d_cName+" - "+$d_Name 
     else       
     EndIf

    Goto Position=Next

  EndWhile

  Table active=caches

  Goto position=Next

EndWhile

Goto position=Top

Mit TABLE <Active=caches|logs|waypoints|corrected> [<Scope=Parent|All|Same>] kommt man an die Eigenschaften von der "Unterstrukturen" von den einzelnen Caches ran und kann diese dann bearbeiten.

Nachdem das obige Makro die DB durchlaufen hat wird z.B. "Parkplatz" ersetzt durch "Parkplatz - Ruinenrunde Stralau".

Aber Vorsicht: Lässt man das Makro zweimal durchlaufen wird folgendes daraus: "Parkplatz - Ruinenrunde Stralau - Ruinenrunde Stralau" Es muss also noch ein Mechanismus geschaffen werden, mit dem ein evtl. schon eingefügter Name nicht zweimal eingefügt wird.
:hallo: bh
 
OP
baby hübner

baby hübner

Geomaster
Ok. Das Problem mit den doppelte Cachenamen bei Mehrfachausführung ist gelöst:

Code:
if $d_cType = "Parking Area" AND NOT(RegEx($d_Name, $d_cName)) 
   $d_cName = $d_cName+" - "+$d_Name 
else       
EndIf

Einfach die Bedingung der if-Struktur um AND NOT(..) wie oben ergänzen.
 

De Ryckswimmers

Geocacher
Hi,
danke :gott: für das kleine Macro, hat mich auch schon genervt, ich kann aber leider nicht programmieren :???: .
Bei mir läuft es aber leider nicht komplett durch, kopiere hier mal das Logfile ein, evtl. hast Du ja 'ne Idee...
GASAK 7.7.3.16, ca. 3400 Caches, WinXP

********************************************************************
Error log: 16.08.2010 20:17:23 GSAK 7.7.3.16
********************************************************************
MacVersion = 1.0
MacDescription = New macro
MacAuthor = Administrator
MacUrl =

Current Macro: D:\PQs\Software\!GSAK\Macros\tomtom-Parkplatzbenennung.gsk

Error in Macro at line: 15
if $d_cType = "Parking Area" AND NOT(RegEx($d_Name, $d_cName))

Error=> TPerlRegEx.Compile() - Error in regex at offset 18: nothing to repeat

Macro will now abort
--------------------------------------------------------------------
Variables:
--------------------------------------------------------------------

$_AltKey (boolean) =False
$_AppData (string) =C:\EIGENE~1\gsak
$_Count (numeric) =1
$_CrLf (string) =|
$_CtrlKey (boolean) =False
$_CurrentDatabase (string) =1_Master
$_CurrentDataPath (string) =C:\Eigene Dateien\gsak\data\1_Master
$_DbCount (numeric) =1676
$_DBNotes (string) =
$_dbPath (string) =C:\Eigene Dateien\gsak\data
$_Degrees (numeric) =0
$_DualScreen (boolean) =False
$_Eol (boolean) =False
$_Exepath (string) =C:\PROGRA~1\gsak
$_FilterActive (boolean) =False
$_FilterCount (numeric) =0
$_FormLeft (string) =
$_FormTop (string) =
$_Global (string) =
$_GoogleLat (string) =
$_GoogleLon (string) =
$_HtmlFormat (string) =
$_ImageClickLeft (numeric) =0
$_ImageClickTop (numeric) =0
$_Install (string) =C:\EIGENE~1\gsak
$_MacroLevel (numeric) =1
$_MacroParms (string) =
$_NewLine (string) =|
$_OrderBy (string) =g_upper(FoundByMeDate) desc, Distance
$_Pi (numeric) =3,14159265
$_Quote (string) ="
$_ShiftKey (boolean) =False
$_SortBy (string) =FoundByMeDate=D
$_SplitScreen (boolean) =True
$_Sql (string) =
$_SQLEol (boolean) =False
$_SqlGrid (string) =select cachesall.* from gridtemp,cachesall where gridtemp.rid = cachesall.rowid
$_SqlRows (numeric) =0
$_Tab (string) =Hex Data: 09
$_Timer (numeric) =0
$_Today (date) =[20100816]
$_Units (string) =K
$_Version (string) =7.7.3.16
$_Where (string) =1

Danke schon mal für Deine Mühe! (Mit sowas darf man gar nicht erst anfangen ;) )
 
OP
baby hübner

baby hübner

Geomaster
Also ich bin selbst noch Anfänger und dabei mich in die Makroprogrammierung einarbeiten. :blush5:
Hier erst einmal mein Makrocode der auf meinem GSAK 7.7.2.55 und einer DB von 1600 Caches problemlos funktioniert:
Code:
$i=0 #Zählvariable für die Schlussmeldung

Goto Position=top

while not ($_eol)

  table active=waypoints scope=parent    #auf die Waypoints schauen, nur WPs von aktivem Cache beachten

  while not($_eol)  #Schleife, um die einzelnen Einträge durchzugehen     
     
     if $d_cType = "Parking Area" AND NOT(RegEx($d_Name, $d_cName))  #WP-Typ korrekt? Cachename schon im WP-Namen?
        $d_cName = $d_cName+" - "+$d_Name                            #WP-Namen modifizieren
        $i=$i+1                                                      #Zählvariable erhöhen
     else       
     EndIf

    Goto Position=Next

  EndWhile

  Table active=caches 

  Goto position=Next

EndWhile

Goto position=Top

MsgOK msg= $i Waypoint Namen wurden angepasst.      #Schlussmeldung raushauen

Der Fehler sieht für mich allerdings danach aus, als ob dass Problem tiefer liegt, nämlich auf Perl/Delphi-Ebene. Das würde bedeuten, dass entweder etwas verstellt oder bei der Installation schief gegangen ist. Aber mit Sicherheit kann ich es wirklich nicht sagen. :denken:

Ich konnte auch keine Fehlerdokumentation finden. Weder allgemein via Google noch im GSAK-Forum. :ka:

Darum hoffe ich darauf, dass hier im Geoclub-GSAK-Forum nicht nur fertige Makros für die Statistik-Bauchbepinbselung und totale Spoilerversorgung besprochen werden, sondern evtl. auch ein kleiner deutschsprachiger Wissenspool entsteht, der einem hilft, selbst aktiv zu werden.

Also: Sind hier wirklich nur Makro-Konsumenten oder gibt es evtl doch den einen oder anderen Meister, der uns an seinem Wissen teilhaben lässt? :andiearbeit:

:hallo: bh
 

De Ryckswimmers

Geocacher
Danke für die Rückmeldung!
Habe Deinen obigen Code nochmal probiert, gleicher Fehler. Nach dem Abbruch wird aber die Zeile mit dem Cache markiert welcher den Fehler verursacht. Wenn ich diesen über Filter ausblende läuft alles durch. Habe den Cache mal gelöscht und die gpx neu importiert-ergab aber keine Änderung, gleicher Fehler.
Bei mehrmaligem Start, sagt das Macro aber jedesmal, daß 34 WPs geändert wurden, leider kann ich natürlich nicht sagen welche betroffen sind...
Mach deswegen aber keine Welle, prinzipiel funktioniert es! Fehlerquote ist unter 1 % :). Ich hätte gar nichts hinbekommen!

edit: dieser Cache: http://www.geocaching.com/seek/cache_details.aspx?guid=93928297-d072-4ee8-bfc2-ac2bb3c1c371
 
OP
baby hübner

baby hübner

Geomaster
:/ Ok. Ich weiss woran es (hier) liegt:

Der Cache an dem es scheitert heißt "Kumminer Tannen???". Der Befehl RegEx(), mit dem nach Ausdrücken in einem Text gesucht wird, kommt mit den drei Fragezeichen nicht klar. Wenn Du diese über Waypoints/Edit... aus dem Cachenamen entfernst, sollte es gehen.

Das ist natürlich keine dauerhafte Lösung. Wer weiß, welche "sensiblen" Zeichen es noch gibt. Da dann immer die Caches per Hand nachzuarbeiten, kanns nicht sein. :no:

Im Übrigen glaube ich, dass Du mehr als 34 geänderte WPs haben müsstest. Die Makroausführung wurde einfach vorzeitig abgebrochen. Editier mal den Cachenamen und lass das Makro noch mal durchlaufen.
Zum Überprüfen:
- Set Filter -> Reiter Children -> Type [Equal toV] [Parking AreaV]
- Split screen format: [ChildrenV]

:hallo: bh
 
OP
baby hübner

baby hübner

Geomaster
:idee: So. Problem gelöst:

Code:
...
  while not($_eol)  #Schleife, um die einzelnen Einträge durchzugehen     
     
     $RegExSearch=RegExEscape($d_Name)     #sensible Zeichen escapen

     if $d_cType = "Parking Area" AND NOT(RegEx($RegExSearch, $d_cName))
        $d_cName = $d_cName+" - "+$d_Name                            #WP-Namen modifizieren
        $i=$i+1                                                      #Zählvariable erhöhen
     else       
     EndIf

    Goto Position=Next

  EndWhile
...

Neu hinzugekommen ist die Zeile "$RegExSearch=...".

Mit der Funktion RegExEscape() wird ein Text (hier: der Cachename) auf die oben erwähnten "sensiblen" Zeichen untersucht und so "verändert", dass sie von RegEx() nicht missverstanden werden.

:hallo: bh
 

De Ryckswimmers

Geocacher
Ich muß Dich leider enttäuschen... Die eingefügte Zeile ändert bei mir nichts-gleicher Fehler.

Und das mit den 34 WP ist ein Mißverständnis: Beim 1. Durchlauf waren es über 600, aber bei jedem weiteren Aufruf werden 34 gemeldet.

Ich habe jetzt auch nochmal ein Backup zurückgeholt und den Vorgang wiederholt-gleiches (negatives) Ergebnis.
 
OP
baby hübner

baby hübner

Geomaster
:denken: Bist Du sicher? Hast Du das Makro direkt aus dem Editor mit "Run" oder besser noch File->"Save and run" gestartet. Evtl. vergessen im "Run Macro"-Fenster den Re-sync-Button zu drücken?

Ich habe nämlich den Problem-Cache in meine DB geholt. Ohne die Zeile konnte ich Deinen Fehler exakt reproduzieren. Mit regExEscape() lief alles rund.

Zu den 34 wiederholt angepassten Caches: Das liegt wahrscheinlich an Umlauten im Cachenamen. In der alten Version erkennt mein Makro den Cachenamen nicht wieder. Das hat (bei mir) dazugeführt, dass dieser auch mehrfach in den WP-Namen geschrieben wurde. Auch nicht schön :no:.

Aber auch dieses Problem wurde bei mir durch regExEscape() behoben...

:hallo: bh
 

De Ryckswimmers

Geocacher
Ja, tut mir leid, ich bin mir sicher.

Habe gerade das backup zurückgeholt, GSAK neu gestartet, das Macro nochmal gecheckt-es bleibt dabei.

Du mußt deswegen aber wirklich keinen Aufwand betreiben, im Prinzip funktioniert es und die meisten Problem-WPs sind umbenannt, ich kann damit gut leben :D
 
Oben