ลำดับที่ต้องการในการเขียน tuples ละติจูด & ลองจิจูดในบริการ GIS


144

เมื่อต้องรับมือกับซอร์สโค้ด GIS คุณมักจะต้องเขียนพิกัดละติจูดและลองจิจูดร่วมกัน

เช่นในลิงก์ Google Maps (123, 456):

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

คำสั่งซื้อใดที่ต้องการ (และเพราะเหตุใด)

  • ละติจูด, ลองจิจูด

  • ลองจิจูด

ฉันได้เห็นทั้งถูกใช้ในระบบต่าง ๆ และฉันหวังว่าจะพบหลักฐานบางอย่างที่จะติดกับอีกคนหนึ่ง

มีมาตรฐานการปฏิบัติและถ้าเป็นเช่นนั้นมันคืออะไร / พวกเขาคืออะไร?


2
แทนการสั่งซื้อที่ต้องการคุณสามารถตรวจสอบการรวบรวมกรณี: macwright.org/lonlat
golimar

3
มันเป็นlatitude, longitudeคำสั่ง
onmyway133

1
ฉันโหวตให้ปิดคำถามนี้เพราะมันไม่เกี่ยวกับการเขียนโปรแกรม แต่เกี่ยวกับภูมิศาสตร์ มันเป็นคำถามตามความคิดเห็น
TylerH

1
@ MikkoOhtamaa ข้อแตกต่างก็คือคำถามของคุณไม่ได้ถามว่าคำสั่งซื้อใดที่จำเป็นสำหรับข้อกำหนดทางเทคนิคเฉพาะ (ซึ่งอาจจะเป็นนอกหัวข้อเพื่อขอข้อมูลเอกสารนอกสถานที่) แต่เป็นวิธีที่ 'ต้องการ' คือ [ โดยทั่วไป ] การเปลี่ยนแปลงที่ต้องการคืออะไรขึ้นอยู่กับบุคคลที่คุณถามและวัตถุประสงค์ / บริบทของการใช้งาน ตามคำตอบที่แสดงไว้ที่นี่การเรียงลำดับทั้งสองมีการติดตามอย่างมาก ต่อจากนั้นปัญหาของความสัมพันธ์การเขียนโปรแกรมยังคงไม่ได้รับการแก้ไขทั้งหมด
TylerH

1
@MikkoOhtamaa ฉันไม่มีปัญหากับคำถาม GIS เกี่ยวกับ Stack Overflow นี่ไม่ใช่คำถาม GIS เป็นคำถาม "ฉันจะสั่งละติจูด / ลองจิจูดอย่างไร" ... ไม่มีแม้แต่แอปพลิเคชัน GIS ที่คุณต้องการ คำถามนี้ยังคงยึดตามความคิดเห็น (คำถามใด ๆ ที่ถามถึง "วิธีการที่ต้องการ" คืออิงตามความคิดเห็น) กว้างเกินไป (คุณกำลังถามบริบทบริบทหรือแอปพลิเคชันใดในขณะที่คำตอบแสดงว่ามันแตกต่างกันไปตามเกณฑ์เหล่านั้น) และไม่เกี่ยวกับการเขียนโปรแกรม (ละติจูดและลองจิจูดไม่ใช่คำศัพท์โปรแกรม แต่เป็นข้อกำหนดทางภูมิศาสตร์)
TylerH

คำตอบ:


210

EPSG: 4326 ระบุว่าคำสั่งพิกัดควรเป็นละติจูดลองจิจูด แพคเกจซอฟต์แวร์จำนวนมากยังคงใช้ลองจิจูดสั่งละติจูด สถานการณ์นี้ทำให้เกิดความหายนะที่ไม่อาจเกิดขึ้นได้ในวันครบกำหนดโครงการและสติผู้เขียนโปรแกรม

คำแนะนำที่ดีที่สุดที่เราสามารถทำได้คือต้องระวังลำดับแกนที่คาดหวังของแต่ละองค์ประกอบในสแต็กซอฟต์แวร์ของคุณ PostGIS คาดว่า lng / lat WFS 1.0 ใช้ lng / lat แต่ WFS 1.3.0 เลื่อนไปที่มาตรฐานและใช้ lat / lng GeoTools มีค่าเริ่มต้นเป็น lat / lng แต่สามารถแทนที่ได้ด้วยคุณสมบัติของระบบ

เอกสาร GeoTools เกี่ยวกับประวัติและคำอธิบายปัญหามีค่าต่อการอ่าน: http://docs.geotools.org/latest/userguide/library/referencing/order.html


6
ฉันไม่ค่อยเห็นคำตอบใน SO.com ซึ่งระบุว่าทำไมจึงเป็นเช่นนี้ เอาชนะอึออกจากคำตอบ "เพราะ MongoDB ใช้" คำตอบ
Mikko Ohtamaa

