Jak mapovat délka / šířka ke zkresleným mapy?

hlasů
22

Mám spoustu délka / šířka párů, které jsou mapovány do známého x / y souřadnic na (geograficky zkreslené) mapy.

Pak mám ještě jeden délka / šířka dvojici. Chci to pozemek na mapě, jak nejlépe je to možné. Jak mám jít asi dělá?

Zpočátku jsem se rozhodl vytvořit systém lineárních rovnic pro tři nejbližších délku / šířku body a vypočítat transformaci z nich, ale to nefunguje dobře. Vzhledem k tomu, že je lineární systém, nemohu použít více Dalšími jeden.

Nelze předpokládat, sever je nahoře: vše, co musíte, je stávající LAT / dlouhými> X / Y mapování.

EDIT: to není Mercator projekce, nebo něco podobného. Je libovolně zkreslené z důvodu čitelnosti (myslím mapa metra). Chci používat pouze nejbližší 5 až 10 mapování, takže zkreslení na jiných částech mapy neovlivňuje mapování se snažím počítat.

Dále, celá mapa je ve velmi malé zeměpisné oblasti, takže není třeba se obávat světě - předpoklady plochý zemin jsou dost dobré.

Položena 05/08/2008 v 05:55
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
8

Existují nějaké konkrétnější podrobnosti o druhu zkreslení? Pokud se například vaše zeměpisné šířky a délky jsou „zkreslené“ do vašeho 2D mapy s využitím Mercator projekce, konverze matematika je snadno dostupné .

Je-li mapa zkreslený opravdu libovolně, existuje spousta věcí, které byste mohli vyzkoušet, ale nejjednodušší by asi bylo pro výpočet váženého průměru z vašich stávajících mapování bodů. Vaše hmotnost může být čtvercová převrácená hodnota x / y vzdálenosti od vašeho nového bodu na každé ze svých stávajících bodů.

Některé pseudocode:

estimate-latitude-longitude (x, y)

    numerator-latitude := 0
    numerator-longitude := 0
    denominator := 0

    for each point,
        deltaX := x - point.x
        deltaY := y - point.y
        distSq := deltaX * deltaX + deltaY * deltaY
        weight := 1 / distSq

        numerator-latitude += weight * point.latitude
        numerator-longitude += weight * point.longitude
        denominator += weight

    return (numerator-latitude / denominator, numerator-longitude / denominator)

Tento kód se dá relativně jednoduchou aproximaci. Pokud můžete být přesnější informace o způsobu, jakým projekce narušuje zeměpisných souřadnic, budete pravděpodobně dělat mnohem lépe.

Odpovězeno 05/08/2008 v 06:48
zdroj uživatelem

hlasů
2

V pořádku. Z teoretického hlediska, vzhledem k tomu, že ke zkreslení je „svévolné“, a každé řešení vyžaduje, abyste model tohoto libovolný zkreslení, můžete samozřejmě nemůže dostat „odpověď“. Avšak každé řešení bude zahrnovat uložení (většinou nepřímo) určitý model zkreslení, které může nebo nemusí odrážet realitu situace.

Vzhledem k tomu, zdá se, že největší zájem o modely, které předpokládají, že nějaký místní kontinuity mapování zkreslení, nejzřejmější volbou je ten, že jste již vyzkoušeli: lineární interpolaton mezi nejbližšími body. Přesahujícímu operace bude vyžadovat sofistikovanější matematické a numerické znalosti analýzy.

Jste nesprávné, nicméně, v předpokladu nelze rozšířit to více bodů. Můžete pomocí nejméně-čtvercový chyba přístupu. Najít lineární odpověď, která minimalizuje chybu ostatních bodů. Toto je pravděpodobně nejvíce přímočaré prodloužení. Jinými slovy, přijmou 5 nejbližších bodů a pokusit se přijít s lineární aproximace, která minimalizuje chybu těchto bodech. A použít jej. Chtěl bych zkusit to příště.

Pokud to nebude fungovat, pak je předpoklad linearity v oblasti N bodů je přerušeno. V tomto okamžiku budete muset aktualizovat buď kvadratické nebo kubický model. Matematický dostane hektické v tomto bodě.

Odpovězeno 05/08/2008 v 16:47
zdroj uživatelem

hlasů
0

Hmmm. Možná jsem něco chybí o otázku zde, ale pokud máte dlouhé / lat informace, máte také směr na sever?

Zdá se, že je třeba mapovat geodetické souřadnice promítané souřadnicovému systému. Například osgb WGS84.

Matematika podílejí je non-triviální, ale kód vyjde jen jeho pár řádků. Kdybych měl více času budu psát víc, ale musím si sprchu, takže budu nudná a odkaz na wikipedia vstup, který je docela dobrý.

Poznámka: Post sprcha upravovat.

Odpovězeno 05/08/2008 v 06:21
zdroj uživatelem

hlasů
0

Problém je, že koule může být zkreslený několik způsobů, a mají všechny tyto body známé na rovníku, řekněme, zvyklý pomůže mapovat body dál.

Potřebujete lepší ‚blízké‘ body, pak můžete předpokládat, tyto tři body jsou v rovině s čtvrtá a to interpolace --knowing že vzdálenost délek je funkce, není konstantní.

Odpovězeno 05/08/2008 v 06:20
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more