Makro pro export do TrekBuddy

Nenašla by se tady dobrá duše, která by byla ochotna vytvořit makro pro export GG do TrekBuddy? Zkoušel jsem pochopit princip vytváření maker, ale bohužel programování není mou silnou stránkou a asi nikdy nebude :).

Teď rovnou k věci co bych si představoval, aby makro exportovalo. TrekBuddy používá pro seznam bodů (keší) soubor typu *.gpx. Tedy v podstatě XML. Tudíž by se měl vytvořit soubor GPX (možnost zvolit název a umístění) z vybraných keší v GG včetně waipointů pokud nějaké obsahuje.
Struktura souboru je následující:

Úvod


<?xml version='1.0' encoding='UTF-8' ?>
<gpx version="1.1" creator="TrekBuddy 0.9.81" xmlns="http://www.topografix.com/GPX/1/1" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0"
xmlns:rmc="urn:net:trekbuddy:1.0:nmea:rmc" xmlns:gsm="urn:net:trekbuddy:1.0:gsm">

Dále se mohou vkládat již samotné keše a waipointy

Keš


  <wpt lat="LAT" lon="LON">
    <time>ČAS</time>
    <name>NÁZEV KEŠE</name>
    <cmt>NÁPOVĚDA</cmt>
  </wpt>

LAT a LON zadávaný ve stupních (např: 52.555083333)
ČAS (míněn čas vytvoření keše) ve formátu RRRR-MM-DDTHH:MM:SSZ (např. 2008-11-07T09:24:41Z)
NÁZEV KEŠE by měl být ten popisný a né kód, za kterým by bylo v závorce typ keše a velikost pomlčka obtížnost nálezu/terénu (např. Javorský vrch (TS-2/2) )
NÁPOVĚDA by měla obsahovat HINT buď zakódovaný nebo lépe pozpátku zapsaný

Waipointy se vkládají stejným způsobem jako další bod za keškou je s tím rozdílem, že místo nápovědy bude popis Waipointů.

Waipoint


  <wpt lat="LAT ve stupních" lon="LON ve stupních">
    <time>Čas</time>
    <name>Název keše</name>
    <cmt>Popis</cmt>
  </wpt>

Pokud budou vypsány veškeré keše,ukončí se soubor tagem


</gpx>

a výsledný soubor *.gpx se může uložit na požadované jméno.

Pokud by se tu někdo takový našel, kdo by toto makro naprogramoval, tak mu budu neskonale vděčný. Předem děkuji všem zúčastněným.

link: http://linuxtechs.net/kruch/tb/forum/index.php

Podobne makro uz nejakou dobu mam, ale bylo to pro GG1, musel bych to preklopit jako jsem predelaval WPT export, uvidim, zda na to bude o vikendu cas, obavam se, ze spise ne. Jestli pouzivas GG1, tak tady tu soucasnou verzi prikladam (vznikla upravou puvodniho makra pro GPX export).

EDIT: Ted jsem se dival - mam tam puvodni desc a TB mi hint zobrazoval, tak nevim, zda bere cmt i desc jako stejny atribut?

Přikládám svůj export pro TrekBuddy. V názvu je název keše + IDTag, v komentáři je nápověda + Diff./Terr.
Plus waypointy … Můžete vyzkoušet, popř. uvítám nápady na vylepšení :wink:

Tak i já zvládl vytvořit ze stávajících exportů vytvořit vlastní export pro TB. Zkuste na to kouknout a případně skloubit s vašimi a vytvořit jeden vyhovující všem ;).

Upravil jsem stávající export pro TrekBuddy.
Archiv obsahuje dva soubory:

  • TrekBuddyAll.gge.pas: generuje obdobu PQ čitelnou v TrekBuddy
  • TrekBuddyMin.gge.pas: generuje odlehčenou verzi seznamu (neobsahuje popis keše), menší velikost rychlejší načítání v aplikaci

Stahovat můžete v příloze tohoto příspěvku.

Nová verze TrekBuddy export 1.1 ke stažení.

  • oprava znaku & v názvu cache a autora (TrekBuddy by jinak házel chybu)

Nějak nevím proč se tohle musí řešit nějak zvlášť, v GG2 mám možnost exportovat do PQ GPX který je s Trekbuddym kompatibilní. (Ta stručnější verze by se ale hodila protože se to v PDA hodně pomalu načítá).