1
ลิงค์ของคุณไม่เห็นด้วยกับคุณ; ในฐานข้อมูล EPSG นั้น 4326 จะจับคู่แผนที่กับ CRS ทางภูมิศาสตร์ด้วยลำดับแกน (ละติจูด, ลองจิจูด) อย่างไรก็ตามซอฟต์แวร์ส่วนใหญ่ในเขตข้อมูลเข้าใจว่า EPSG: 4326 เป็น CRS ทางภูมิศาสตร์ที่มีลำดับแกน (ลองจิจูด, ละติจูด) เนื่องจากคุณสมบัติ OGC ดั้งเดิมได้รับการออกแบบมา
Aaron McIver

7
สองประโยคแรกจากคำตอบของฉัน: EPSG: 4326 ระบุไว้โดยเฉพาะว่าคำสั่งพิกัดควรเป็นละติจูดลองจิจูด แพคเกจซอฟต์แวร์จำนวนมากยังคงใช้ลองจิจูดสั่งละติจูด มันไม่เหมือนกันเหรอ?
เชน

5
หากใครมีปัญหากับ Google Maps และส่งไฟล์ KML ไปให้นั้นลำดับคือลองจิจูด / ละติจูด !! ไม่มีเอกสารสำหรับไฟล์ KML ที่กล่าวนี้ !!
Turnerj

2
"ไม่มีเอกสารสำหรับไฟล์ KML กล่าวว่าสิ่งนี้" ไม่ถูกต้อง developers.google.com/kml/documentation/kmlreference#point "สิ่งอันดับหนึ่งประกอบด้วยค่าจุดลอยตัวสำหรับลองจิจูดละติจูดและระดับความสูง (ตามลำดับ)"
tmcw

28

latitude, longitudeคำสั่งที่ต้องการคือโดยการประชุม นี้ก็คงจะได้มาตรฐานโดยองค์การทางทะเลระหว่างประเทศ ตามที่รายงานที่นี่ Google ยังใช้คำสั่งนี้ในแผนที่และEarthด้วย latitude, longitudeผมจำได้ว่าคำสั่งนี้โดยการคิดของลำดับตามตัวอักษรของ


12
ยกเว้นในไฟล์ KML มีพิกัดถูกเก็บเป็น lng, lat, alt; อาจเป็นเพราะนั่นสามารถแปลเป็น x, y, z
Wouter van Nifterick

23

ลำดับที่ถูกต้องคือลองจิจูดละติจูดในแอปพลิเคชั่น GIS มืออาชีพแทบทั้งหมดเนื่องจากอยู่ในคณิตศาสตร์ทั่วไป (เช่นf(x ,y, z)) มาตรฐาน GeoJSON นั้นค่อนข้างธรรมดาและรวบรัด:

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).

เช่นเดียวกับมาตรฐาน Open Geospatial Consortium หลัก (WKT และ WKB และส่วนขยายเช่น EWKB) Google อาจส่งคำสั่งใน Lat / Lon เพื่อให้ผู้ใช้ที่คุ้นเคยกับแบบกำหนดเองนั้น (เช่นจากมาตรฐานการนำทางเช่น IMO มากกว่าแบบคำนวณ) แต่มาตรฐาน KML นั้นเหมือนกับระบบ GIS อื่น ๆ :

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

ดีกฎของหัวแม่มือ: ถ้าคุณรู้ว่าสิ่งที่เป็น tuple และการเขียนโปรแกรมคุณควรจะใช้,lon latฉันก็จะพูดแบบนี้ในกรณีที่ผู้ใช้ของคุณ (พูดเป็นนักบินหรือกัปตันเรือ) จะชอบที่จะดูผลลัพธ์ใน,lat lonคุณสามารถเปลี่ยนคำสั่งซื้อใน UI ของคุณได้หากจำเป็น แต่ข้อมูลส่วนใหญ่ (รูปร่างไฟล์ geojson ฯลฯ ) ส่วนใหญ่จะอยู่ในลำดับคาร์ทีเซียนปกติ


4
ฉันเห็นความขัดแย้งบางอย่างที่นี่: ฉันเลือกได้สองแบบ - มากเกินไป!
Mikko Ohtamaa

6
ผู้อ่านควรทราบว่า ISO 6709 ระบุไว้อย่างชัดเจนว่าคุณควรใช้รูปแบบ [lat, lon] ใน UI ใด ๆ และไม่ใช่ - ตามที่อาจอนุมานได้ - เป็นเรื่องของการตั้งค่าส่วนตัว
เลนคอลลินส์

9

