ฉันจะแปลง State Plane พิกัดเป็นละติจูด - ลองจิจูดได้อย่างไร


32

เมื่อพิจารณาจากระบบพิกัดระนาบของรัฐที่เฉพาะเจาะจง (ไม่ว่าจะเป็น NAD27 หรือ NAD83) มีทรัพยากรใดบ้างที่จะแปลงเป็นละติจูดลองจิจูด

คำตอบ:


19

คุณจะต้องปฏิเสธพวกเขาเพื่อจัดการกับการแปลงนี้

Proj.4เป็นไลบรารีมาตรฐานที่ใช้โดยซอฟต์แวร์จำนวนมากสำหรับการคัดลอก

วิธีหนึ่งในการใช้สิ่งนี้คือการใช้ยูทิลิตีเช่นgdaltransformเพื่อทำการแปลงให้คุณ


9

หากคุณรู้รหัส EPSG ที่เกี่ยวข้องหรือพารามิเตอร์ proj.4 ทั้งสองgdaltransformและหน้า proj.4 cs2cs( man page ) เป็นเส้นทางที่ดีดังที่ได้กล่าวไว้

อย่างไรก็ตามหากคุณพบว่าไม่มีข้อมูลนี้ให้ลองspatialreference.org : ให้พารามิเตอร์และแผนที่เว็บสำหรับทำ lat / long เพื่อประสานการแปลงระบบ ( ตัวอย่างด้วยระนาบ IL ) เนื่องจากการประมาณระนาบของรัฐไม่มีรหัส EPSG ให้ใช้ sr.org เพื่อค้นหาสตริง proj.4 ซึ่งgdaltransformเข้าใจได้ นี่คือตัวอย่างการแปลงจากCalifornia State Plane Zone Vเป็น WGS84 lat / long pairs:

gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 \ 
+lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 \ 
+ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326

หลังจากที่พิมพ์ควรกลับ1815241.25377291 557301.336190851-120 33.9999999999996


สิ่งนี้ถูกต้อง แต่มีข้อผิดพลาดอาร์กิวเมนต์ -s_srs จะได้รับสองครั้ง คำสั่งควรลงท้ายด้วย -t_srs:gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326
alvin

@alvin ฉันแก้ไขข้อผิดพลาดขอบคุณสำหรับ heads-up!
scw

8

ลูกค้าหรือเซิร์ฟเวอร์? เฉพาะภาษา? แบบครั้งเดียวหรือเป็นกลุ่ม?

เช่น - สำหรับฝั่งไคลเอ็นต์ - ด้วย JavaScript - ใช้ OpenLayers + Proj4js

0) นำเข้า libs ที่เหมาะสมทั้งหมด

1) สร้างจุดของคุณ

var lonlat = new OpenLayers.LonLat( ....)

2) แปลง

lonlat.transform( new OpenLayers.Projection("epsg:XXXX"), new OpenLayers.Projection("epsg:4326"));

ตอนนี้ lonlat.lon และ lonlat.lat อยู่ในค่า WGS84 lon / lat


ใช้งานได้ แต่ต้องการการพัฒนาที่กำหนดเอง ไม่แน่ใจว่า OP ต้องการเครื่องมือที่ใช้งานได้หรือไม่
Reed Copsey

1
ขวาฉันแค่ยกตัวอย่างหนึ่ง - ฝั่งไคลเอ็นต์จาวาสคริปต์ในรหัส OP ไม่ได้ระบุสิ่งที่เขาต้องการ แม้แต่คำตอบที่ยอมรับก็คือห้องสมุด นอกจากนี้ยังมีเว็บไซต์มากมายที่ให้รูปแบบง่าย ๆ สำหรับคุณป้อน coords และให้คุณแปลง
Vadim

6

โปรแกรมฟรีและง่ายอย่างหนึ่งคือCorpsConซึ่งจะแปลงจุดเดียว, แบตช์จุดในไฟล์ข้อความและมี DLL ที่สามารถใช้จากภายในสภาพแวดล้อมการวางโปรแกรมเช่นหลาม

2014-07-09: ลิงก์ที่อัปเดตคือ http://www.agc.army.mil/Missions/Corpscon.aspx การคลิก "ดาวน์โหลด CorpsCon" จะนำคุณไปยังหน้าที่มีลักษณะแปลกและชั่วคราวเล็กน้อย แต่ใช้งานได้


ลิงก์ไม่ทำงาน คุณชอบอีกคนไหม
Scott_B

ฉันสนใจที่จะใช้ Corpscon dll ในหลามจะมีเอกสารประกอบสำหรับเรื่องนี้ฉันไม่เห็นใด ๆ ที่เว็บไซต์ corpscon
Gary Lester


ในขณะที่ย้อนกลับฉันเริ่มใช้ pyproj สำหรับการแปลงทั้งหมดภายในหลามในตอนท้ายของโพสต์ที่แสดงด้านล่างคุณสามารถดูว่ามันสามารถทำได้อย่างง่ายดายเพียงแค่ไม่กี่บรรทัด dshimer.blogspot.com/2012/11/…
Dennis


2

ตัวเลือก ( แต่เพียงสำหรับ NAD83) ก็คือ SPCS83 ที่http://www.ngs.noaa.gov/PC_PROD/SPCS83 มันทำงานในหน้าต่างบรรทัดคำสั่งบนพีซีและแปลงทั้งแบบโต้ตอบหรือจากอินพุตไฟล์ข้อความ มันมีซอร์สโค้ดถ้าคุณต้องการอัลกอริทึมจริงๆ Source คือ Fortran ซึ่งอาจเป็นความเจ็บปวดในการใช้งาน แต่ง่ายพอที่จะถอดรหัสเพื่อให้ได้อัลกอริธึมออกมา ดูที่ www.metzgerwillard.us/spcge/spcge.html ซึ่งเป็นส่วนหน้าสำหรับ SPCS83 ใน Google Earth


2

ตรวจสอบบริการแปลฟรี อัปโหลดข้อมูลของคุณจากนั้นระบุระบบพิกัดเอาต์พุตที่ต้องการ โดยการเลือกรูปแบบเดียวกันสำหรับเอาท์พุทเป็นอินพุทคุณจะทำการคัดลอกได้อย่างมีประสิทธิภาพ

พบบริการได้ที่http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html

และขึ้นอยู่กับผลิตภัณฑ์ FME นอกจากนี้ยังมีการทดลองใช้ฟรี 14 วันสำหรับสิ่งนี้เช่นกัน www.safe.com


ลิงค์ที่ดีกว่า: demos.fmeserver.com/easytranslator/index.html
Jon Kern

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.