Jak zmapować szerokość / długość geograficzna na zniekształconym mapie?

głosy
22

Mam kilka par szerokości / długości, które są mapowane do znanych współrzędnych x / y (na mapie geograficznej zniekształcony).

Wtedy mam parę jeszcze jedna szerokość / długość geograficzna. Chcę wykreślić ją na mapie jako najlepszy możliwy jest. Jak mogę to zabrać?

Początkowo postanowiłem stworzyć układ równań liniowych dla trzech najbliższych lat / długich punktów i obliczyć transformację z nich, ale to nie działa dobrze w ogóle. Ponieważ jest to system liniowy, nie mogę użyć więcej pobliskich punktów.

Nie można zakładać, North znajduje się: wszystko co masz, to istniejące lat / długo-> X / Y odwzorowania.

EDIT: nie jest to projekcja Mercator, lub coś podobnego. To arbitralnie zniekształcony dla czytelności (myślę metro mapa). Chcę używać tylko najbliższe 5 do 10 mapowania tak, że zniekształcenie na innych częściach mapy nie wpływa na odwzorowanie staram się obliczyć.

Ponadto, cała mapa jest w bardzo małym obszarze geograficznym, więc nie ma potrzeby martwić się o świecie - założenia płaskim ziemi są wystarczająco dobre.

Utwórz 05/08/2008 o 05:55
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
8

Czy są jakieś bardziej szczegółowe informacje dotyczące rodzaju zniekształceń? Jeśli, na przykład, twoje długości i szerokości geograficzne są „zniekształcone” na swojej mapie 2D przy użyciu odwzorowania Merkatora, matematyka konwersji jest łatwo dostępny .

Jeśli mapa jest zniekształcony naprawdę arbitralnie, istnieje wiele rzeczy można spróbować, ale najprostsze byłoby prawdopodobnie do obliczenia średniej ważonej z istniejących przekształceń punktowych. Twoje wagi może być odwrotny do kwadratu odległości X / Y z nowego punktu do każdego z istniejących punktów.

Niektóre Pseudokod:

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)

Kod ten daje stosunkowo proste przybliżenie. Jeśli można być bardziej precyzyjny o sposób projekcja zniekształca współrzędne geograficzne, prawdopodobnie można zrobić znacznie lepiej.

Odpowiedział 05/08/2008 o 06:48
źródło użytkownik

głosy
2

W porządku. Z teoretycznego punktu widzenia, biorąc pod uwagę, że zakłócenie jest „arbitralny”, a każde rozwiązanie wymaga Model ten arbitralny zniekształcenia, to oczywiście nie może uzyskać „odpowiedź”. Jednak każde rozwiązanie będzie obejmować nałożenie (najczęściej niejawnie) jakiś model zniekształcenia, które mogą lub nie mogą odzwierciedlać rzeczywistej sytuacji.

Ponieważ wydaje się być najbardziej zainteresowany w modelach, które wstępnie uznał jakąś lokalną ciągłości odwzorowania zniekształceń, najbardziej oczywistym wyborem jest jeden już próbowałem: liniowy interpolaton pomiędzy najbliższymi punktami. Idąc dalej, że będzie wymagać bardziej wyrafinowane matematyczne i numeryczne wiedzę analizy.

Jesteś błędne, jednak w przypuszczenia nie można poszerzyć o tym więcej punktów. Można za pomocą najmniejszych kwadratów podejście błędzie. Znajdź odpowiedź liniowy, który minimalizuje błąd w innych punktach. Jest to prawdopodobnie rozszerzenie najbardziej prosta. Innymi słowy, należy wykonać 5 najbliższe punkty i starają się wymyślić aproksymacji liniowej, który minimalizuje błąd w tych punktach. I używać. Chciałbym spróbować następnym.

Jeśli to nie zadziała, to założenie liniowości nad obszarem punktów N jest zepsuty. W tym momencie musisz uaktualnić albo kwadratowego lub sześciennego modelu. Matematyka będzie się gorączkowy w tym punkcie.

Odpowiedział 05/08/2008 o 16:47
źródło użytkownik

głosy
0

Hmmm. Może ja czegoś brakuje tutaj o pytanie, ale jeśli masz długie / łac informacji, masz również kierunek północy?

Wydaje trzeba map geodezyjnych współrzędnych do projektowanego układu współrzędnych. Na przykład OSGB WGS84.

Matematyka zaangażowane jest nietrywialne, ale kod wysunie się tylko kilka linii. Gdybym miał więcej czasu będę pisać więcej, ale muszę prysznic więc będę nudny i link do wikipedia wejścia, który jest bardzo dobry.

Uwaga: prysznic post edytowany.

Odpowiedział 05/08/2008 o 06:21
źródło użytkownik

głosy
0

problemem jest to, że kula może być zniekształcony wiele sposobów, a mając te wszystkie znane punkty na równiku, powiedzmy, przyzwyczajenie pomóc map punkty dalej.

Trzeba lepszych punktów „bliskie”, to można założyć, te trzy punkty są na płaszczyźnie z czwartym i zrobić interpolacji --knowing że odległość od długości geograficznej jest funkcją, a nie stały.

Odpowiedział 05/08/2008 o 06:20
źródło użytkownik

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