2009-03-04 68 views
7

Tôi đang thiết kế ngược ứng dụng trực quan hóa giao thông. Tôi cần phải tìm ra vĩ độ cho nguồn gốc của nguồn cấp dữ liệu của họ. Cụ thể những gì XY 0,0 là. Các công thức duy nhất tôi đã tìm thấy tính toán khoảng cách giữa hai điểm, hoặc vị trí của một vòng bi/khoảng cách.Làm cách nào để chuyển đổi tọa độ thành Latitude & Kinh độ?

Họ sử dụng XY để hiển thị bản đồ trong một ứng dụng rất cũ. XY là trong FEET.

tôi có các tọa độ:

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 

tôi cần phải tìm hiểu những gì vĩ độ và kinh độ của x=0, y=0 là gì và những gì công thức sẽ được tìm thấy điều này.

Chúng có hai nguồn cấp dữ liệu, một nguồn cấp dữ liệu hiện tại nhiều hơn loại kia. Nguồn cấp dữ liệu có dữ liệu mới nhất KHÔNG bao gồm vĩ độ, kinh độ, nhưng chỉ có XY. Tôi cố gắng ngoại suy dựa trên dữ liệu ít hơn, nhưng càng nhiều thông tin (bao gồm lat, lon) feed 0,0 là vì vậy tôi chỉ đơn giản có thể chuyển đổi tọa độ XY của nguồn cấp dữ liệu (hiện tại) sang vĩ độ và kinh độ.

+0

lý do tại sao giá trị x của bạn không phải là tiêu cực khi bạn có kinh độ tiêu cực? –

+0

Đây là một câu hỏi rất khó hiểu. X và Y có khoảng cách giữa Bắc và Nam từ điểm vĩ độ/điểm đã cho không? – slacy

+0

... hoặc là tọa độ bản đồ vĩ độ/dài và x/y là tọa độ trên một số bitmap lớn không? – Jaanus

Trả lời

5

Yêu cầu họ những gì hệ thống tọa độ mà họ đang sử dụng! (hoặc nếu bạn có tập dữ liệu từ một số cơ sở dữ liệu, hãy xem siêu dữ liệu cho tập dữ liệu và nó sẽ cho bạn biết. Nếu không tôi sẽ hoài nghi về giá trị của nó)

Rất có thể đây là một trong số state plane coordinate systems. Chúng dành cho các khu vực địa phương của trái đất (loại giống như UTM) và thường được sử dụng để khảo sát.

Bạn có thể sử dụng CORPSCON (hoặc các chương trình GIS khác; ExpertGPS sẽ thực hiện việc này nếu bạn có Gói tùy chọn GIS nhưng không miễn phí. Tôi quên liệu GPSBabel có chuyển đổi) hay không. hệ thống. Bạn cũng sẽ cần phải biết được tọa độ nào là datum tọa độ. WGS84 và NAD83 rất gần nhưng NAD27 thì khác.

+0

+1 dành riêng cho Hoa Kỳ, vì OP đã có thời gian dài ở Seattle. Câu trả lời chung chung được bình chọn nhiều nhất vẫn tốt vì một số người trong chúng ta sống ở nơi khác;) – MarkJ

6

Có nhiều hệ tọa độ khác nhau. Bạn cần tìm hiểu hệ thống tọa độ cho cả vĩ độ/vĩ độ (ví dụ: WGS84, v.v.) và đầu tiên của x/y (ví dụ: một số loại hệ thống dự kiến ​​có thể).

Khi bạn có thông tin đó, có một số công cụ bạn có thể sử dụng để thực hiện chuyển đổi và thao tác. Một ví dụ (của một thư viện mã nguồn mở miễn phí) là proj4.

+2

+1. Đáng nói là proj4 là mã nguồn mở miễn phí. – MarkJ

+0

Làm tốt điểm. – luapyad

+0

Tôi đã sử dụng Proj.4 cho một cái gì đó như thế này - rất khuyến khích. –

9

Nếu bạn nhìn vào 2 dòng đầu tiên của dữ liệu, và trừ các vĩ độ

47.7044 - 47.7741 = -0.06972 degrees 

Có 60 hải lý mỗi mức độ vĩ độ, và 6076 feet mỗi hải lý.

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

Trừ hai 'Y' giá trị:

260662 - 286031 = 25,409 ft 

