GeoJSON (.geojson)

IETF มาตรฐาน

GeoJSON ใช้กับแผนที่เว็บอย่างแพร่หลายแต่การรองรับแตกต่างกัน GitHub แสดงไฟล์ที่รองรับภายใต้ข้อจำกัด และ RFC 7946 กำหนดลองจิจูดก่อนละติจูด

แปลง GEOJSON เป็น KML

ตัวแปลงจาก GEOJSON เป็น KML ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบไฟล์และข้อมูลเมตา

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GeoJSON โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
รับประกันความเป็นส่วนตัวโดยไม่มีการส่งข้อมูลผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GeoJSON โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65

การแสดงผลรูปแบบ ASCII: {\n "type": "Feature

มาตรฐาน: IETF RFC 7946

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์เอกสาร JSON ตาม RFC 7946 ที่แทน Features, FeatureCollections และ Geometries ทางภูมิศาสตร์
การบีบอัดข้อความแบบไม่บีบอัด (บีบอัดระหว่างส่งผ่าน HTTP ได้ง่ายด้วย Gzip หรือ Brotli)
การจัดลำดับไบต์สตรีมข้อความ UTF-8
พื้นที่สีไม่เกี่ยวข้อง (ข้อมูลภูมิศาสตร์)
ช่องสัญญาณและโครงสร้างจุด, หลายจุด, เส้น, หลายเส้น, รูปหลายเหลี่ยม, รูปหลายเหลี่ยมหลายชุด, ชุดเรขาคณิต และคุณสมบัติกำหนดเอง
ขนาดสูงสุดพิกัดระบบ World Geodetic System 1984 (WGS 84): ลองจิจูด (-180 ถึง +180), ละติจูด (-90 ถึง +90)
ความโปร่งใสไม่มี
การสตรีมและแบบโปรเกรสซีฟGeoJSON แบบคั่นบรรทัด (GeoJSONL / GeoJSONSeq) ช่วยสตรีมฟีเจอร์หลายล้านรายการได้อย่างต่อเนื่อง

ตารางเปรียบเทียบทางเทคนิค: GeoJSON กับคู่แข่ง

คุณลักษณะทางเทคนิคGeoJSON (ปัจจุบัน)KMLGPXSHP
การนำไปใช้ในการทำแผนที่เว็บค่าเริ่มต้น Web GIS สากล 100%ค่าเริ่มต้นของ Google Earthค่าเริ่มต้นของอุปกรณ์ GPS และการออกกำลังกายมาตรฐานเดิมของ Desktop GIS
ลำดับพิกัด[ลองจิจูด, ละติจูด] (X, Y)ลองจิจูด, ละติจูด, ความสูงละติจูด, ลองจิจูดพิกัด X, Y
รูปแบบไวยากรณ์คู่คีย์-ค่า JSON ที่กระชับแท็ก XML ที่มีรายละเอียดมาก (<kml>)แท็ก XML ที่มีรายละเอียดมาก (<gpx>)ไบนารีหลายไฟล์ (.shp, .shx, .dbf)
สคีมาคุณสมบัติออบเจ็กต์คุณสมบัติ JSON ที่กำหนดได้ตามต้องการแท็กสคีมา ExtendedDataแท็กสคีมา GPX คงที่คอลัมน์คงที่ของ dBase IV (.dbf)

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

จุดบนแผนที่ปรากฏในมหาสมุทรใกล้ทวีปแอนตาร์กติกาแทนที่จะเป็นตำแหน่งจริง

สาเหตุหลัก: ค่าละติจูดกับลองจิจูดถูกสลับตำแหน่งกันโดยไม่ตั้งใจในอาร์เรย์พิกัด

การกู้คืน: สลับตำแหน่งพิกัด [lon, lat] โดยใช้ File2File.app GeoJSON Converter

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

คุณสมบัติของ GeoJSON อาจมีข้อมูลใดๆ ที่ผู้ใช้ป้อนเข้ามา จึงต้องกรองก่อนแสดงในป๊อปอัปแผนที่เพื่อป้องกัน XSS

เวกเตอร์การโจมตีที่ทราบ

  • การโจมตีแบบ Cross-site scripting (XSS) ผ่าน HTML ที่ไม่ได้ escape ในคุณสมบัติของฟีเจอร์ GeoJSON ซึ่งแสดงในคำแนะนำบนแผนที่
  • การปฏิเสธการให้บริการ (Denial of Service) ผ่าน GeometryCollections ที่ซ้อนกันลึกหรือโพลีกอนที่มีจุดยอดนับล้าน
  • Server-Side Request Forgery ผ่านการโหลดฟีเจอร์ GeoJSON ระยะไกล

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: กรองข้อความในคุณสมบัติทั้งหมดด้วย DOMPurify ก่อนใส่ลงในหน้าต่างป๊อปอัปแผนที่

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2016IETF กำหนดมาตรฐานรูปแบบ GeoJSON อย่างเป็นทางการเป็น RFC 7946 โดยบังคับใช้ระบบอ้างอิงพิกัด WGS 84
2014GeoJSON ใช้กับแผนที่เว็บอย่างแพร่หลายแต่การรองรับแตกต่างกัน GitHub แสดงไฟล์ที่รองรับภายใต้ข้อจำกัด และ RFC 7946 กำหนดลองจิจูดก่อนละติจูด
2008Howard Butler, Sean Gillies และชุมชน GIS โอเพนซอร์ส เผยแพร่ข้อกำหนด GeoJSON 1.0 เริ่มต้น

ข้อได้เปรียบและจุดเด่นสำคัญ

  • มาตรฐานเว็บโดยตรง: แปลงเป็นออบเจ็กต์ JavaScript ในไลบรารีแผนที่บนเบราว์เซอร์ได้ทันที (Mapbox GL JS, Leaflet)
  • โครงสร้าง JSON ที่มนุษย์อ่านได้ช่วยให้สร้าง คัดกรอง และดีบักด้วยโปรแกรมได้อย่างง่ายดาย
  • สคีมาคุณสมบัติแบบกำหนดเอง: แนบเมทาดตากำหนดเองใดๆ (ประชากร ชื่อ ความเร็ว รายได้) เข้ากับรูปทรงเรขาคณิตได้โดยตรง

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ข้อความมีรายละเอียดมาก: พิกัดทศนิยมจัดเก็บเป็นตัวเลข ASCII ซ้ำๆ ทำให้ไฟล์มีขนาดใหญ่กว่า Shapefile หรือ FlatGeobuf แบบไบนารี
  • RFC 7946 บังคับใช้ลำดับ [ลองจิจูด, ละติจูด] อย่างเคร่งครัด ซึ่งมักทำให้ผู้พัฒนาที่คุ้นเคยกับ 'ละติจูด/ลองจิจูด' สับสนบ่อยครั้ง
  • โพลีกอนขนาดใหญ่ที่มีจุดยอดนับล้านอาจทำให้การเรนเดอร์ DOM ของเว็บเบราว์เซอร์ช้าลง

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • มาตรฐาน GeoJSON อย่างเป็นทางการเรียงลำดับพิกัดเป็น [ลองจิจูด, ละติจูด] (ลำดับคาร์ทีเซียน X, Y) ซึ่งตรงกันข้ามกับวิธีที่ผู้คนพูด ('ละติจูด, ลองจิจูด')
  • GeoJSON ใช้กับแผนที่เว็บอย่างแพร่หลายแต่การรองรับแตกต่างกัน GitHub แสดงไฟล์ที่รองรับภายใต้ข้อจำกัด และ RFC 7946 กำหนดลองจิจูดก่อนละติจูด
  • RFC 7946 กำหนดให้วงแหวนขอบของโพลีกอนต้องปฏิบัติตาม 'กฎมือขวา': วงแหวนภายนอกต้องหมุนทวนเข็มนาฬิกา

คำถามทางเทคนิคที่พบบ่อย

เหตุใดพิกัด GeoJSON จึงเรียงเป็น [ลองจิจูด, ละติจูด] แทน [ละติจูด, ลองจิจูด]?

GeoJSON ใช้กับแผนที่เว็บอย่างแพร่หลายแต่การรองรับแตกต่างกัน GitHub แสดงไฟล์ที่รองรับภายใต้ข้อจำกัด และ RFC 7946 กำหนดลองจิจูดก่อนละติจูด

แปลง KML หรือ Shapefile เป็น GeoJSON ได้อย่างไร?

แปลงไฟล์ KML จาก Google Earth หรือ Shapefile ของ Esri เป็น GeoJSON ที่พร้อมใช้ทำแผนที่บนเว็บได้ในคลิกเดียวด้วย File2File.app ในเบราว์เซอร์

ความแตกต่างระหว่าง GeoJSON และ Shapefile คืออะไร

Shapefile ยังคงใช้กันอย่างแพร่หลายในการแลกเปลี่ยนข้อมูลและรองรับโดยซอฟต์แวร์ GIS แต่โครงสร้างที่มีหลายไฟล์และข้อจำกัดของแอตทริบิวต์อาจทำให้ GeoJSON หรือฐานข้อมูลเชิงพื้นที่เหมาะกับบางเวิร์กโฟลว์มากกว่า