Thứ tự ưu tiên viết các bộ dữ liệu vĩ độ và kinh độ trong các dịch vụ GIS


144

Khi làm việc với mã nguồn GIS, bạn thường cần phải viết các bộ tọa độ vĩ độ và kinh độ.

Ví dụ: trong các liên kết Google Maps (123, 456):

http://maps.google.com/maps/ms?msid=214518704716144912556.00046d7689a99e95b721c&msa=0&ll=123,456&spn=0.007996,0.026865

Đó là thứ tự ưu tiên (và tại sao?)

  • kinh độ vĩ độ

  • kinh độ vĩ độ

Tôi đã thấy cả hai được sử dụng trong các hệ thống khác nhau và tôi hy vọng sẽ tìm thấy một số bằng chứng để gắn bó với hệ thống khác.

Có một thực hành tiêu chuẩn, và nếu vậy, nó là gì / chúng là gì?


2
thay vì thứ tự ưu tiên, bạn có thể kiểm tra tổng hợp các trường hợp: macwright.org/lonlat
golimar

3
Đó là latitude, longitudethứ tự
onmyway133

1
Tôi đang bỏ phiếu để đóng câu hỏi này vì nó không phải là về lập trình mà là về địa lý. Nó cũng là một câu hỏi dựa trên ý kiến.
TylerH

1
@MikkoOhtamaa Sự khác biệt là câu hỏi của bạn không hỏi thứ tự được yêu cầu là gì đối với một đặc điểm kỹ thuật cụ thể (có thể chỉ là ngoài chủ đề như một yêu cầu về thông tin tài liệu ngoài trang web), mà là phương pháp 'ưa thích' là [ nói chung ]. Những thay đổi ưa thích dựa trên người bạn hỏi và mục đích / bối cảnh sử dụng. Như các câu trả lời ở đây đã chỉ ra, cả hai thứ tự đều có một lượng đáng kể. Sau đó, vấn đề về quan hệ lập trình vẫn hoàn toàn không được giải quyết.
TylerH

1
@MikkoOhtamaa Tôi không có vấn đề gì với các câu hỏi về GIS trên Stack Overflow. Đây không phải là một câu hỏi về GIS; đó là câu hỏi "làm thế nào để tôi đặt hàng vĩ độ / kinh độ" ... thậm chí không có một ứng dụng GIS cụ thể nào bạn đang yêu cầu. Câu hỏi này vẫn dựa trên quan điểm (bất kỳ câu hỏi nào yêu cầu "phương pháp ưa thích" là dựa trên quan điểm), quá rộng (bối cảnh, kịch bản hoặc ứng dụng nào bạn đang hỏi về? Như các câu trả lời cho thấy, nó khác nhau dựa trên các tiêu chí đó), và không phải về lập trình (vĩ độ và kinh độ không phải là thuật ngữ lập trình mà là thuật ngữ địa lý).
TylerH

Câu trả lời:


210

EPSG: 4326 nói rõ rằng thứ tự tọa độ phải là vĩ độ, kinh độ. Nhiều gói phần mềm vẫn sử dụng thứ tự kinh độ, vĩ độ. Tình trạng này đã tàn phá không thể tưởng tượng được về thời hạn dự án và sự tỉnh táo của lập trình viên.

Hướng dẫn tốt nhất người ta có thể đưa ra là nhận thức đầy đủ về thứ tự trục dự kiến ​​của từng thành phần trong ngăn xếp phần mềm của bạn. PostGIS mong đợi lng / lat. WFS 1.0 sử dụng lng / lat, nhưng WFS 1.3.0 lại theo tiêu chuẩn và sử dụng lat / lng. GeoTools mặc định là lat / lng nhưng có thể bị ghi đè bằng thuộc tính hệ thống.

Các tài liệu GeoTools về lịch sử và giải thích về vấn đề này đáng để đọc: http://docs.geotools.org/latest/userguide/l Library / media / order.html


6
Tôi hiếm khi xem như câu trả lời trên SO.com trong đó nêu rõ lý do tại sao điều này tốt. Nhịp đập ra khỏi những câu trả lời "bởi vì MongoDB sử dụng nó".
Mikko Ohtamaa

