Export gpx pro POI Loader

Hraju si s exportem pro POI Loader a začal mi hlásit, že vygenerované gpx je neplatné. Dá se odhadnout proč je neplatné resp. je nějaký validátor, kterým by se to prohnalo a řeklo mi to, kde je chyba?

Díky za pomoc.

Dělal mi to vždy na nějaké keši … Tak jsem metodou půlení intervalu zjišťoval která to byla …

nj, tomu jsem se chtěl vyhnout :frowning:

ted jsem nepochopil… dela ti to originalni export, nebo tebou upraveny export?

Můj upravovaný a vyráběný… B)

Ta to jsi nekde neco rozbil. :wink:
Zkontroluj si, jestli vsechna data zapisujes v kodovane forme, jestlijsi neporusil struktruru tagu, jestli je mas uzavrene, atd.

jednoduchy test mzues udelat timz, e ten GPX soubor prejmenujes tak, aby mel priponu XML a [ak jej zkusis otevrit v internet exploreru nebo firefoxu. Pokud je tam nejaka formalni chyba, reknou ti to, vcetne radku, kde se chyba nachazi.

Kontrolu můžeš udělat podle schématu a dokumentace, kterou najdeš zde: http://www.topografix.com/gpx.asp
Pozor třeba na povinné atributy a pořadí elementů. Na to jsem narazil, když jsem si s generováním gpx hrál.
edit: kdyžtak dej krátkou ukázku exportu

Vypadá to spíš, že do toho gpx prolejzaj nějaký znaky, co tam nepatřej. Jelikož na nějakém vzorku to projde,na jinémne. Jak už tady bylo napsáno, vezmu bázi a začnu ji půlit až se dopátrám k té problematické položce…

Předpokládám, že pokud by byla chyba ve struktuře či elementu, pak by to vypadlo i na vzorku jedné či dvou keší…

Tak mne napada, jestli nemas v datech jeste nejake waymarky z dob, kdy se tam importovaly takove ty paznaky…

Velmi dobry validator je v Mozille - ukaze Ti pripadne aj miesto kde doslo k chybe…

Aaaa, Plha se hlasi! :smiley:

je to možný. Makro by mělo být ale blbuvzdorný, takže by bylo fajn to odhalit..

Tak se zdá, že je to tím, že skutečně v některých listinzích jsou paznaky :@ Pokus o opravu přes Nástroje databáze selhal :(, ale naštěstí není WM tolik a máme tady nový GJ, který to zvládne stáhnout všechno znovu jako malinu B)

"oprava spatnych znaku v listingu" skutecne nezabrala?

Ne, jelikož to spadlo na chybě jak jsem ti už psal ve vláknu pro GG2 :frowning:

Ahoj, jen se zeptám. Vím, že je tohle vlákno 8 měsíců staré, ale třeba se něco pohnulo kupředu. Mám ten samý problém a pracně jsem půlením intervalů odhalil keš a následně i paznak, který to dělá. Je to taková divná pomlčka s ASCII kódem 96H / 150. Konkrétně je třeba u keše [cache]GC2FR97[/cache] v hintu, u [cache]GC2DB67[/cache] v názvu a na mnoha dalších místech. Ale i když tyhle dementní pomlčky strojově změním na normální, tak mi POI loader stejně padá zase na nějakým jiným paznaku a znamená to zase hledat na jakém :(.

Zkoušel jsem tu GG funkci "Oprava špatných znaků v listingu" a tyhle znaky a ani ty jiné (mě ještě neznámé) to neopravilo.

Asi si budu muset udělat nějaký prográmek, který to celé projede a zahodí všechny znaky mimo definovaných, ale napadlo mě, zda se tím už někdo nezabýval. Vždyť na podobný problém musí přece narazit snad každý.

Oprava spatnych znaku jen vyhaze sekvence, ktere jsou invalidni v ramci UTF-8 kodu.

pokud POIloader neschrousta vsehcny validni UTF-8 znaky, pak je to problem.

No já to třeba dělám takhle, a nemám problém, nicméně na POI loader listing nepoužívám, do textu nacpu stěží hint


  
Cache_Name := UtfToAscii(ReplaceString(GC.Name,'&',' '));
Cache_Name := ReplaceString(Cache_Name,'<','(');
Cache_Name := ReplaceString(Cache_Name,'>',')');

if GC.IsListed then
  begin
    Result := ' <wpt lat="' + GC.Lat + '" lon="' + GC.Lon + '">' + CRLF;
    Result := Result + '  <time>'
       + formatdatetime('yyyy"-"mm"-"dd"T"hh":"nn":"ss"."zzz', GC.Hidden) + '</time>' + CRLF;
    Result := Result + '  <name>' + GC.ID + '(' + GC.CacheType[1] + GC.Size[1] + GC.Difficulty + GC.Terrain + ')'
            + CRLF + Cache_Name + '</name>' + CRLF;
    if (GC.Hint <> '') then
    begin
       Hint := GC.Comment + GC.Hint;
       Hint := ReplaceString(Hint,'[','(');
       Hint := ReplaceString(Hint,']',')');
       Result := Result + '  <desc>' + cdata(UtfToAscii(Hint)) +'</desc>' + CRLF;
    end
    else
    begin
       Result := Result + '  <desc>' + cdata(UtfToAscii(GC.Comment)) +'</desc>' + CRLF;
    end;
    Result := Result + '  <url>' + cdata(GC.URL) +'</url>' + CRLF;
    Result := Result + '  <urlname>' + cdata(Cache_Name + ' by ' + GC.Author) + '</urlname>' + CRLF;
    if GC.IsFound then
      Result := Result + '  <sym>Geocache Found</sym>' + CRLF
    else
      Result := Result + '  <sym>Geocache</sym>' + CRLF;
    Result := Result + '  <type>Geocache|' + GC.CacheType + '</type>' + CRLF;
    Result := Result + ' </wpt>' + CRLF + CRLF;
    WriteToFile(GC.Country, GC.CacheType, GC.CacheType, Result);
  end;


Díky, právě jsem zkoumal, co tam dělaj ty smajlíci :wink:

Waypointy jsou delany podobne, posledni update jsem delal skoro pred dvema lety, nicmene to vypada jenom na odstraneni &, prevedeni do ascii a odstraneni < a >. Tam kde pouzivas cdata tak jeste odstran i [ a ].