2009-03-04 19 views
7

Jestem inżynierią wsteczną w aplikacji do wizualizacji transportu. Muszę określić szerokość geograficzną źródła danych. W szczególności, co to jest XY 0,0. Jedyne formuły, które znalazłem, obliczają odległość między dwoma punktami lub położenie łożyska/odległości.Jak przekonwertować współrzędne na szerokość i długość geograficzną?

Używają XY, aby wyświetlić mapę w bardzo starej aplikacji. XY jest w stopach.

mam te współrzędne:

47.70446615506108, -122.34469839507263: x=1268314, y=260622 
47.774182540800616,-122.3412994737105: x=1269649, y=286031 
47.60024792289405, -122.32767331735774: x=1271767, y=222532 
47.57012494413499, -122.29129609983679: x=1280532, y=211374 

muszę dowiedzieć się szerokość i długość geograficzna x=0, y=0 jest i co formuła byłoby znaleźć na to uwagę.

Posiadają dwa kanały danych, jeden jest bardziej aktualny niż drugi. Kanał z najbardziej aktualnymi danymi NIE zawiera szerokości, długości geograficznej, ale tylko XY. Próbuję ekstrapolować na podstawie ich mniej aktualnego, ale bardziej pouczającego (zawierającego lat, lon) strumienia danych, który wynosi 0,0, więc mogę po prostu przekonwertować ich (bardziej aktualne) współrzędne XY kanału danych na szerokość i długość geograficzną.

+0

dlaczego twoje wartości x nie są negatywne, gdy masz negatywny geograficzną? –

+0

To bardzo mylące pytanie. Czy X i Y dystansują północ i południe od danego punktu lat/lon? – slacy

+0

... czy są to współrzędne długich/długich map, a x/y są współrzędnymi na jakiejś ogromnej bitmapie? – Jaanus

Odpowiedz

5

Zapytaj ich, co układ współrzędnych, z którego korzystają! (lub jeśli masz zbiór danych z jakiejś bazy danych, spójrz na metadane zbioru danych i powinieneś powiedzieć, inaczej sceptycznie podchodzę do jego wartości)

Najprawdopodobniej jest to jeden z state plane coordinate systems. Są one przeznaczone do zlokalizowanych obszarów Ziemi (w rodzaju UTM) i są często wykorzystywane do pomiarów.

Można użyć CORPSCON (lub inne programy GIS; ExpertGPS będzie to zrobić, jeśli masz możliwość GIS pakiet, ale nie za darmo zapomnę czy GPSBabel ma konwersji.) Do konwersji ac/długa i każdy z samolotu państwowego koordynować systemy. Musisz również wiedzieć, które współrzędne są w. WGS84 i NAD83 są bardzo blisko, ale NAD27 jest inny.

+0

+1 za bycie specyficznym dla USA, ponieważ OP dał długi czas w Seattle. Najgłośniejsza ogólniejsza odpowiedź jest nadal dobra, ponieważ niektórzy z nas mieszkają gdzie indziej;) – MarkJ

6

Istnieje wiele różnych układów współrzędnych. Musisz dowiedzieć się, jakie są układy współrzędnych zarówno dla łacińskiego (np. WGS84 itd.), Jak i dla x/y (prawdopodobnie np. Jakiś rodzaj przewidywanego systemu).

Po uzyskaniu tych informacji dostępnych jest kilka narzędzi do wykonywania konwersji i manipulacji. Jednym z przykładów (wolnej biblioteki kodującej open source) jest proj4.

+2

+1. Warto wspomnieć, że proj4 to darmowy open source. – MarkJ

+0

Dobra uwaga - zrobione. – luapyad

+0

Użyłem Proj.4 do czegoś takiego - bardzo polecam. –

9

Jeśli spojrzeć na pierwsze 2 linie danych i odjąć szerokość geograficzną

47.7044 - 47.7741 = -0.06972 degrees 

Istnieje 60 mil morskich na stopień szerokości geograficznej i 6076 stóp na milę.

-.06972 * 60 * 6076 = 25,415 ft 

odjęcie wartości dwóch 'Y':

260662 - 286031 = 25,409 ft 

Więc rzeczywiście wydaje się, że do udowodnienia wartości X i Y są w stopach.