1
Liên kết của bạn không đồng ý với bạn; Trong cơ sở dữ liệu EPSG, 4326 ánh xạ tới CRS địa lý theo thứ tự trục (vĩ độ, kinh độ). Tuy nhiên, hầu hết các phần mềm trong lĩnh vực này đều hiểu EPSG: 4326 là CRS địa lý với thứ tự trục (kinh độ, vĩ độ), bởi vì các thông số kỹ thuật OGC cũ được thiết kế theo cách đó.
Aaron McIver

7
Hai câu đầu tiên từ câu trả lời của tôi: EPSG: 4326 nói rõ rằng thứ tự tọa độ phải là vĩ độ, kinh độ. Nhiều gói phần mềm vẫn sử dụng thứ tự kinh độ, vĩ độ. Điều đó có giống hệt nhau không?
Shane

5
Nếu bất kỳ ai khác có vấn đề với Google Maps và cung cấp tệp KML cho nó, thứ tự là Kinh độ / Vĩ độ !! Không có tài liệu nào cho tệp KML nói điều này !!
Turnerj

2
"Không có tài liệu nào cho tệp KML nói điều này" là không chính xác. developers.google.com/kml/documentation/kmlreference#point "Một bộ dữ liệu duy nhất bao gồm các giá trị dấu phẩy động cho kinh độ, vĩ độ và độ cao (theo thứ tự đó)."
tmcw

28

Thứ tự ưa thích là theo quy ước latitude, longitude. Điều này có lẽ được tiêu chuẩn hóa bởi Tổ chức Hàng hải Quốc tế như đã báo cáo ở đây . Google cũng sử dụng thứ tự này trong Bản đồTrái đất . Tôi nhớ thứ tự này bằng cách nghĩ về thứ tự chữ cái của latitude, longitude.


12
Ngoại trừ trong các tệp KML. Có tọa độ được lưu dưới dạng lng, lat, alt; có lẽ bởi vì điều đó có thể được dịch sang x, y, z
Wouter van Nifterick

23

Thứ tự đúng là kinh độ, vĩ độ, trong hầu như tất cả các ứng dụng GIS chuyên nghiệp, như trong toán học thông thường (nghĩa là f(x ,y, z)). Tiêu chuẩn GeoJSON khá điển hình và cô đọng:

The order of elements must follow x, y, z order
(easting, northing, altitude for coordinates in a 
projected coordinate reference system, or longitude,
latitude, altitude for coordinates in a geographic
coordinate reference system).

Điều tương tự cũng đúng với các tiêu chuẩn Hiệp hội không gian địa lý mở chính (WKT và WKB, và các phần mở rộng như EWKB). Tương tự như vậy, Google có thể đưa ra thứ tự bằng Lat / Lon để làm cho nó trở nên quen thuộc hơn với những người dùng lớn lên với tùy chỉnh đó (nghĩa là từ các tiêu chuẩn điều hướng như IMO, thay vì tính toán.) Nhưng bản thân tiêu chuẩn KML giống như tất cả các hệ thống GIS khác:

The KML encoding of every kml:Location and coordinate
tuple uses geodetic longitude, geodetic latitude, and
altitude (in that order).

Tốt quy tắc của ngón tay cái: nếu bạn biết những gì một tuple là và lập trình, bạn nên sử dụng lon, lat. Tôi thậm chí sẽ nói điều này được áp dụng nếu người dùng cuối (nói một phi công hay một thuyền trưởng tàu) sẽ thích xem các đầu ra trong lat, lon. Bạn có thể chuyển đổi thứ tự trong giao diện người dùng của mình nếu cần, nhưng phần lớn dữ liệu của bạn (shapefiles, Geojson, v.v.) sẽ theo thứ tự Cartesian bình thường.


4
Tôi thấy một số bất đồng ở đây: Tôi HAI lựa chọn để chọn - quá nhiều!
Mikko Ohtamaa