Vì vậy, thực sự mà dường như để chứng minh giá trị X và Y là ở chân.

Nếu bạn thực hiện bất kỳ các giá trị Y, và chuyển đổi trở lại độ, ví dụ

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

Vì vậy, trừ những giá trị từ vĩ độ của (47,70 và 47,77) cung cấp cho bạn rất gần với chính xác 47 độ, đó sẽ là điểm y = 0 của bạn.

Đối với kinh độ, một mức độ là 60 hải lý ở đường xích đạo và 0 dặm ở hai cực. Vì vậy, đối với số dặm mỗi mức độ phải được nhân với cosin của vĩ độ, vì vậy khoảng cos (47 độ), hoặc 0,68. Vì vậy, thay vì 6076 nm mỗi độ, nó là khoảng 4145 nm.

Vì vậy, cho các giá trị X,

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

Những X số tăng như tăng vĩ độ (ít tiêu cực), vì vậy tôi tin rằng bạn nên thêm 5.1 độ, có nghĩa là điểm X cơ sở là khoảng

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

Đây gần bằng vị trí của Spokane WA.

Vì vậy, cho X = 1.280.532, Y = 211374

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

Đó là tương đương với các dữ liệu được 47,57 và -122,29

Phương sai có thể là do các dự báo khác nhau - X, hệ thống Y có thể là một "chiếu" phẳng như trái ngược với lat/long áp dụng cho một hình cầu? Vì vậy, để được chính xác bạn chưa có thể cần toán học nâng cao hơn hoặc thư viện mã nguồn mở :)

Câu hỏi này cũng có thể hữu ích, nó có chứa mã để tính khoảng cách vòng tròn lớn:

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

+0

Công cụ back-of-envelope này sẽ là OK nếu tên miền không quá lớn và bạn không cần độ chính xác rất cao – MarkJ

+0

Có, hiện tại chỉ cần cố gắng hiểu rõ dữ liệu. Đó là toán học khá cơ bản liên quan, tính toán khoảng cách vòng tròn lớn. – MikeW

+2

Tôi thực sự sẽ không khuyên bạn nên cách tiếp cận này, nó thực sự khá đáng ngạc nhiên như thế nào lớn các lỗi được trên mặt đất nếu tính toán thích hợp không được sử dụng. – Cruachan

0

Over here, I said this:

Trong Java, tôi sẽ sử dụng OpenMap converter từ biểu hiện của một điểm trong UTM một sử dụng Latitude và Longitude (giả sử một ellipsoid WGS-84 được dùng phổ biến nhất trong GPS).

OpenMap là nguồn mở và tôi sẽ đăng liên kết đến trang tải xuống của họ nhưng họ có một kịch bản giấy phép ngắn trong quá trình thực hiện. Vì vậy, để tránh bị thô lỗ, tôi sẽ không liên kết sâu. Thay vào đó, hãy truy cập their homepageclick Downloads.

Điều đó sẽ giải quyết vấn đề của bạn trực tiếp hoặc ít nhất là hướng bạn tới một thuật toán hữu ích.

0

Tôi đã sử dụng số điện thoại gPoint PHP class của Brenor Brophey để thực hiện việc này trong một vài trường hợp. Kết quả vững chắc, mã GPL và dễ triển khai. Được đề xuất.

1

Bạn đã có lời khuyên tốt về các hệ thống tọa độ đã có, vì vậy tôi sẽ chỉ kêu gọi thư viện mà tôi đã sử dụng với thành công lớn trong quá khứ.

Geotrans được Bộ Quốc phòng Hoa Kỳ chấp thuận để bạn có thể chắc chắn rằng nó được kiểm tra kỹ lưỡng. Bạn có thể lấy nó từ đây:

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

Đó có thể không phải là liên kết phù hợp với trang đó nói về ứng dụng, không phải thư viện. Tôi hy vọng thư viện nằm trong gói Nhà phát triển. Các điều khoản cấp phép rất tự do khỏi bộ nhớ, nhưng hãy đảm bảo bạn xem lại các điều khoản trước khi sử dụng nó về mặt thương mại.

Edit:

Một cuộc thảo luận thú vị về cấp phép Geotrans có thể được tìm thấy ở đây:

http://www.mail-archive.com/[email protected]/msg39263.html 
Các vấn đề liên quan