Jeśli wziąć dowolną z wartości Y, i przekształcić z powrotem do stopni, na przykład

260622 ft/(6076 ft/nm)/(60 nm/degree) = .71 
286031 ft/6076/60 = .78 

więc odejmując te wartości z szerokościach geograficznych (47.70 i 47.77) daje bardzo blisko dokładnie 47 stopni, który powinien być twoim punktem y = 0.

Dla długości geograficznej stopień wynosi 60 mil morskich na równiku i 0 mil na biegunach. Tak więc liczba mil na stopień musi być pomnożona przez cosinus szerokości geograficznej, czyli około cos (47 stopni) lub 0,68. Zatem zamiast 6076 nm na stopień, wynosi ona około 4145 nm.

Więc dla wartości X,

1268314 ft/(4145 ft/nm)/(60 nm/degree) = 5.10 degrees 
1269649 ft/4145/60 = 5.10 degrees 

nich wzrost X numery wraz ze wzrostem szerokości geograficznej (mniej negatywnych), więc wierzę, należy dodać 5,1 stopni, co oznacza, że ​​punkt X bazowej wynosi około

-122.3 + 5.1 = 117.2 West longitude for your x=0 point. 

To jest w przybliżeniu pozycja Spokane WA.

Wziąwszy pod uwagę X = 1280532, Y = 211374

Lat = 47 + (211374/6096/60) = 47.58 
Lon = -117.2 - (1280532/(6096 * cos(47.58))/60) = -122.35 

które jest w przybliżeniu równoważna do podanych danych 47.57 i -122,29

Wariancja może wynikać z różnych rzutach - X, Y System może być "spłaszczoną" projekcją w przeciwieństwie do szerokości/długości, która dotyczy projekcji sferycznej? Tak aby być dokładne może jeszcze potrzebować bardziej zaawansowanej matematyki lub tej biblioteki open source :)

To pytanie może być również pomocne, zawiera kod do obliczania koło wielkie dystanse:

Calculate distance between two latitude-longitude points? (Haversine formula)

+0

Ta strona z kopertą będzie w porządku, jeśli domena nie jest zbyt duża i nie potrzebujesz bardzo wysokiej dokładności. – MarkJ

+0

Tak, na razie tylko próbujesz zrozumieć dane. Jest to dość podstawowa matematyka, obliczająca wielkie odległości między okręgami. – MikeW

+2

Naprawdę nie poleciłbym tego podejścia, to naprawdę zaskakujące, jak duże są błędy w terenie, jeśli właściwe obliczenia nie są stosowane. – Cruachan

0

Over here, I said this:

W Javie, chciałbym użyć OpenMap converter z wyrażeniem punktu w UTM jeden za pomocą szerokości i długości geograficznej (zakładając elipsoidy WGS-84, który jest najczęściej stosowany w GPS).

OpenMap jest open source i chciałbym umieścić link do strony pobierania, ale mają one krótki skrypt licencji na drodze. Aby uniknąć bycia nieuprzejmym, nie będę miał głębokiego powiązania. Zamiast tego przejdź do their homepage i click Downloads.

To powinno rozwiązać problem bezpośrednio lub przynajmniej skierować cię w stronę użytecznego algorytmu.

0

Użyłem Brenor Brophey's gPoint PHP class, aby zrobić to przy kilku okazjach. Solidne wyniki, kod GPL i łatwe wdrożenie. Zalecana.

1

Masz już dobrą radę na temat układów współrzędnych, więc po prostu zadzwonię do biblioteki, z której korzystałem z dużym powodzeniem w przeszłości.

Geotrans jest zatwierdzony do użytku przez amerykański Departament Obrony, więc możesz być pewien, że jest dobrze przetestowany. Możesz go pobrać stąd:

http://earth-info.nga.mil/GandG/geotrans/index.html 

To może nie być właściwe łącze, ponieważ ta strona mówi o aplikacji, a nie bibliotece. Oczekuję, że biblioteka znajduje się w pakiecie deweloperów. Warunki licencjonowania były bardzo liberalne z pamięci, ale upewnij się, że zapoznałeś się z warunkami przed użyciem komercyjnym.

Edit:

Ciekawa dyskusja na licencji Geotrans można znaleźć tutaj:

http://www.mail-archive.com/[email protected]/msg39263.html 
Powiązane problemy