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

29.09.2014

เครื่องรับคือเครื่องรับตัวตรวจจับ VLF และได้รับการออกแบบให้รับสัญญาณสถานีกระจายเสียงท้องถิ่น ทรานซิสเตอร์ทั้งหมดที่มีค่าสัมประสิทธิ์ เพิ่มขึ้นอย่างน้อย 20...30 L1 คือการควบคุมช่วงบรรทัดจากทีวีเครื่องเก่า วรรณกรรม 500 แผนการสำหรับนักวิทยุสมัครเล่น\

  • 05.10.2014

    นักวิทยุสมัครเล่นมือใหม่เกือบทุกคนมุ่งมั่นที่จะเริ่มต้นความคิดสร้างสรรค์ในการออกแบบแหล่งจ่ายไฟเครือข่าย (PSU) เพื่อนำไปใช้ในการจ่ายพลังงานให้กับอุปกรณ์ทดลองต่างๆ และแน่นอน ฉันต้องการให้แหล่งจ่ายไฟนี้ "บอก" เกี่ยวกับอันตรายจากความล้มเหลวของส่วนประกอบแต่ละชิ้นอันเนื่องมาจากข้อผิดพลาดในการติดตั้งหรือการทำงานผิดพลาด วันนี้มีหลายแผนการรวมทั้ง...

  • 29.09.2014

    เครื่องรับได้รับการออกแบบให้รับสัญญาณช่วง MF DV แหล่งพลังงาน - 3 องค์ประกอบละ 1.5V ปริมาณการใช้กระแสไฟไม่เกิน 3 mA วงจรเสาอากาศแม่เหล็กประกอบด้วย L1 L2 C1 เมื่อรับ DV คอยล์จะเชื่อมต่อแบบอนุกรม และเมื่อรับ CB L1 จะถูกปิด สัญญาณจะถูกถอดออกจากคอยล์ L3 และส่งไปยังเครื่องขยายสัญญาณ RF...

  • 08.10.2014

    รูปแสดงวงจรเครื่องขยายเสียงแบบธรรมดาสำหรับหูฟัง (หูฟัง) บนทรานซิสเตอร์ 2 ตัว ซึ่งมีลักษณะดังต่อไปนี้ กำลังเอาท์พุต 0.1 W สัมประสิทธิ์ฮาร์มอนิก 0.07% ช่วงความถี่ 20...20000 Hz แรงดันไฟจ่าย 15 V ปริมาณการใช้กระแสไฟ 120 mA วงจรคือ แอมพลิฟายเออร์สองสเตจที่มีทรานซิสเตอร์เอาต์พุตทำงานในโหมดเชิงเส้น A โดยมีกระแสนิ่งประมาณ 120 ...

  • 13.11.2014

    แอมพลิฟายเออร์คลาส AB ที่ใช้ TDA7375 มีไว้สำหรับใช้เป็นแอมพลิฟายเออร์รถยนต์ ไมโครเซอร์กิตมีการป้องกันการกลับขั้ว, การป้องกันไฟฟ้าสถิต, ป้องกันการลัดวงจรของเอาท์พุตไปยังบัสกำลัง, เข้ากับเคสและซึ่งกันและกัน แอมพลิฟายเออร์ที่ใช้ TDA7375 สามารถสลับเป็นโหมด MONO ได้โดยเพียงแค่ติดตั้งจัมเปอร์ระหว่างอินพุต รวมถึงใน ...

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

    จะสะดวกกว่ามากในการค้นหาตำแหน่งของจุดเมื่อใช้ระบบพิกัดสี่เหลี่ยม (เส้นตรง) สำหรับภาพแบน แคลคูลัสประเภทนี้เรียกอีกอย่างหนึ่งว่าการฉายภาพเกาส์-ครูเกอร์ เนื่องจากเป็นนักวิทยาศาสตร์ชาวเยอรมันสองคนที่พัฒนาให้แสดงพื้นผิวโลกโค้งบนแผนที่ได้อย่างถูกต้อง ในประเทศของเรา ยังคงใช้ได้กับการทำแผนที่ทางทหาร ภูมิมาตรศาสตร์ และการออกแบบทางวิศวกรรมมากที่สุด การใช้ระบบพิกัด UTM ที่คล้ายกันเป็นที่นิยมในหมู่ประเทศตะวันตก

    อัลกอริทึมสำหรับการแปลงพิกัดทางภูมิศาสตร์เป็นพิกัดสี่เหลี่ยม

    หากต้องการแปลงพิกัดทางภูมิศาสตร์เป็นพิกัดเส้นตรงอย่างรวดเร็วและในทางกลับกันจะใช้อัลกอริธึมพิเศษซึ่งกลายเป็นพื้นฐานของโปรแกรมอัตโนมัติสำหรับบริการดังกล่าว ตัวแปลงออนไลน์ยังได้รับการพัฒนาที่คำนวณทั้งพิกัด Gauss-Kruger และ UTM ใหม่ เมื่อระดับตำแหน่งของวัตถุแม้แต่นาทีและวินาทีถูกแปลงเป็นเมตรที่แน่นอน - และในทางกลับกันเมื่อเมตรถูกแปลงเป็นองศา

    พารามิเตอร์ละติจูดและลองจิจูดที่วัตถุของเราตั้งอยู่ถูกป้อนลงในโปรแกรมหรือตัวแปลงและเอาต์พุตมีค่าต่อไปนี้: x(พารามิเตอร์แนวนอน) และ (พารามิเตอร์แนวตั้ง) การแปลแบบย้อนกลับทำได้ในลักษณะเดียวกัน

    สูตรการแปลง (คีย์) คำนึงถึง:

    • การกำหนดหมายเลขโซนตาม Gauss-Kruger (จากที่มีอยู่ 60)
    • ตัวประกอบขนาด (สำหรับ Gauss-Kruger เป็นหนึ่งสำหรับ UTM คือ 0.9996)
    • ฟังก์ชันตรีโกณมิติ
    • ขนานเริ่มต้น
    • เส้นลมปราณตามแนวแกน
    • กึ่งแกนหลักและรอง
    • การกระจัดแบบมีเงื่อนไขมีอยู่ในเส้นขนานเริ่มต้นในภาคเหนือ เช่นเดียวกับเส้นลมปราณกลางทางทิศตะวันออก
    • ปริมาณความเรียบ
    • ความเยื้องศูนย์

    ระบบนำทางด้วยดาวเทียม GLONASS และ GPS ให้การติดตามพิกัดในรูปแบบที่กำหนดอย่างต่อเนื่อง คุณสามารถตั้งค่าให้แสดงละติจูดและลองจิจูด และแสดงเมตรหรือกิโลเมตรพร้อมกันได้

    อนึ่ง!เป็นเวลานานที่สหภาพโซเวียตจัดประเภทคีย์การแปล - พวกเขาออกโดยกองทัพเพื่อการตรวจวัดทางภูมิศาสตร์ตามคำขอพิเศษ

    พิกัดสี่เหลี่ยมคืออะไร

    พื้นฐานสำหรับการฉายวงรีบนระนาบ - ตามเกาส์-ครูเกอร์หรือตามระบบ UTM - เป็นหลักการของแคลคูลัสเส้นตรงของเดส์การตส์

    • เกินแกนนอน เอ็กซ์ Abscissa (ขนาน) ที่ไปทางทิศตะวันออกถือเป็นแนวตั้ง - กำหนด (เส้นเมอริเดียน) ไปทางเหนือ เลยจุดกำเนิด โอ- ทางแยกของพวกเขา
    • จุดที่ทำเครื่องหมายไว้บนระนาบแผนที่จะวัดจากระยะทางแนวตั้งถึงเส้นแกน เอ็กซ์(นี่จะเป็นค่า ), บวกแนวนอนกับเส้นแกน (นี่จะเป็นค่า x).
    • เครื่องบินถูกแบ่งตามแกนออกเป็น 4 ส่วน - สิ่งที่เรียกว่าจตุภาคที่มีหมายเลขทวนเข็มนาฬิกา (I, II, III, IV): I จตุภาคขวาบน (ตะวันออกเฉียงเหนือ), II บนซ้าย (ตะวันตกเฉียงเหนือ), III ซ้ายล่าง (ตะวันตกเฉียงใต้ ) ตะวันตก), IV ล่างขวา (ตะวันออกเฉียงใต้)

    ค่ามีทั้งค่าบวกและลบซึ่งขึ้นอยู่กับตำแหน่งที่สัมพันธ์กับควอแดรนท์:

    • Quadrant I มีทั้งค่าบวก ( x, ญ);
    • Quadrant II ระบุค่าผสม (- x, ญ);
    • Quadrant III มีทั้งค่าลบ (- x,-ญ);
    • Quadrant IV ยังมีค่าผสม ( x,-ใช่)

    นอกจากนี้ระบบยังมีความแตกต่างอย่างมีนัยสำคัญ

    สำหรับการฉายภาพเกาส์-ครูเกอร์ พื้นที่ที่แสดงบนแผนที่จะแบ่งออกเป็น 60 โซน โดยที่ระยะห่างระหว่างเส้นเมอริเดียนเท่ากับ 6 องศา การนับถอยหลังเริ่มจากกรีนิชไปทางทิศตะวันออกและเส้นศูนย์สูตรไปทางทิศเหนือ หน่วยจะถูกนำมาเป็นตัวประกอบขนาด จุดเริ่มต้นคือจุดตัดของเส้นลมปราณที่เลือกกับเส้นศูนย์สูตร

    ระบบ UTM ที่ชาวอเมริกันพัฒนาขึ้นนั้นมีลักษณะการแบ่งเขตที่คล้ายกันออกเป็น 60 โซน แต่เส้นลมปราณที่คำนวณได้นั้นแตกต่างออกไป โซนแรกตามตัวเลขเริ่มต้นจากเส้นลมปราณที่ 177 องศาลองจิจูดตะวันตก ความแตกต่างยังเกี่ยวข้องกับตัวประกอบสเกลด้วย - เท่ากับ 0.9996 ไม่มีค่าลบในระบบ UTM - ด้วยเหตุนี้ 500 กิโลเมตรจะถูกเพิ่มไปยัง Abscissa ตะวันตกและ 10,000 กิโลเมตรไปยังทิศใต้

    ระบบสี่เหลี่ยมใช้ที่ไหน?

    ระบบสี่เหลี่ยมมีความเกี่ยวข้องกับแผนที่ขนาดเล็ก สำหรับการประสานงานระหว่างหน่วยกู้ภัยและกองทัพ สำหรับสาขาการทำแผนที่ทางทหารและภูมิศาสตร์ ในการออกแบบวัตถุในอาณาเขต งานวิศวกรรม และการวาดภาพการออกแบบแผนผัง

    แต่การใช้งานหลักคือด้านมาตรวิทยา กองทัพบก และกองทัพเรือ กองทัพของรัฐส่วนใหญ่เปลี่ยนมาใช้พิกัดสี่เหลี่ยมเพื่อกำหนดเป้าหมายทางทหาร

    บทช่วยสอนเกี่ยวกับการแปลงระหว่างระบบพิกัดต่างๆ

    บริการระบุตำแหน่ง รวมถึงไซต์การนำทางและแผนที่ที่ใช้ GPS เช่น Google Maps และ Yahoo! แผนที่กำลังได้รับความนิยมในหมู่ผู้ใช้ องค์กรหลายแห่งใช้บริการตามตำแหน่งที่ตั้งอยู่แล้ว และอีกหลายแห่งจะปฏิบัติตามเส้นทางนี้เมื่อพวกเขาตระหนักถึงประโยชน์และศักยภาพของแอปพลิเคชันดังกล่าว ในปี 2549 บริษัทวิเคราะห์ Gartner ตั้งข้อสังเกตว่า "แอปพลิเคชันที่เกี่ยวข้องกับการกำหนดตำแหน่งจะกลายเป็นกระแสหลักในอีกสองถึงห้าปีข้างหน้า" และ "องค์กรจำนวนมากได้ปรับใช้แอปพลิเคชันทางธุรกิจบนมือถือที่ใช้ประโยชน์จากการกำหนดตำแหน่งแล้ว" (ส่วนนี้มีลิงก์ไปยังรายงานนี้)

    เมื่อองค์กรตัดสินใจที่จะใช้แอปพลิเคชันที่ใช้ระบบพิกัดทางภูมิศาสตร์ การเขียนแอปพลิเคชันมักจะกลายเป็นงานของนักพัฒนา การสร้างแอปพลิเคชันที่ใช้พิกัดทางภูมิศาสตร์เกี่ยวข้องกับงานหลายอย่าง ทั้งขนาดใหญ่และขนาดเล็ก และหนึ่งในงานที่ค่อนข้างง่ายเหล่านั้นคือการแปลงพิกัดจากระบบหนึ่งไปยังอีกระบบหนึ่ง บทความนี้ให้รหัสที่ทำการแปลงนี้และสามารถช่วยคุณประหยัดเวลาในการทำงานได้มาก

    สองระบบพิกัดที่แตกต่างกัน

    ก่อนที่จะเจาะลึกโค้ดที่นำเสนอในบทความนี้ จำเป็นต้องหารือเกี่ยวกับระบบพิกัดที่โค้ดนี้ออกแบบมาเพื่อรองรับ: ระบบละติจูดและลองจิจูดที่รู้จัก และ Universal Transverse Mercator (UTM) คุณต้องสัมผัสกับ Military Grid Reference System (MGRS) ซึ่งใช้ UTM

    ละติจูดและลองจิจูด

    ระบบละติจูดและลองจิจูดอาจเป็นวิธีที่รู้จักกันดีที่สุดในการกำหนดพิกัดทางภูมิศาสตร์ ในนั้นตำแหน่งจะแสดงด้วยตัวเลขสองตัว ละติจูด- นี่คือมุมจากจุดศูนย์กลางโลกถึงมุมที่ขนานกับพื้นผิวโลก ลองจิจูด- นี่คือมุมจากจุดศูนย์กลางของโลกถึงเส้นลมปราณที่แน่นอนบนพื้นผิวโลก ละติจูดและลองจิจูดสามารถแสดงเป็นองศาทศนิยม (DD) หรือองศา นาที และวินาที (DMS) ในกรณีหลัง จะได้ตัวเลขในรูปแบบนี้ - 49°30"00" S 12°30"00" E โดยปกติรูปแบบนี้จะใช้ในระบบนำทาง GPS

    โลกถูกแบ่งด้วยเส้นศูนย์สูตร (ละติจูด 0°) ออกเป็นซีกโลกเหนือและซีกโลกใต้ และเส้นเมอริเดียนสำคัญ (ลองจิจูด 0°) ซึ่งเป็นเส้นจินตนาการจากเหนือลงขั้วโลกใต้ที่ตัดผ่านเมืองกรีนิชในสหราชอาณาจักร และแบ่ง ดาวเคราะห์ไปในซีกโลกตะวันออกและตะวันตก ช่วงละติจูดในซีกโลกเหนืออยู่ระหว่าง 0 ถึง 90 องศาและในซีกโลกใต้ - ตั้งแต่ 0 ถึง -90 องศา ช่วงของซีกโลกตะวันออกอยู่ระหว่าง 0 ถึง 180 องศา และซีกโลกตะวันตกอยู่ระหว่าง 0 ถึง -180 องศา

    ตัวอย่างเช่น จุดที่มีพิกัด 61.44, 25.40 (ในรูปแบบ DD) หรือ 61°26"24""N, 25°23"60""E (ในรูปแบบ DMS) ตั้งอยู่ทางตอนใต้ของฟินแลนด์ และจุดพิกัด -47.04, -73.48 (DD) หรือ 47°02"24""S, 73°28"48""W (DMS) ตั้งอยู่ทางตอนใต้ของชิลี รูปที่ 1 แสดงภาพของโลกที่มีเส้นขนานและเส้นเมอริเดียนซ้อนทับกัน:


    ข้อมูลเพิ่มเติมสามารถพบได้ในส่วน

    เส้นโครงเมอร์เคเตอร์ตามขวาง

    ระบบพิกัด UTM เป็นวิธีการที่ใช้ตารางเพื่อกำหนดพิกัด ระบบ UTM แบ่งโลกออกเป็น 60 โซน โดยแต่ละโซนใช้การฉายภาพแบบ Transverse Mercator การฉายภาพแผนที่ในการทำแผนที่เป็นวิธีหนึ่งในการนำเสนอพื้นผิวที่ไม่เรียบแบบสองมิติบนระนาบ เช่นเดียวกับแผนที่ทั่วไป เส้นโครง Mercator ตามขวางแสดงไว้:


    โซนลองจิจูดใน UTM มีหมายเลขตั้งแต่ 1 ถึง 60 ทุกโซนยกเว้นสองโซน ซึ่งจะกล่าวถึงในภายหลัง มีความกว้าง 6° จากตะวันออกไปตะวันตก โซนลองจิจูดครอบคลุมพื้นผิวโลกอย่างสมบูรณ์ระหว่างละติจูด 80°S ถึง 84°N

    นอกจากนี้ยังมีละติจูด 20 โซน แต่ละโซนสูง 8°; โซนเหล่านี้มีหมายเลข C ถึง X โดยละเว้นตัวอักษร I และ O โซน A, B, Y และ Z อยู่นอกระบบนี้และครอบคลุมอาร์กติกและแอนตาร์กติก โซน UTM สำหรับยุโรปจะแสดงขึ้น รูปนี้แสดงโซนลองจิจูดที่ไม่ได้มาตรฐานสองโซน ได้แก่ โซน 32V ถูกขยายให้ครอบคลุมทางตอนใต้ของนอร์เวย์ทั้งหมด และโซน 31V ถูกย่อให้สั้นลงเพื่อให้ครอบคลุมเฉพาะน้ำเท่านั้น

    พิกัดใน UTM แสดงในรูปแบบ โซนลองจิจูด โซนละติจูด ตะวันออก เอียงเหนือ, ที่ไหน การเสื่อมถอยทางทิศตะวันออกคือระยะทางที่คาดการณ์จากเส้นลมปราณกลางของเขตลองจิจูด การลดลงทางตอนเหนือคือระยะฉายภาพจากเส้นศูนย์สูตร ค่าของการเอียงทางทิศตะวันออกและทิศเหนือระบุเป็นเมตร ตัวอย่างเช่น พิกัดละติจูด/ลองจิจูด 61.44, 25.40 ใน UTM จะแสดงเป็น 35 V 414668 6812844; พิกัดละติจูด/ลองจิจูด -47.04, -73.48 สอดคล้องกับพิกัด 18 G 615471 4789269 ใน UTM

    คลาสการแปลงพิกัด

    CoordinateConversion คือคลาสหลักที่มีออบเจ็กต์ถูกสร้างขึ้นเมื่อจำเป็นต้องดำเนินการแปลงพิกัด รายการ 1 แสดงวิธีการสาธารณะที่จำเป็นพร้อมกับคลาสส่วนตัวภายในที่ประกอบเป็นคลาส CoordinateConversion:

    รายการ 1. การแปลงพิกัด
    คลาสสาธารณะ CoordinateConversion ( Public CoordinateConversion() ( ) public double utm2LatLon(String UTM) ( UTM2LatLon c = new UTM2LatLon(); return c.convertUTMToLatLong(UTM); ) public String latLon2UTM(double latitude, double longitude) ( LatLon2UTM c = new LatLon2UTM(); return c.convertLatLonToUTM(ละติจูด, ลองจิจูด); //.. การดำเนินการข้ามคลาสส่วนตัว LatLon2UTM ( สตริงสาธารณะ ConvertLatLonToUTM (ละติจูดคู่, ลองจิจูดคู่) ( //.. การดำเนินการข้ามไป) //.. การดำเนินการข้ามไป) คลาสส่วนตัว LatLon2MGRUTM ขยาย LatLon2UTM (สตริงสาธารณะแปลงLatLonToMGRUTM (ละติจูดคู่, ลองจิจูดคู่) ( //.. การดำเนินการข้ามไป) //.. การดำเนินการข้ามไป) คลาสส่วนตัว MGRUTM2LatLon ขยาย UTM2LatLon ( สาธารณะคู่แปลง MGRUTMToLatLong (สตริง mgrutm) ( //.. การดำเนินการ ข้าม ) //.. การดำเนินการข้าม ) คลาสส่วนตัว UTM2LatLon ( public double ConvertUTMToLatLong (String UTM) ( //.. การดำเนินการข้าม ) // .. การดำเนินการข้าม ) Digraphs คลาสส่วนตัว ( // ใช้เพื่อรับรหัสตัวอักษรสองตัว // เมื่อแปลงจากลองจิจูด/ละติจูดเป็น MGRS //..ละติจูดการใช้งาน) LatZones คลาสส่วนตัว ( //รวมถึงวิธีการในการกำหนดโซนละติจูด //..ละติจูดการใช้งาน)

    ส่วนถัดไปครอบคลุมถึงการแปลงระหว่างลองจิจูด/ละติจูดและ UTM โดยละเอียด

    แปลงจากละติจูด/ลองจิจูดเป็น UTM

    พิกัดจะถูกแปลงจากละติจูด/ลองจิจูดเป็น UTM โดยใช้วิธี String latLon2UTM (ละติจูดคู่, ลองจิจูดคู่) การใช้เมธอดนี้จะสร้างอินสแตนซ์ของคลาสภายใน LatLon2UTM c = new LatLon2UTM(); และส่งกลับพิกัด UTM เป็นสตริง 15 อักขระที่มีความแม่นยำ 1 เมตร การใช้งานเมธอดคลาส LatLon2UTM จะแสดงในรายการ 2:

    รายการ 2. สตริงสาธารณะแปลงLatLonToUTM (ละติจูดคู่, ลองจิจูดคู่)
    สตริงสาธารณะแปลงLatLonToUTM(ละติจูดคู่, ลองจิจูดคู่) ( ตรวจสอบ (ละติจูด, ลองจิจูด); String UTM = ""; setVariables (ละติจูด, ลองจิจูด); String longZone = getLongZone (ลองจิจูด); LatZones latZones = new LatZones (); String latZone = latZones.getLatZone(ละติจูด); double _easting = getEasting(); double _northing = getNorthing(ละติจูด); UTM = longZone + " " + latZone + " " + ((int) _easting) + " "+ ((int) _northing) ; กลับ UTM ;

    วิธีการนี้จะทำการแปลงโดยการเรียกวิธีการต่างๆ เพื่อให้ได้โซนละติจูดและลองจิจูด คำนวณการเบี่ยงเบนไปทางทิศตะวันออกและทิศเหนือ เป็นต้น อินพุตจะถูกตรวจสอบในเมธอด validate() ถ้านิพจน์ (latitude< -90.0 || latitude >90.0 || ลองจิจูด< -180.0 || longitude >= 180.0) ประเมินเป็นจริง จากนั้นข้อยกเว้น IllegalArgumentException จะถูกส่งออกไป

    เมธอด setVariables() ในรายการ 3 จะตั้งค่าตัวแปรต่างๆ ที่จำเป็นในการคำนวณการแปลง (สำหรับข้อมูลเพิ่มเติม โปรดดูบทความ "The Universal Grids" ซึ่งมีลิงก์ในส่วนนี้:

    รายการ 3. setVariables โมฆะที่ได้รับการป้องกัน (ละติจูดคู่, ลองจิจูดคู่)
    โมฆะที่ได้รับการป้องกัน setVariables (ละติจูดคู่, ลองจิจูดคู่) ( ละติจูด = องศาToRadian (ละติจูด); rho = เส้นศูนย์สูตรRadius * (1 - e * e) / POW (1 - POW (e * SIN (ละติจูด), 2), 3 / 2.0) ; nu = เส้นศูนย์สูตรรัศมี / POW(1 - POW(e * SIN(ละติจูด), 2), (1 / 2.0));< 0.0) { var1 = ((int) ((180 + longitude) / 6.0)) + 1; } else { var1 = ((int) (longitude / 6)) + 31; } double var2 = (6 * var1) - 183; double var3 = longitude - var2; p = var3 * 3600 / 10000; S = A0 * latitude - B0 * SIN(2 * latitude) + C0 * SIN(4 * latitude) - D0 * SIN(6 * latitude) + E0 * SIN(8 * latitude); K1 = S * k0; K2 = nu * SIN(latitude) * COS(latitude) * POW(sin1, 2) * k0 * (100000000) / 2; K3 = ((POW(sin1, 4) * nu * SIN(latitude) * Math.pow(COS(latitude), 3)) / 24) * (5 - POW(TAN(latitude), 2) + 9 * e1sq * POW(COS(latitude), 2) + 4 * POW(e1sq, 2) * POW(COS(latitude), 4)) * k0 * (10000000000000000L); K4 = nu * COS(latitude) * sin1 * k0 * 10000; K5 = POW(sin1 * COS(latitude), 3) * (nu / 6) * (1 - POW(TAN(latitude), 2) + e1sq * POW(COS(latitude), 2)) * k0 * 1000000000000L; A6 = (POW(p * sin1, 6) * nu * SIN(latitude) * POW(COS(latitude), 5) / 720) * (61 - 58 * POW(TAN(latitude), 2) + POW(TAN(latitude), 4) + 270 * e1sq * POW(COS(latitude), 2) - 330 * e1sq * POW(SIN(latitude), 2)) * k0 * (1E+24); }

    เมธอด getLongZone() ใน Listing 4 และคลาส LatZones ที่มีอยู่ในนั้นใช้เพื่อค้นหาโซนลองจิจูดและโซนละติจูด โซนลองจิจูดคำนวณจากพารามิเตอร์ลองจิจูด และโซนละติจูดมักจะแสดงเป็นค่าคงที่ โดยใช้อาร์เรย์ในคลาส LatZones

    รายการ 4. สตริงที่ได้รับการป้องกัน getLongZone (ลองจิจูดคู่)
    สตริงที่ได้รับการป้องกัน getLongZone (ลองจิจูดคู่) ( double longZone = 0; if (longitude< 0.0) { longZone = ((180.0 + longitude) / 6) + 1; } else { longZone = (longitude / 6) + 31; } String val = String.valueOf((int) longZone); if (val.length() == 1) { val = "0" + val; } return val; }

    เมธอด getNorthing() ในรายการที่ 5 และเมธอด getEasting() ในรายการ 6 จะคำนวณค่าการปฏิเสธทางทิศเหนือและทิศตะวันออก ทั้งสองวิธีใช้ตัวแปรที่ตั้งค่าไว้ในเมธอด setVariables() จาก

    รายการ 5. ป้องกัน double getNorthing (ละติจูดคู่)
    ป้องกัน getNorthing คู่ (ละติจูดคู่) ( double northing = K1 + K2 * p * p + K3 * POW (p, 4); if (ละติจูด< 0.0) { northing = 10000000 + northing; } return northing; }
    รายการ 6. ป้องกันคู่ getEasting()
    ได้รับการป้องกัน double getEasting() ( ส่งคืน 500000 + (K4 * p + K5 * POW(p, 3)); )

    รายการ 7 แสดงตัวอย่างผลลัพธ์ของโปรแกรมหลายตัวอย่าง รวมถึงพิกัดละติจูด/ลองจิจูด และพิกัด UTM ที่สอดคล้องกัน:

    รายการ 7. ทดสอบการแปลงจากละติจูด/ลองจิจูดเป็นค่า UTM
    (0.0000 0.0000) "31 N 166021 0" (0.1300 -0.2324) "30 N 808084 14385" (-45.6456 23.3545) "34 G 683473 4942631" (-12.7650 -33.8765) "25 ลิตร 404859 8588690" (-80.5434 -170.6540) "02 C 506346 1057742" (90.0000 177.0000) "60 Z 500000 9997964" (-90.0000 -177.0000) "01 A 500000 2035" (90.0000 3.0000) "31 Z 500000 9 997964" (23.4578 -135.4545) "08 คิว 453580 2594272" ( 77.3450 156.9876) "57 X 450793 8586116" (-89.3454 -48.9306) "22 502639 75072"

    แปลงจาก UTM เป็นละติจูด/ลองจิจูด

    การแปลงจากพิกัด UTM เป็นละติจูด/ลองจิจูดนั้นค่อนข้างง่ายกว่ากระบวนการย้อนกลับ บทความ "The Universal Grids" ในส่วน ) ให้สูตรการแปลง รายการ 8 แสดงรหัสสำหรับวิธีการ ConvertUTMToLatLong() เมธอดนี้ส่งคืนอาร์เรย์ที่มีค่าสองเท่า โดยที่องค์ประกอบแรก (ที่มีดัชนีอาร์เรย์ ) คือละติจูด และองค์ประกอบที่สอง (ที่มีดัชนีอาร์เรย์ ) คือลองจิจูด เนื่องจากพารามิเตอร์สตริงมีพิกัด UTM ที่มีความแม่นยำ 1 เมตร พิกัดละติจูด/ลองจิจูดจึงมีความแม่นยำเท่ากัน

    รายการ 8. public double ConvertUTMToLatLong(String UTM)
    public double ConvertUTMToLatLong(String UTM) ( double latlon = ( 0.0, 0.0 ); String utm = UTM.split(" "); Zone = Integer.parseInt(utm); String latZone = utm; easting = Double.parseDouble(utm) ; northing = Double.parseDouble(utm); String hemisphere = getHemisphere(latZone); ละติจูดคู่ = 0.0; (phi1 - fact1 * (fact2 + fact3 + fact4)) / Math.PI; if (โซน > 0) (zoneCM = 6 * โซน - 183.0; ) อื่น ๆ (zoneCM = 3.0; ) ลองจิจูด = ZoneCM - _a3; .equals("S")) ( latitude = -latitude; ) latlon = ละติจูด;

    วิธีการแปลง UTMToLatLong() แยกพิกัด UTM ในพารามิเตอร์สตริงอินพุตซึ่งมีรูปแบบ 34 ก 683473 4942631และใช้เมธอด getHemisphere() เพื่อกำหนดซีกโลกซึ่งเป็นที่ตั้งของตำแหน่งที่มีพิกัดที่ระบุ การกำหนดซีกโลกเป็นเรื่องง่าย: โซนละติจูด A, C, D, E, F, G, H, J, K, L และ M อยู่ในซีกโลกใต้ และโซนที่เหลืออยู่ในซีกโลกเหนือ

    เมธอด setVariables() ที่แสดงในรายการ 9 จะตั้งค่าของตัวแปรที่จำเป็นสำหรับการคำนวณ จากนั้นจึงคำนวณละติจูดทันที ลองจิจูดคำนวณโดยใช้โซนลองจิจูด

    รายการ 9. setVariables เป็นโมฆะที่ได้รับการป้องกัน ()
    โมฆะที่ได้รับการป้องกัน setVariables() ( arc = northing / k0; mu = arc / (a ​​* (1 - POW(e, 2) / 4.0 - 3 * POW(e, 4) / 64.0 - 5 * POW(e, 6) / 256.0)); ei = (1 - เชลยศึก((1 - อี * อี), (1 / 2.0))) / (1 + เชลยศึก((1 - อี * อี), (1 / 2.0))) ; = 3 * ei / 2 - 27 * POW(ei, 3) / 32.0; cb = 21 * POW(อี, 2) / 16 - 55 * POW(อี, 4) / 32; 1,097 * POW(ei, 4) / 512; phi1 = mu + ca * SIN(2 * mu) + cb * SIN(4 * mu) + ซีซี * SIN(6 * mu) + cd * SIN(8 * mu) ; n0 = a / POW((1 - POW((e * SIN(phi1)), 2)), (1 / 2.0)); / POW((1 - POW((e * SIN(phi1)), 2 )), (3 / 2.0)); fact1 = n0 * TAN(phi1) / r0; _a1 = 500000 - ตะวันออก; n0 * k0); fact2 = dd0 * dd0 / 2; ); Q0 = e1sq * POW(COS(phi1), 2); Q0 - 4 * Q0 * Q0 - 9 * e1sq) * POW(dd0, 4) / 24; fact4 = (61 + 90 * t0 + 298 * Q0 + 45 * t0 * t0 - 252 * e1sq - 3 * Q0 * Q0 ) * POW(dd0, 6) / 720; lof1 = _a1 / (n0 * k0); (dd0, 3) / 6.0;

    lof3 = (5 - 2 * Q0 + 28 * t0 - 3 * POW(Q0, 2) + 8 * e1sq + 24 * POW(t0, 2)) * POW(dd0, 5) / 120;

    _a2 = (lof1 - lof2 + lof3) / COS(phi1);

    _a3 = _a2 * 180 / Math.PI; -

    เมธอด setVariables() ใช้ค่าทิศตะวันออกและทิศเหนือเพื่อตั้งค่าตัวแปรที่ต้องการ ตัวแปรเหล่านี้เป็นของทั้งสองคลาสและตั้งค่าไว้ในเมธอด ConvertUTMToLatLong(String UTM) จาก .

    วิธีการอื่นๆ

    ฉันจำเป็นต้องทำการแปลงระหว่างละติจูดและลองจิจูด UTM และ MGRS ดังนั้นฉันจึงทำการวิจัยขั้นพื้นฐานและนำการแปลงเหล่านี้ไปใช้ในคลาส Java ฉันใช้เวลาสองสามชั่วโมงในการพัฒนา และหวังว่าคนอื่นๆ จะสามารถประหยัดเวลาสองสามชั่วโมงสำหรับงานอื่นๆ และพบว่าการใช้คลาส CoordinateConversion ในงานของตนเองมีประโยชน์

    ตัวอย่างเช่น (ตามความช่วยเหลือบริการมาตรฐานของ Google) ลองจิจูดในรูปแบบหนึ่งของบริการ map.google.ru คือลองจิจูด 41.40338° ตะวันออก ในทางปฏิบัติ ในเศษส่วนทศนิยมขององศาจีโอเดติก ทศนิยมห้าตำแหน่งก็เพียงพอแล้ว ซึ่งสอดคล้องกับความแม่นยำสูงสุดที่เป็นไปได้จริง (สูงสุดหลายเมตรในแนวนอน) ของอุปกรณ์นำทางด้วยดาวเทียมทั่วไปที่มีไว้สำหรับผู้ใช้พลเรือน
    จากนั้นลำดับการคำนวณคือ:
    40338 / 100,000 = X / 60
    X = (40338 * 60) / 100,000 ~ 24.2028 (จากสัดส่วนเราจะหาตัวเศษของเศษส่วนแท้)
    นาทีทั้งหมด: 24"

    2028 / 10,000 = X / 60
    X = (2028 * 60) / 10,000 ~ 12.17
    วินาที: 12.17"

    ผลลัพธ์: 41.40338° = 41° 24" 12.17" (สี่สิบเอ็ดองศา ยี่สิบสี่นาที สิบสองจุดเจ็ดวินาที)

    ละติจูดจะถูกคำนวณใหม่ในลำดับเดียวกัน

    Google รองรับรูปแบบข้อมูลเชิงมุมที่หลากหลาย

    ตัวอย่างวิธีการทำที่ถูกต้อง

    รูปแบบย่อสำหรับบันทึกพิกัดทางภูมิศาสตร์ (ละติจูดเหนือ ลองจิจูดตะวันออก):

    องศา และคั่นด้วยช่องว่าง นาทีที่มีทศนิยม:
    41 24.2028, 2 10.4418

    องศาทศนิยม:
    41.40338, 2.17403

    รูปแบบการเขียนมุมแบบเต็ม (องศา นาที วินาที พร้อมทศนิยม):
    41° 24" 12.1674", 2° 10" 26.508"

    เวอร์ชันองศา-นาทีแบบง่าย ซึ่ง Google อาจจดจำได้หากมีการพิมพ์ตัวเลขสองคู่ (องศาจำนวนเต็มและนาที) คั่นด้วยเครื่องหมายจุลภาคลงในบรรทัดค้นหา:
    41 24, 2 10

    บริการ Googlemap มีตัวแปลงออนไลน์สำหรับการแปลงพิกัดและแปลงเป็นรูปแบบที่ต้องการ

    แผนที่ออนไลน์ของบริการอินเทอร์เน็ตต่างๆ ทำให้สามารถตั้งค่าและรับพิกัดตำแหน่งด้วยความแม่นยำระดับทศนิยมหกตำแหน่งหลังจุดทศนิยมนั่นคือสูงสุดหนึ่งเมตร ซึ่งเพียงพอที่จะทำงานร่วมกับเครื่องนำทางในรถยนต์สมัยใหม่และอุปกรณ์พกพาในตัว (สมาร์ทโฟน แท็บเล็ต และอุปกรณ์อื่น ๆ ) ที่รับสัญญาณจากระบบระบุตำแหน่งทั่วโลกด้วยดาวเทียม GLONASS (รัสเซีย), GPS (สหรัฐอเมริกา) และ Beidou (จีน) อุปกรณ์นำทางสำหรับผู้ใช้ "พลเรือน" มีข้อผิดพลาดในการวัดเพียงครั้งเดียวสูงถึงหลายเมตร (ในระนาบแนวนอนบนพื้นผิวโลก) ข้อมูลดิจิทัลอิเล็กทรอนิกส์อาจแตกต่างกันอย่างมาก แผนที่เวกเตอร์มีข้อได้เปรียบที่สำคัญเหนือรูปแบบแรสเตอร์: ความสามารถในการค้นหาข้อมูลโดยอัตโนมัติ (ตามชื่อของการตั้งถิ่นฐาน ลักษณะของวัตถุทางภูมิศาสตร์) และอัปเดตเป็นเวอร์ชันปัจจุบันอย่างรวดเร็ว สามารถอ่านได้ดีเมื่อซูมเข้า/ออก เลเยอร์เลเยอร์ตามธีม การได้รับภาพสามมิติสามมิติความสามารถในการวางซ้อนสำเนาที่สแกนจากวัสดุกระดาษเช่นจากแท็บเล็ตภูมิประเทศของโซเวียต

    รูปแบบหลักในการแสดงค่าพิกัดทางภูมิศาสตร์ด้วยความแม่นยำไม่กี่เมตร:
    องศากับหลักแสน (ปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปปป
    องศา นาทีกับหนึ่งในพัน (GG° MM.MMM")
    องศา นาที วินาที โดยมีหลักสิบ (GG° MM" CC.S")


    จำนวนตำแหน่งทศนิยมนี้สอดคล้องกับลำดับของความแม่นยำสูงสุดที่เป็นไปได้ของการวัดครั้งเดียวของเครื่องนำทาง GPS ทั่วไป ในระหว่างการทำงานปกติภายใต้เงื่อนไขที่ยอมรับได้ (ตำแหน่งของดาวเทียมบนท้องฟ้าได้สำเร็จ สัญญาณดาวเทียมในระดับที่ดี ฯลฯ) ด้วย การวัดซ้ำที่อุปกรณ์จุดคงที่ ตามทฤษฎีแล้ว ความแม่นยำของตำแหน่งควรเพิ่มขึ้นเนื่องจากการเก็บรวบรวมสถิติเพื่อกำหนดค่าเฉลี่ยทางคณิตศาสตร์จากกลุ่มเมฆของค่าตัวเลข แต่สิ่งนี้ไม่สมเหตุสมผลนักหากซอฟต์แวร์แก้ไขสัญญาณดาวเทียมดั้งเดิมและมีข้อผิดพลาดเทียมในพิกัดซึ่งตัวดำเนินการเพิ่มขึ้นสำหรับผู้บริโภคทั่วไปเช่นในช่วงสงคราม ในกรณีเช่นนี้ ในโหมดการเข้าถึงแบบเลือกสำหรับผู้ใช้พลเรือน การบิดเบือนข้อมูลจะปรากฏขึ้น - ตารางพิกัดสามารถถูกเลื่อนอย่างมีนัยสำคัญโดยสัมพันธ์กับตำแหน่งที่แท้จริง

    ในการระบุพิกัดพื้นที่ค้นหา เช่น หากกลุ่มนักท่องเที่ยวสูญหายในเส้นทางเพื่อดำเนินการค้นหาและกู้ภัย เจ้าหน้าที่จะแจ้งสถานที่โดยประมาณของผู้สูญหายเป็นตัวเลข ดังนี้
    GG° MM" CC" ละติจูดเหนือ GG° MM" CC" ลองจิจูดตะวันออก

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

    เพื่อการนำเสนอที่ถูกต้องและการคำนวณที่ถูกต้อง จำเป็นต้องระบุระบบพิกัดที่ใช้สำหรับการระบุตำแหน่งแบบเคลื่อนที่อย่างแม่นยำ ใช้ในทางปฏิบัติ:
    WGS-84 (ทั่วโลกซึ่งเครื่องนำทาง GPS ทั้งหมดใช้งานได้)
    "Pulkovo-42" (SK-42 ใช้กับแผนที่ทหารเก่าในสมัยโซเวียต)
    MSK (ระบบพิกัดท้องถิ่นใด ๆ )

    วิธีแปลงพิกัดจากรูปแบบตัวเลขหนึ่งไปเป็นอีกรูปแบบหนึ่ง

    พิกัดทางภูมิศาสตร์ของจุดเดียวกันสามารถแสดงในรูปแบบที่แตกต่างกันได้ ขึ้นอยู่กับว่านาทีและวินาทีจะแสดงเป็นค่าตั้งแต่ 0 ถึง 60 หรือตั้งแต่ 0 ถึง 100 (ทศนิยม)

    โดยทั่วไปรูปแบบพิกัดจะเขียนดังนี้: DD - องศา, MM - นาที, SS - วินาที; หากแสดงนาทีและวินาทีเป็นทศนิยมให้เขียน DD.DDDD ตัวอย่างเช่น:

    DD MM SS: 50° 40" 45"" E, 40 50" 30"" N. - องศา นาที วินาที

    DD มม.มม.: 50° 40.75" E, 40 50.5" N - องศา นาทีทศนิยม

    DDDDDD: 50.67916 E, 40.841666 N - องศาทศนิยม

    หลายโปรแกรมไม่เข้าใจพิกัดที่แสดงในรูปแบบที่อนุญาตให้มีช่องว่าง เช่น DD MM SS หรือ DD MM.MM สำหรับการใช้งานปกติแนะนำให้จัดเก็บพิกัดในรูปแบบ DD.DDDDD

    มีหลายวิธีในการดำเนินการแปลงนี้ ลองพิจารณา 3 วิธีหลัก (ตามลำดับประสิทธิผล)

    ตั้งค่า GPS ให้ถูกต้อง

    เพื่อหลีกเลี่ยงปัญหาการแปลพิกัดวิธีที่ง่ายที่สุดคือกำหนดค่า GPS ทันทีเพื่อให้แสดงค่าพิกัดในรูปแบบ DDDDDD- อย่างไรก็ตาม สิ่งนี้อาจไม่สะดวกสำหรับผู้ที่นำทางในสนามโดยใช้แผนที่ภูมิประเทศที่มีตารางพิกัด โดยที่พิกัดจะถูกเซ็นชื่อในรูปแบบตัวเลขที่แตกต่างกัน ในทางกลับกัน ในกรณีนี้ ขอแนะนำให้ลงนามในตารางพิกัดในรูปแบบนี้

    ใช้สคริปต์พิเศษ

    หากคุณทำงานใน Arcview GIS คุณสามารถใช้สคริปต์พิเศษที่จะทำการคำนวณใหม่ให้กับคุณได้

    ในการเริ่มทำงานใน Arcview ต้องสร้างหรือโหลดตารางในรูปแบบ DBF (คุณสามารถสร้างตารางดังกล่าวใน Excel) ตารางที่บันทึกค่าเริ่มต้น ต้องเปิดให้บันทึกได้ ตาราง\เริ่มการแก้ไข.

    ตารางนี้ต้องมี 2 คอลัมน์ (จำนวนรวมอาจมีมากกว่านั้น) โดยต้องเขียนค่าพิกัดให้อยู่ในรูปแบบ DDMMSSนั่นคือไม่ควรมีการเว้นวรรคระหว่างตัวเลข เช่น 505050.3214

    ในระหว่างการดำเนินการ สคริปต์จะขอให้คุณระบุชื่อของคอลัมน์ที่บันทึกค่าละติจูดและคอลัมน์ที่บันทึกค่าลองจิจูด จากนั้นระบบจะขอให้คุณป้อนชื่อสำหรับคอลัมน์ผลลัพธ์ หลังจากนี้สคริปต์จะทำการแปลงและเขียนค่าพิกัดในรูปแบบลงในคอลัมน์ใหม่พร้อมชื่อที่คุณป้อน DDDDDD.

    คำนวณค่าพิกัดใหม่ด้วยตัวเองใน Excel

    สูตรการแปลงจาก dd mm ss เป็น dd.ddddd:

    สูตรการแปลงจาก dd mm.mmmm เป็น dd.ddddd:

    สูตรการแปลงจาก dd.ddddd เป็น dd mm ss:

    ดีดี = คุณเอ็น(ดีดีดี)

    = คุณเอ็น((ดีดีดีดีดี) * 60)

    = ((ดีดีดีดีดี) * 60 − ) * 60

    โดยที่ DDD - พิกัดในรูปแบบ DD.DDDD, DD - องศา, MM (MM.MMMM) - นาที, SS - วินาที

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

    เพื่ออำนวยความสะดวกในการคำนวณพิกัดใหม่ใน Excel เพิ่มเติม คุณสามารถใช้ Add-in ที่เชื่อมต่อกับ Excel หลังจากเชื่อมต่อแล้วจะมีการเพิ่มสูตรหลายสูตรลงใน Excel ซึ่งช่วยให้คุณสามารถแปลงค่าจาก DDMMSS (ในรูปแบบที่แตกต่างกันเป็นองศาทศนิยม) ดาวน์โหลดส่วนเสริม คำอธิบายของการเชื่อมต่อและการใช้ส่วนเสริมภายในไฟล์เก็บถาวร

    • GRD__YY_MMSS - การแปลงองศาที่ป้อนลงใน 1 เซลล์ในรูปแบบ GG,MMSS
    • GRD__YYMM_SS - การแปลงองศาที่ป้อนลงใน 1 เซลล์ในรูปแบบ YYMM,SS
    • GRD__YY_MM_SS - การแปลงองศาที่ป้อนเป็น 3 เซลล์ในรูปแบบ GG MM SS