เครื่องมือแปลง GeoJSON เป็น Google KML
การแปลงข้อมูลเวกเตอร์ GeoJSON เป็น Google KML จะเปลี่ยนพิกัดการทำแผนที่เว็บที่มีน้ำหนักเบาให้เป็นโครงสร้าง XML ที่สมบูรณ์ซึ่งปรับแต่งสำหรับ Google Earth
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
| ข้อกำหนด | GEOJSON | KML |
|---|---|---|
| ประเภท MIME | application/geo+json | application/vnd.google-earth.kml+xml |
| ประเภท | geographic vector JSON | geographic XML notation |
| การบีบอัด | none (JSON text) | XML text (KMZ when ZIP compressed) |
| ข้อกำหนดมาตรฐาน | IETF RFC 7946 | OGC KML 2.3 |
| ส่วนหัว Magic Bytes | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
ภาพรวมรูปแบบและการใช้งาน
GeoJSON ถูกใช้อย่างแพร่หลายโดยนักพัฒนาเว็บและไลบรารีการทำแผนที่โอเพ่นซอร์สเช่น Leaflet และ Mapbox เนื่องจากใช้ JavaScript Object Notation โดยธรรมชาติ อย่างไรก็ตาม เมื่อทีมจำเป็นต้องแสดงเส้นทางทางภูมิศาสตร์ รูปแบบหลายเหลี่ยม และจุดพิกัดภายใน Google Earth, Google Maps หรือซอฟต์แวร์ GIS บนเดสก์ท็อปเฉพาะทาง GeoJSON จะต้องถูกแปลงเป็น Keyhole Markup Language (KML) การแปลงนี้ช่วยเชื่อมช่องว่างระหว่าง API เว็บสมัยใหม่และแอปพลิเคชันลูกโลกเสมือนจริงแบบดั้งเดิม นักทำแผนที่ นักวิจัยภาคสนาม และทีมจัดการภาวะฉุกเฉินมักทำการแปลงนี้เพื่อแชร์สินทรัพย์เชิงพื้นที่กับผู้มีส่วนได้ส่วนเสียที่พึ่งพา Google Earth สำหรับการแสดงภาพ 3 มิติ ในขณะที่ GeoJSON โดดเด่นในการจัดเก็บอายแรย์พิกัดดิบสำหรับการเรนเดอร์บนเว็บ แต่ KML จะเพิ่มคุณสมบัติการจัดรูปแบบภาพ เช่น เครื่องหมายไอคอนกำหนดเอง โพลีกอน 3 มิติแบบยื่นออกมา และลำดับชั้นโฟลเดอร์แบบลำดับชั้นที่เรนเดอร์โดยตรงภายในไคลเอนต์ลูกโลกบนเดสก์ท็อปและมือถือ
ข้อมูลทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ (Codec)
ไฟล์ GeoJSON ใช้ประเภท MIME `application/geo+json` และมีข้อความธรรมดาที่จัดรูปแบบเป็นวัตถุ JSON ที่ถูกต้องซึ่งมีประเภทเรขาคณิตเช่น Point, LineString และ Polygon ไฟล์ KML ใช้ประเภท MIME `application/vnd.google-earth.kml+xml` และมีโครงสร้างเป็นเอกสาร XML ที่ห่อหุ้มด้วยแท็กเช่น `<kml>`, `<Document>` และ `<Placemark>` ทั้งสองรูปแบบไม่ใช้การบีบอัดไบนารีภายในโดยค่าเริ่มต้น ทั้งคู่ถูกจัดเก็บเป็นข้อความธรรมดาที่ไม่ได้บีบอัด อย่างไรก็ตาม KML สามารถบีบอัดเป็นเก็บถาวร KMZ โดยใช้การบีบอัด ZIP มาตรฐานเพื่อรวมไอคอนและโมเดลภายนอกเข้าด้วยกัน รูปแบบทั้งสองไม่ใช้ลายเซ็นไบต์วิเศษ การระบุตัวตนอาศัยการแยกวิเคราะห์วงเล็บ JSON ราก `{}` สำหรับ GeoJSON หรือแท็ก XML ราก `<kml>` สำหรับ KML
ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์
รูปแบบทั้งสองเพลิดเพลินกับความเข้ากันได้เกือบสากลในระบบปฏิบัติการสมัยใหม่รวมถึง Windows, macOS, Linux, iOS และ Android เว็บเบราว์เซอร์แยกวิเคราะห์ GeoJSON ได้อย่างเป็นธรรมชาติผ่านไลบรารีการทำแผนที่ต่างๆ ในขณะที่การเรนเดอร์ KML ในเบราว์เซอร์มักจะต้องใช้พาร์เซอร์หรือปลั๊กอินพิเศษเนื่องจากเบราว์เซอร์สมัยใหม่ไม่ได้แสดง KML ดิบโดยกำเนิด แอปพลิเคชัน GIS บนเดสก์ท็อปเช่น QGIS และ ArcGISจัดการทั้งสองรูปแบบได้อย่างเป็นธรรมชาติ ในขณะที่แอป Google Earth Pro และ Google Earth บนมือถือยอมรับ KML และ KMZ เป็นอินพุตไฟล์หลัก
💡 ข้อมูลที่เป็นประโยชน์
เมื่อแปลงชุดข้อมูลขนาดใหญ่ที่มีโพลีกอนที่ซับซ้อนหลายพันรายการ ให้ส่งออกเป็น KMZ แทน KML ดิบเพื่อลดขนาดไฟล์อย่างมากผ่านการยุบตัวของ ZIP มาตรฐาน
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
ชุดข้อมูลเวกเตอร์ GeoJSON ขนาด 5 MB มาตรฐานจะแปลงเป็นไฟล์ข้อความ KML ขนาดประมาณ 6 MB ผ่านเครือข่ายมือถือ 4G ที่ทำงานอยู่ที่ 15 Mbps การดาวน์โหลดไฟล์ KML ที่ได้จะใช้เวลาประมาณ 3.2 วินาที บนการเชื่อมต่อ 5G ที่ 100 Mbps เวลาในการถ่ายโอนจะลดลงเหลือ 0.5 วินาที และผ่านการเชื่อมต่อไฟเบอร์ 1 Gbps ไฟล์จะถ่ายโอนในเวลาน้อยกว่า 0.05 วินาที
คำถามที่พบบ่อย
คุณจะแปลง GeoJSON เป็น Google KML โดยไม่สูญเสียคุณภาพได้อย่างไร
การแปลงไม่มีการสูญหายทางคณิตศาสตร์เนื่องจากทั้งสองรูปแบบจัดเก็บพิกัดทางภูมิศาสตร์โดยใช้ตัวเลขจุดลอยตัวตามระบบอ้างอิงเชิงพื้นที่ WGS84 อย่างไรก็ตาม คุณลักษณะการจัดรูปแบบเฉพาะ เช่น ป๊อปอัป HTML ที่กำหนดเองหรือน้ำหนักเส้นแผนที่เว็บที่ซับซ้อน อาจต้องมีการแมปใหม่ด้วยตนเองไปยังแท็กเฉพาะของ KML เช่น `<Style>` และ `<BalloonStyle>` เพื่อรักษารูปลักษณ์ภาพ
ความแตกต่างระหว่าง GeoJSON และ Google KML คืออะไร
GeoJSON เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบาซึ่งใช้ JSON ออกแบบมาหลักสำหรับการทำแผนที่เว็บและ API เชิงพื้นที่ KML เป็นสถาปัตยกรรมที่ใช้ XML ซึ่งออกแบบมาสำหรับการแสดงภาพทางภูมิศาสตร์ใน Google Earth โดยเฉพาะ พร้อมรองรับมุมมองกล้อง 3 มิติ แอนิเมชันตามเวลา ลำดับชั้นโฟลเดอร์ซ้อนกัน และการจัดรูปแบบภาพที่สมบูรณ์