โดยการประชุมใน 'ชีวิตจริง' เมื่อให้ตำแหน่งละติจูด (เช่นเหนือ / ใต้) จะได้รับ 1 เสมอเช่น 20 ° N 56 ° W (แม้ว่าจะไม่เป็นไปตามการประชุมปกติหากคิดเกี่ยวกับมาตรฐานคาร์ทีเซียน ตาราง); ผู้ประสานงานทั้งหมดในวิกิพีเดียปฏิบัติตามอนุสัญญาฉบับนี้ (เช่นดูที่ตั้งของเซาแธมป์ตัน: http://en.wikipedia.org/wiki/Southampton ) เพื่อประหยัดความสับสนโดยเฉพาะอย่างยิ่งเมื่อไม่มีการรวมหน่วยฉันขอแนะนำเสมอว่าละติจูดจะได้รับอันดับที่ 1 ในอันดับ


9

โดยส่วนตัวฉันไม่เคยเห็นอะไรเลยนอกจากละติจูดตามด้วยลองจิจูด

และเมื่อใช้ + และ - แทนที่จะเป็น N และ S จะได้รับเสมอ + คือ N และ - คือ S

ฉันได้สังเกตความแปรปรวนเมื่อใช้ + และ - สำหรับ E และ W โดยทั่วไป + เป็น E และ - เป็น W อย่างไรก็ตามสำหรับแอปพลิเคชันรุ่นเก่าที่พวกเขาติดต่อกับลองจิจูดยาว W ฉันเห็น + เป็น W และ - เป็น E .

หวังว่าคุณจะไม่ต้องจัดการกับแอปพลิเคชันที่เก่า


สามารถสังเกตได้ง่ายเมื่อคุณทำงานกับแอปพลิเคชันทั่วโลก
Daniel Antunes Pinto

เพียงพิมพ์พิกัดลองจิจูดและละติจูดคู่ใด ๆ ลงใน Google maps แล้วคุณจะเห็นว่ามันแปลความหมายเป็น (ยาว, lat) ไม่ใช่ในทางกลับกัน นี่เป็นตัวอย่างของระบบที่ใช้กันอย่างแพร่หลาย
cazort

2
@cazort ไม่ว่าด้วยเหตุผลใดก็ตามนั่นไม่ได้เกิดขึ้นที่นี่ ตัวอย่างเช่นบ้านเกิดของฉันของยูจีนโอเรกอนอยู่ที่ประมาณ N 44.1, W 123.1 หากใน maps.google.com ฉันป้อน 44.1 -123.1 ไปที่ Eugene หากฉันป้อน -123.1 44 มันจะบอกว่าหาไม่พบ ที่น่าสนใจคือถ้าฉันป้อน 123.1 W 44 N มันเป็นตัวเลขและไปที่ยูจีนดังนั้นจึงมีความยืดหยุ่น นอกจากนี้Reference.com/technology/ …ก็ปรากฏขึ้นเพื่อระบุว่า lat / long เป็นคำสั่งที่ต้องการ นอกจากนี้สิ่งที่คุ้มค่า Google Earth ใช้ lat / long
เทอร์รี่

5

นอกเหนือจาก GeoJSON ข้อมูลจำเพาะซึ่งคนอื่น ๆ ที่ได้กล่าวแล้วมีกรณีการปฏิบัติอื่น ๆ ที่เส้นแวงคำสั่ง latitide แนะนำบังคับแม้ - เช่นการจัดทำดัชนีเชิงพื้นที่ใน MongoDB หากคุณได้รับการสั่งซื้อที่ไม่ถูกต้องแบบสอบถามของคุณจะส่งกลับผลลัพธ์ที่ผิดเช่นถ้าดำเนินการชุดข้อมูล transposed อีกครั้ง


5

ดังนั้นคำสั่งที่ต้องการขึ้นอยู่กับความชอบส่วนตัว!

ละติจูดมาก่อน Equinox นั้นรู้จักกันมานานนับพันปีเมื่อวันที่ "ดวงอาทิตย์ตัดผ่านเส้นศูนย์สูตร"; ในเดือนมีนาคมที่ข้ามจาก S ถึง N และ Sept จาก N ถึง S คำถามเดียวอาจเป็นได้ว่าเส้นศูนย์สูตรควรเป็น 0 หรือ 90 องศา เมื่อใช้ 0 องศามุมระหว่างแนวตั้งและแนวสุริยคติเที่ยงวันบน Equinox คือละติจูดของตำแหน่งทุกแห่งบนโลก ละติจูดที่สำคัญ, หรือไพร์มไพร์ไพร์มกำหนดได้อย่างมีประสิทธิภาพ

ลองจิจูดอาจเกิดจากข้อตกลงเท่านั้น สหราชอาณาจักรได้รับรางวัลลองจิจูด สหราชอาณาจักรต้องการเรือเพื่อทราบว่าพวกเขาอยู่ที่ไหนและต้องการแผนที่ที่ดีกว่า Harrison ( http://www.youtube.com/watch?v=T-g27KS0yiY ) ผลิตเที่ยงตรงทางทะเล; พวกเขาส่งการเดินทางการทำแผนที่รอบโลกอย่าง James Cook 1770 สหราชอาณาจักรจึงอ้างว่านายกรัฐมนตรีแห่ง Meridian โดยใช้ Greenwich เป็น 000deg สำหรับแผนที่ของพวกเขา หลังจากใช้งานมา 100 ปี Prime Prime ได้รับการยอมรับในระดับสากลในปี 1884

ในเวลาที่คริสโตเฟอร์โคลัมบัส Latitude เป็นหมายเลขเดียวที่มี กลยุทธ์คือการข้ามขนานก่อนเลี้ยวซ้ายหรือขวาสำหรับปลายทาง; ดูเมฆหรือนก การวัดความเร็วเป็นนอตทุก ๆ ชั่วโมงเป็นเรื่องปกติ แต่ไม่ได้คำนึงถึงกระแส บางทีความสำเร็จที่ยิ่งใหญ่ที่สุดของโคลัมบัสก็คือการกลับบ้านจาก West Indies สี่ครั้ง หากไม่มีสิ่งนั้นที่ดินที่เขาค้นพบจะไม่สามารถเพิ่มลงในแผนที่ได้

อ่าน "ลองจิจูด" โดย Dava Sobel (ISBN: 9780007214228)


1
ฉันคิดว่าเขาหมายถึงการเขียนโปรแกรมและมีการอ้างอิงทางเทคนิค (แต่ฉันอาจเข้าใจผิด) บทเรียนประวัติศาสตร์นั้นน่าสนใจ
jww

1
สิ่งนี้ไม่เกี่ยวข้องกับคำถาม แต่น่าสนใจอย่างแน่นอน ขอบคุณ :)
Mikko Ohtamaa

แต่มันก็สมเหตุสมผลถ้าเพียงใช้แผนที่พิกัดเท่านั้นมันจะไม่มีคำถามเลยว่าคำสั่งนั้นจะเป็นลองจิจูดลองจิจูดใน X, Y; ความสับสนเกิดขึ้นเพราะความสำคัญกว่าร้อยปีของการพูดละติจูดและลองจิจูดทุกที่
Antti Haapala

5

ISO 6709 จัดทำรายการลำดับเป็นละติจูดลองจิจูดสำหรับเหตุผลด้านความปลอดภัย คำอธิบายของเกรแฮมข้างบนนั้นฟังดูถูกต้องสำหรับฉันเช่นกัน มีคนแนะนำว่าคำตอบนี้ไม่เกี่ยวข้องกับคำถาม แต่เป็นจริง ๆ แล้วอธิบายว่าเพราะเหตุใดจึงมีคำสั่งเป็นละติจูดละติจูดลองติจูด

นี่คือวิธีที่แสดงไว้สำหรับผู้ใช้ที่ใช้ระบบมานาน การเปลี่ยนแปลงที่อาจทำให้เกิดความสับสนและตามที่ ISO แนะนำอาจเป็นอันตรายได้ ซอฟต์แวร์ GIS เช่น ArcMap แสดงรายการวิธีอื่น ๆ เนื่องจากเป็นแบบแผนทั่วไปของการจับคู่พิกัด x, y ละติจูดคือ y ลองจิจูดคือ x ดังนั้นอาร์กจึงแสดงรายการเหล่านั้นอย่างไร


1

ลองจิจูดและละติจูด (เปล่า, ละติจูด)

เมื่อฉายไปที่ Mercator ลองจิจูดกำหนดทิศทาง x และละติจูดกำหนดทิศทาง y ห้องสมุดเรขาคณิตส่วนใหญ่ใช้รูปแบบของ (lon, lat) นี้อย่างเคร่งครัดเนื่องจากเป็นวิธีที่ง่ายที่สุดในการคิดถึงพิกัดทางภูมิศาสตร์ในระนาบ 2 มิติ


3
ดังนั้นหากเป็นวิธีที่ใช้งานง่ายที่สุดในการคิดทำไมบล็อก Google Earth จึงเรียกว่าบล็อกLat-Longในขณะที่ใช้ lon-lat ใน KML
theta

1
โดยพื้นฐานแล้วเนวิเกเตอร์ได้ใช้การสั่งซื้อ lat-lon แบบดั้งเดิมดังนั้นหากคุณยุ่งกับการสั่งซื้อนั้นคุณอาจพลาดการนำทางของคุณ ดังนั้น google จึงใช้แบบดั้งเดิมสำหรับบล็อกและระนาบ 2D เพื่อจัดทำโครงสร้างข้อมูล คำตอบที่ดีที่สุด @mkennedy นี้ในคำตอบของเธอที่จะคำถามเดียวกัน: gis.stackexchange.com/questions/6037/...
เดวิด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.