6
Bạn đọc cần lưu ý rằng ISO 6709 nói rõ rằng bạn nên luôn sử dụng định dạng [lat, lon] trong bất kỳ giao diện người dùng nào và nó không - như có thể được suy luận - chỉ đơn thuần là vấn đề sở thích cá nhân.
Iain Collins

9

Theo quy ước trong 'đời thực', khi đưa ra một vị trí, vĩ độ (tức là Bắc / Nam) luôn được đặt ở vị trí thứ nhất, ví dụ 20 ° N 56 ° W (mặc dù, điều này không tuân theo quy ước thông thường nếu nghĩ về Cartesian tiêu chuẩn lưới điện); tương tự, tất cả các tọa độ trên Wikipedia đều tuân theo quy ước này (ví dụ: xem vị trí cho Southampton: http://en.wikipedia.org/wiki/Southampton ). Để tránh nhầm lẫn, đặc biệt là khi các đơn vị không được bao gồm, tôi luôn khuyên rằng vĩ độ được đưa ra đầu tiên trong một tuple.


9

Cá nhân tôi chưa bao giờ thấy bất cứ điều gì ngoài vĩ độ theo sau là kinh độ.

Và, khi sử dụng + và - thay vì N và S, nó luôn luôn là + là N và - là S.

Tôi đã quan sát thấy sự biến đổi khi sử dụng + và - cho E và W. Nói chung + là E và - đã là W. Tuy nhiên, trên các ứng dụng cũ hơn khi chúng giao dịch quá mức với kinh độ W, tôi đã thấy + là W và - là E .

Hy vọng rằng bạn sẽ không phải xử lý các ứng dụng cũ.


Thật dễ dàng quan sát khi bạn làm việc với các ứng dụng trên toàn thế giới.
Daniel Antunes Pinto

Chỉ cần nhập bất kỳ cặp tọa độ kinh độ và vĩ độ nào vào bản đồ Google và bạn sẽ thấy nó diễn giải nó dưới dạng (dài, lat) chứ không phải ngược lại. Đó là một ví dụ về một hệ thống được sử dụng rất rộng rãi.
cazort

2
@cazort Vì bất cứ lý do gì, điều đó không xảy ra ở đây. Ví dụ, quê hương của tôi ở Eugene, Oregon là khoảng N 44.1, W 123.1. Nếu trong maps.google.com tôi nhập 44.1 -123.1, nó sẽ chuyển đến Eugene. Nếu tôi nhập -123.1 44, nó sẽ cho tôi biết nó không thể tìm thấy. Thật thú vị, mặc dù, nếu tôi nhập 123.1 W 44 N, nó sẽ tìm ra nó và đi đến Eugene, vì vậy có một số linh hoạt. Ngoài ra tài liệu tham khảo.com / công nghệ / xuất hiện để chỉ ra tht lat / long là thứ tự ưu tiên. Ngoài ra, với giá trị của nó, Google Earth sử dụng lat / long.
Terry

5

Ngoài thông số GeoJSON, mà những người khác đã đề cập, còn có các trường hợp thực tế khác, theo đó kinh độ, thứ tự latitide được khuyến nghị, thậm chí là bắt buộc - ví dụ: lập chỉ mục không gian địa lý trong MongoDB . Nếu bạn nhận được thứ tự sai ở đó, các truy vấn của bạn sẽ trả về kết quả sai, như thể được thực hiện lại một bộ dữ liệu được chuyển đổi.


5

Vì vậy, thứ tự ưu tiên phụ thuộc vào sở thích cá nhân!

Vĩ độ đã đến đầu tiên; Equinox đã được biết đến với milimet, vì ngày "mặt trời đi qua đường xích đạo"; vào tháng 3, giao nhau từ S đến N và tháng 9 từ N đến S. Câu hỏi duy nhất có thể là liệu Xích đạo có nên là 0 hay 90 độ hay không. Bằng cách lấy 0 độ, góc giữa thiên đỉnh thẳng đứng và giữa trưa trên xích đạo là vĩ độ của một địa điểm, ở mọi nơi trên hành tinh. Các vĩ độ chính, hoặc song song nguyên tố có hiệu quả xác định chính nó.

Kinh độ chỉ có thể được thỏa thuận. Anh đưa ra một giải thưởng kinh độ. Anh cần tàu của mình để biết họ đang ở đâu và cần bản đồ tốt hơn. Harrison ( http://www.youtube.com/watch?v=T-g27KS0yiY ) đã tạo ra một đồng hồ bấm giờ biển chính xác; họ đã gửi những chuyến đi hành trình lập bản đồ, ví dụ như James Cook 1770. Do đó, Anh tuyên bố Kinh tuyến gốc bằng cách sử dụng Greenwich là 000deg cho bản đồ của họ. Sau 100 năm sử dụng, Prime Meridian đã được chấp nhận trên toàn thế giới vào năm 1884.

Ở Christopher Columbus, Latitude là con số duy nhất họ có. Chiến lược là đi ngang song song trước khi rẽ trái hoặc phải để đến đích; ngắm mây hay chim. Đo tốc độ trong các nút mỗi giờ là phổ biến nhưng không tính đến dòng điện. Có lẽ thành tựu lớn nhất của Columbus là bốn lần trở về nhà từ Tây Ấn. Không có điều đó, vùng đất anh khám phá không thể được thêm vào bản đồ.

Đọc "Kinh độ" của Dava Sobel (ISBN: 9800007214228)


1
Tôi nghĩ rằng anh ta có nghĩa là lập trình và với một tài liệu tham khảo kỹ thuật (nhưng tôi có thể bị nhầm lẫn). Bài học lịch sử là thú vị, mặc dù.
jww

1
Điều này không liên quan đến câu hỏi, nhưng chắc chắn thú vị. Cảm ơn :)
Mikko Ohtamaa

Nhưng nó thực sự có ý nghĩa, vì nếu chỉ sử dụng tọa độ bản đồ, sẽ không có vấn đề gì khi thứ tự sẽ là kinh độ, vĩ độ, như trong X, Y; sự nhầm lẫn chỉ tồn tại vì hàng trăm năm ưu tiên nói (và nghe) vĩ độ, kinh độ ở khắp mọi nơi.
Antti Haapala

5

ISO 6709 tiêu chuẩn hóa việc liệt kê thứ tự là vĩ độ, kinh độ vì lý do an toàn. Lời giải thích của Graham ở trên nghe cũng đúng với tôi. Ai đó đề nghị câu trả lời này không liên quan đến câu hỏi - nó hoàn toàn là như vậy, và giải thích tại sao thứ tự thường được đưa ra là vĩ độ, kinh độ.

Đây là cách nó đã được liệt kê cho tuy nhiên các nhà điều hướng lâu đã sử dụng hệ thống; thay đổi điều đó bây giờ sẽ gây nhầm lẫn, và như ISO gợi ý, có khả năng nguy hiểm. Các phần mềm GIS, như ArcMap, liệt kê chúng theo cách khác bởi vì đó là quy ước điển hình cho các cặp tọa độ x, y. Vĩ độ là y, kinh độ là x, vì vậy đó là cách Arc liệt kê chúng.


1

Kinh độ rồi Vĩ độ (lon, lat).

Khi chiếu đến kinh độ Mercator xác định hướng x và vĩ độ xác định hướng y. Hầu hết các thư viện hình học sử dụng nghiêm ngặt định dạng này (lon, lat) vì đây là cách trực quan nhất để nghĩ về tọa độ địa lý trong mặt phẳng 2D.


3
Vậy, nếu đó là cách suy nghĩ trực quan nhất, tại sao blog Google Earth có tên là Lat-Long Blog trong khi họ sử dụng lon-lat trong KML?
theta

1
Về cơ bản, đó là các nhà điều hướng theo truyền thống đã sử dụng thứ tự lat-lon, vì vậy nếu bạn gặp rắc rối với thứ tự đó, bạn có thể làm hỏng việc điều hướng của mình. Vì vậy, google đang sử dụng truyền thống cho một blog và thứ tự mặt phẳng 2D cho cấu trúc dữ liệu của họ. @mkennedy trả lời câu hỏi này hay nhất trong câu trả lời của cô cho cùng một câu hỏi: gis.stackexchange.com/questions/6037/ chủ
David
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.