Autor Zpráva
Keeehi
Profil
Ahoj,
chtěl bych poradit jakým způsobem mám jít na konverzi souřadnic.

Momentálně mám tři formáty:
D   = 50.24315 15.78868
DM  = N 50° 14.589 E 015° 47.321
DMS = N 50° 14' 35.3400" E 15° 47' 19.2588"

A mezi těmito formáty chci převádět. Napadají mě dvě možnosti
1) vytvořím si 6 konverzních funkcí D_to_DM, D_to_DMS, DM_to_D, DM_to_DMS, DMS_to_D a DMS_to_DM
a potom použiji tu kterou budu zrovna potřebovat
2) vyberu si jeden formát (asi D) a vytvořím funkce pro převod do tohoto formátu a další funkce pro převod z tohoto formátu. (DM_to_D, DMS_to_D a D_to_DM, D_to_DMS) Potom převod z DM do DMS bude vypadat takto: DM_to_D, D_to_DMS.

Potřeboval bych poradit, jaký způsob mám použít.
způsob 1. + přímá konverze; - více kódu (?větší náročnost na paměť?); - pokud bych formáty rozšířil tak počet kombinací bude hodně narůstat
způsob 2. + při rozšíření formátů počet funkcí nijak drasticky neroste; - asi to bude pomalejší, jelikož je tam mezikrok; - bojím se, že dvojitým převodem budou vznikat větší odchylky

Jaký způsob byste zvolili, nebo víte o lepším?

Díky

Poznámka pro moderátory: filtru sprostých slov se nelíbí slovo drasticky a přitom to není žádné ošklivé slovo. ( takže jsem si musel poradit :) ) Možná by se ta sprostá slova neměla kontrolovat uprostřed slov.
Keeehi
Profil
Provedl jsem zkoušky u druhého způsobu a zjistil jsem, že dokážu úspěšně zmenšit odchylku až na nulu. Takže jedinou nevýhodou druhého způsobu je, že by měl nejspíše být 2x pomalejší, než způsob první (2 konverze oproti jedné). Jelikož se však konverze nebudou používat ve větší míře, řekl bych, že to zpoždění mohu zanedbat. Proto bych tedy zvolil druhý způsob.

Nebo máte někdo nějaký jiný názor?
Alphard
Profil
Jak vznikají ty další zápisy? Pro práci (výpočty, ukládání) bude optimální D (2 desetinná čísla). Při výpisu bych všude používal stejný formát (asi DMS, ale to je jedno). Takže zbývá jen uživatelské zadání ve špatném formátu a to bych se hned snažil převádět na desetinná čísla.
Keeehi
Profil
Záznamy si script tahá parasováním stránek. Formát na těch stránkách je vždy DM.

Všude stejný formát při výpisu určitě nebude. Pro uživatele ano, ale export do souborů pro GPS navigace a programy ne. Každý má jiné požadavky. Další konverze budu muset dělat třeba pro zobrazení na mapách.

V databázi budu určitě používat desetinná čísla. Už jenom kvůli tomu, abych mohl vyhledávat nejbližší body.

Díky za odpověď.

Klidně pište i další :)
yFang
Profil
Keeehi:
Nevím, co všechno s tím hodláš dělat, ale myslíš, že ta rychlost bude ve výsledné aplikaci tak rozdílná?
Alphard
Profil
Aha, exporty, tak bude víc funkcí.
Já jsem tohle řešil až na úrovni šablon, v aplikaci byla všude desetinná čísla.
{$myPlace|lat}
Pokud se pracuje jenom s místy u nás (a blízkém okolí), stačí psát {$myPlace|gps}, není problém poznat, co je co :-)
Keeehi
Profil
yFang:
Doufám, že nebude, už jsem o tom psal.

Teď jsem si uvědomil, že vlastně rychlost řešit nemusím. Jelikož převádění konverze do D se bude provádět jindy než konverze do jiných formátů z D z databáze. Takže je to jasné. Použiji druhý způsob.

Díky, že jsem si tady mohl s vámi zapřemýšlet.

Alphard:
Souřadnice budou celosvětové.
Toto téma je uzamčeno. Odpověď nelze zaslat.