No řeším to ptroto, že některé části co TrekBuddy nečte z PQ vynechávám a tak trochu šetřím velikostí souboru. Vím nebude to mnoho, ale při více keškách to už může být už zajímavější úspora=rychlejší načítání.
Dalším důvodem je výše zmíněná oprava, protože standardní export PQ v názvech keší a autorech nechává znak & a ten prostě TrekBuddy neskousne. Potažmo musí být nahrazen jeho ekvivalentem HTML.

Nevim jak na PDA, ale resil jsem pomale nacitani gpx v trekovi na n6230i a hodne se zrychlilo po uprave kodovani primo v gpx. Zmenil jsem utf8 na iso-8859-1 podle tech. info telefonu a cteni se zrychlilo opravdu hodne.

Nemáte někdo s těmi vyexportovanými waipointy problémy? Mě se stává, že u některých waipoitu se po startu GPS nebo příkazu Go to provede reset. U ostatních waipointu téhož souboru to funguje v pohodě. Mám Treo 650.

Takže kdyby měl někdo stejný problém jako já na svém Treu: v případě, že název waypointu byl delší než cca 32 znaků, docházelo pří zobrazení tohoto waypointu na mapě k resetu. Poprosil jsem tedy PetrX o úpravu makra, tak aby ořezával název na prvních 30 znaků a vše funguje!!
Díky za úpravu makra:):slight_smile:

Dovolil jsem si další úpravu exportního makra:

  • ořezává name a cmt na 126 znaků
  • možnost ořezu longdescription na určitý počet znaků (hledej proměnou LongExportLength)
  • odstraňuje kompletně html tagy z popisu
  • odstraňuje vícenásobné zalomení řádku
  • odstraňuje dlouhé mezery v textu
  • přidává před název kešky a waypointu index podle typu (viz obrázek)
  • možnost zobrazení ikony kešky v TB - http://www.trekbuddy.net/forum/viewtopic.php?t=3286

To Komik1000: Pojďme se domluvit na jednotném makru pro TB. Já na něm pracuji a tak bych uvítal kdyby jsi sem své nápady nadhodil a společnými silami to dáme do tvaru nejoptimálnějšího pro TB. Zběžně jsem koukal, že tam děláš některé zbytečné věci jenž umí makro jazyk v jedné funkci.

No já už na tom asi nic víc nevymyslím. To co jsem tam dotvořil klidně použij a optimalizuj. Rád se na to pak podívám.
Programoval jsem naposled před několika lety, takže mi to nejde tak hladce a mám to kostrbatý. To odstranění html tagů na 4 keškách v ČR hodí hlášku out of string a nevím přesně proč. Jsou to listingy kde se objevují znaky <> v textu. Částečně jsem to ošetřil, ale stejně to není dokonalý. Tahle nejde : [cache]GC1EJBP[/cache].

Ted budu pracovat spíše na CMS.

Zrovna na odstraneni html je v API funkce.
A funguji i regular expressions, takze by to slo delat vazne jednoduseji …

Ja sam Trekbuddyho nepouzivam, jen poznamenavam :wink:

tak to mi prosím poraď, já jsem se s tím mořil celou noc :frowning:

Ja regexpy taky moc neumim, ale nakonec jsem sesmolil takovyhle prikaz, pomoci ktereho cistim HTML pro export do garmin gpsek (doposud nevydany)

http://www.pastebin.cz/6a5ccfd4b0a9e3

Metoda na komplet odmazani html ma takovouto hlavicku:


function Html2Text(const value: string): string
převede HTML na prostý text.

No to mě podrž vono to funguje. Sice to má taky problémy s těmi znaky <> v textu, ale bez milosti to odřízne a nehodí chybu.

Kde jsi tu funkci vyštoural? Díky.

Najdeš to v oficiální dokumentaci GeoGetu. Viz zde: http://geoget.ararat.cz/doku.php/doc:macro:functions

Rád bych uživatele tohoto makra (jsou-li nějací :)) aby se vyjádřili jaký výpis do TB si přejí. Mě osobně se líbí verze od Komik1000 s menší modifikací a to, že by název keše byl ve tvaru Název [Typ-obtížnost/terén] (např. Sloupská divocina [M-2.5/3.5]). Systém značení waypointů se mi líbí a ten bych zachoval.

Dále myslím, že je dobré z textu odstranit zcela HTML vč. obrázků (zde nevím jestli nahradit odkazem či ne, to je do diskuze) a také kompletně odstranit diakritiku.

Ještě je otázka co vše dodat do cmt, jestli jak má Komik1000 nebo třeba ještě přidat krátký popis.

Vyjádřete se prosím k tomu jak by se vám to líbilo a já to zapracuji do zde uveřejňovaného makra ať to máme vše při jednom.