Dělám teď na offline klientovi pro android, používající databázi geogetu a nějak jsem se nedopátral toho, jak jsou v databázi uloženy shortdesc a longdesc. Jsou nějak zkomprimovány?
- VYBORNE! Offline klient pro android co bude pouzivat geogeti databazi mi moc chybi
Nechces se mi ozvat nekde na IM a pobavit se o nem? - Jsou zakomprimovane pomoci zlib
- Bacha, do budoucna jsou planovany nejake zmeny ve strukture db
Dík, ze zipu to nějak vytáhnu.
Zatím jenom začínám, dělám na tom třetí den, prostředí je spartánský a nestabilní, zatím to umí vyhledávat nejbližší keše a zobrazovat k nim nějakej detail a navigovat k nim kompasem. Jakmile budou základní funkce odladěný, tak dám vědět.
Jde mi to pomalu, v práci dělám v .Netu, takže tady mám pořád otevřenou učebnici javy a každej problém musím googlovat
Zejtra to pojedu vyzkoučet do terénu, tak snad mi nějakou pomůže najít.
To neni zip, to je zlib. Nicmene zlib knihovna urcite pro Android existuje. Jsou tam funkce na inflate/deflate bufferu v pameti, a to je presne to, co je potreba pouzit.
Už to tak trošku funguje, našel jsem s tím už dvě kešky. Tak za 14 dní by to mohlo mít nějaký normální ovládání, nastavení a vychytaný největší chyby a budu to moct uvolnit pro beta testování.
Rychlost je skvělá, na LG Optimus 2x to najde 50 nejbližších keší a zobrazí je na mapě během jedné vteřiny. podobnou dobu trvá i zobrazení keše a to jsem ještě nezačal optimalizovat. Snad to bude v budoucnu stejně použitelný jako PocketDrake.
Zatím nějaký screenshoty.








Největší problém je teď to, že jsem tomu ještě nevymyslel název ![]()
Nazev? To nevim, ale ikonka by mohla byt nejaka roboticka kacenka. ![]()
K tomu hledani okolnich kesi - nejrychlejsi je to pres coord-index. Pouzivas ho?
coord-index nepoužívám, vyzkouším. Trochu problém mám s měřením vzdálenosti, protože sqllite v androidu nativně nepodporuje goniometrický funkce a tak musím hledat nejbližší přes pythagorovu větu a to je v naší severní šířce trochu nepřesný (proto je ten seznam keší trochu napřeskáčku), ale to nějak vyřeším.
Tohle řeším tak, že data zpracovávám dvojprůchodově - nejprve podle Pythagorovy věty přednačtu seznam z databáze a pak výsledek projedu znova, spočítám vzdálenosti přesně a seznam podle toho upravím.
Super ! Sám jsem se chtěl do něčeho podobného pustit, ale když je to "za rohem" tak to nemá chybu. Nabízím se samozřejmě jako alfa/betatester (HTC Gratia, 2.2).
A co se týká funkcí - vyhledat nejbližší, přečíst listing, logy, hint, zobrazit na mapě případně navigovat, nějak označit nález případně komentář. Zbytek "až bude všechno hotovo".
Super, tak na tohle se také moc těším!
Hlásím se klidně i na alfatesting, případně pak na betatesting - mám HTC Wildfire.
Tak jsem "vydal" první verzi a jdu hledat kešky.
http://www.geocaching.cz/forum/viewthread.php?forum_id=8&thread_id=18552
A ještě mám dotaz - jakým algoritmem najdu nejbližší keše přes coord-index? Něco jsem googloval, ale moc chytrej jsem z toho nebyl
tab := geotable.GetTable('SELECT key FROM coord_index WHERE '
+ ' minx>=:minx AND maxx<=:maxx'
+ ' AND miny>=:miny AND maxy<=:maxy'
);
Parametry :minx, :maxx, :miny, :maxy urciji rozsahy souradnic, ktere te zajimaji. Takze si vlastne reknes obdelnik, a tohle ti vrati vsechny klice na zaznamy do tabulky ‘geocache’, ktere se nachazi uvnitr.
Aha, dík, já čekal něco hrozně sofistikovanýho ![]()
Tak to jdu předělat dotazy a jsem zvědavej, jak se to zrychlí
Měl bych ještě jeden hloupej dotaz, jak zjistím vlastníka keše? Dělám filtr a chci odfiltrovat vlastní kešky. Šlo by to pomocí geocache.author, ale co když je tam uvedeno víc autorů, oddělených čárkou? Na to v GeoGetu používáte LIKE?
Já se s tím v PD netrápil a mám tam prostě LIKE můj nick. Není to dokonalé, ale zatím si nikdo nestěžoval ![]()
Jinak jde použít pole gs_ownerid, ale nejdřív musíš zjistit hodnotu toho id. Ve SmartFiltru to dělám takto:
gcOwnerId := Geoget_DB.GetTableString('SELECT gs_ownerid FROM geocache where author = '''+Geoget_Owner+'''');
Předpokládám, že autor má aspoň jednu keš na svůj nick bez úprav. Pokud ne, tak to asi nemá řešení.
Tak já se s tím taky trápit nebudu ![]()