แปลง GeoJSON เป็น KML
การแปลงข้อมูลเวกเตอร์ GeoJSON เป็น Google KML จะแปลงชุดพิกัด JSON ขนาดกะทัดรัดให้เป็นเอกสาร XML ที่มีโครงสร้าง ซึ่งออกแบบมาสำหรับ Google Earth และ Google Maps
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
| ข้อกำหนด | GEOJSON | KML |
|---|---|---|
| ประเภท MIME | application/ | application/ |
| ประเภท | ข้อมูลเวกเตอร์ภูมิศาสตร์ JSON | รูปแบบ XML สำหรับข้อมูลภูมิศาสตร์ |
| การบีบอัด | ไม่มี (ข้อความ JSON) | ข้อความ XML (เป็น KMZ เมื่อบีบอัดด้วย ZIP) |
| ข้อกำหนดมาตรฐาน | IETF RFC 7946 | OGC KML 2.3 |
| ส่วนหัวที่ระบุลายเซ็นไฟล์ | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
ภาพรวมรูปแบบและการใช้งาน
ข้อมูลเวกเตอร์ทางภูมิศาสตร์มักถูกบันทึกและแชร์ด้วย GeoJSON เพราะนักพัฒนาเว็บและไลบรารีแผนที่ JavaScript ประมวลผลข้อมูลรูปแบบนี้ได้โดยตรง อย่างไรก็ตาม ซอฟต์แวร์ GIS บนเดสก์ท็อปอย่าง Google Earth และแอปพลิเคชันลูกโลกเสมือนสำหรับองค์กรรุ่นเก่าจำเป็นต้องใช้ Keyhole Markup Language หรือ KML การแปลงระหว่างรูปแบบเหล่านี้ช่วยให้นักวิจัยภาคสนามและนักทำแผนที่ดูรูปหลายเหลี่ยมขอบเขตที่ดึงจากเว็บ จุดข้อมูลจากระบบโทรมาตรของโดรน และเส้นทางสินทรัพย์ของเทศบาลในลูกโลกเสมือนได้โดยไม่ต้องเขียนสคริปต์เอง การแปลง GeoJSON เป็น KML ยังช่วยเชื่อม API เว็บโอเพนซอร์สกับเครื่องมือแผนที่สำหรับผู้ใช้ทั่วไป นักวางผังเมืองจำนวนมากเก็บข้อมูลด้วยไลบรารี Leaflet หรือ Mapbox ซึ่งส่งออกเป็นไฟล์ GeoJSON เมื่อผู้มีส่วนได้ส่วนเสียต้องการตรวจสอบเลเยอร์เดิมเหล่านั้นในสภาพแวดล้อมเดสก์ท็อป 3 มิติ การแปลงแท็กเรขาคณิต คุณสมบัติการจัดรูปแบบ และคุณสมบัติเมตาดาต้าให้เป็นโหนด XML ช่วยให้แสดงองค์ประกอบภาพ เช่น ไอคอน ความกว้างเส้น และสีเติม ได้อย่างถูกต้อง
ข้อกำหนดทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ
GeoJSON ใช้ประเภท MIME application/geo+json และแทนจุด เส้น และรูปหลายเหลี่ยมทางภูมิศาสตร์ในรูปแบบข้อความธรรมดาของ JavaScript Object Notation โดยไม่มีลายเซ็นไฟล์แบบไบนารี แต่ใช้วงเล็บมาตรฐาน ASCII หรือ UTF-8 และคู่คีย์-ค่า เช่น "type": "FeatureCollection" ในทางกลับกัน Google KML ใช้ประเภท MIME application/vnd.google-earth.kml+xml และจัดโครงสร้างลักษณะเชิงพื้นที่ไว้ในแท็ก XML เช่น <Placemark>, <Point> และ <Polygon> แม้ทั้งสองรูปแบบจะไม่มีการบีบอัดแบบสูญเสียข้อมูลโดยกำเนิดในระดับข้อความ แต่ไฟล์ KML สามารถบีบอัดเป็นคลัง KMZ ด้วยการบีบอัด DEFLATE มาตรฐาน เพื่อรวมข้อมูลเวกเตอร์ขนาดใหญ่และไอคอนรูปภาพในเครื่องไว้ด้วยกัน
ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์
ทั้งสองรูปแบบเปิดใช้งานได้บนระบบปฏิบัติการสมัยใหม่ รวมถึง Windows, macOS, Linux, iOS และ Android เว็บเบราว์เซอร์สมัยใหม่แยกวิเคราะห์สตริง GeoJSON ได้ด้วยเอนจิน JavaScript มาตรฐาน ส่วน KML ของ Google ต้องใช้ตัวแยกวิเคราะห์เฉพาะหรือซอฟต์แวร์ลูกโลกบนเดสก์ท็อปอย่าง Google Earth Pro เบราว์เซอร์มือถือไม่สามารถแสดงไฟล์ KML ดิบได้โดยตรงหากไม่มีแอปช่วยหรือการแสดงผลล่วงหน้าบนเซิร์ฟเวอร์
เคล็ดลับการใช้งาน
เมื่อแปลงชุดข้อมูลขนาดใหญ่ที่มีรูปหลายเหลี่ยมซับซ้อนหลายพันรูป ให้แบ่ง GeoJSON ต้นทางออกเป็นไฟล์ย่อยตามภูมิภาคก่อนส่งออกเป็น KML เพื่อป้องกันหน่วยความจำล้นในแอปแผนที่สำหรับผู้ใช้ทั่วไป
คำถามที่พบบ่อย
คุณจะแปลง GeoJSON เป็น Google KML โดยไม่สูญเสียคุณภาพได้อย่างไร
การแปลงนี้ไม่สูญเสียข้อมูลโดยเด็ดขาด เพราะทั้งสองรูปแบบจัดเก็บพิกัดเวกเตอร์ด้วยค่าละติจูดและลองจิจูดที่เป็นตัวเลขอย่างแม่นยำ กระบวนการแปลงจับคู่คีย์ GeoJSON กับองค์ประกอบ XML ของ KML ที่สอดคล้องกันโดยไม่เปลี่ยนความละเอียดของพิกัด อย่างไรก็ตาม คุณสมบัติการจัดรูปแบบแบบกำหนดเองอาจต้องจับคู่ด้วยตนเอง หากซอฟต์แวร์ปลายทางอ่านแอตทริบิวต์ที่ไม่ใช่มาตรฐานแตกต่างออกไป
ความแตกต่างระหว่าง GeoJSON และ Google KML คืออะไร
GeoJSON เป็นรูปแบบข้อความน้ำหนักเบาที่ใช้ไวยากรณ์ JSON ออกแบบมาโดยเฉพาะสำหรับ API แผนที่เว็บและการประมวลผล JavaScript ส่วน Google KML เป็นภาษาที่ใช้ XML ออกแบบมาสำหรับ Google Earth โดยมีการรองรับการกำหนดระดับความสูง 3 มิติ มุมมองกล้องแบบกำหนดเอง ลำดับชั้นโฟลเดอร์ซ้อนกัน และไอคอนฝังในไฟล์