ไฟล์ GML คืออะไร??
GML ย่อมาจาก Geography Markup Language ที่อิงตามข้อกำหนด XML ที่พัฒนาโดย Open Geospatial Consortium (OGC) รูปแบบนี้ใช้เพื่อจัดเก็บคุณสมบัติข้อมูลทางภูมิศาสตร์สำหรับการแลกเปลี่ยนระหว่างรูปแบบไฟล์ต่างๆ ทำหน้าที่เป็นภาษาแบบจำลองสำหรับระบบทางภูมิศาสตร์ ตลอดจนรูปแบบการแลกเปลี่ยนแบบเปิดสำหรับธุรกรรมทางภูมิศาสตร์บนอินเทอร์เน็ต
รูปแบบไฟล์ GML
เช่นเดียวกับไวยากรณ์ที่ใช้ XML ส่วนใหญ่ ไวยากรณ์มีสองส่วน ได้แก่ สคีมาที่อธิบายเอกสารและเอกสารอินสแตนซ์ที่มีข้อมูลจริง มีการอธิบายเอกสาร GML โดยใช้ GML Schema ซึ่งช่วยให้ผู้ใช้และนักพัฒนาสามารถอธิบายชุดข้อมูลทางภูมิศาสตร์ทั่วไปที่มีจุด เส้น และรูปหลายเหลี่ยม การใช้สคีมาของแอปพลิเคชัน ผู้ใช้สามารถอ้างถึงถนน ทางหลวง และสะพานแทนจุด เส้น และรูปหลายเหลี่ยม
เป็นที่น่าสังเกตว่าไม่ควรตีความ GML เพื่อเป็นตัวแทนของข้อมูลเชิงพื้นที่บนแผนที่ การแสดงเนื้อหา GML นั้นแตกต่างจากจุดประสงค์ของการสร้าง GML กล่าวโดยย่อ GML นั้นคล้ายกับ XML ตรงที่ใช้สำหรับเก็บเนื้อหาเชิงพื้นที่ที่แอปพลิเคชันแผนที่สามารถใช้เพื่อการแสดงผลเท่านั้น
การสร้างเนื้อหาใน GML
GML แสดงข้อมูลเชิงพื้นที่โดยใช้คุณลักษณะที่เป็นรายการคุณสมบัติและรูปทรงเรขาคณิต พร็อพเพอร์ตี้มีชื่อ ประเภท และคำอธิบายค่า รูปทรงเรขาคณิตประกอบด้วยโครงสร้างรูปทรงเรขาคณิตพื้นฐาน เช่น:
- คะแนน
- เส้น
- เส้นโค้ง
- พื้นผิวและ
- รูปหลายเหลี่ยม
GML เวอร์ชันในอนาคตได้รับการวางแผนให้รองรับรูปทรงเรขาคณิต 3 มิติ ตลอดจนความสัมพันธ์เชิงทอพอโลยีระหว่างคุณลักษณะต่างๆ
การเข้ารหัส GML ช่วยให้สามารถใช้งานคุณสมบัติที่ค่อนข้างซับซ้อนได้แล้ว ตัวอย่างเช่น คุณสมบัติสามารถประกอบด้วยคุณสมบัติอื่นๆ คุณลักษณะเดียวเช่นสนามบินอาจประกอบด้วยคุณลักษณะอื่นๆ เช่น ทางแท็กซี่ ทางวิ่ง ทางแขวน และอาคารผู้โดยสารทางอากาศ รูปทรงเรขาคณิตของคุณลักษณะทางภูมิศาสตร์สามารถประกอบด้วยองค์ประกอบทางเรขาคณิตมากมาย คุณลักษณะที่ซับซ้อนทางเรขาคณิตสามารถประกอบด้วยประเภทเรขาคณิตต่างๆ ผสมกัน ซึ่งรวมถึงจุด สตริงเส้น และรูปหลายเหลี่ยม
ตัวอย่าง
GML 1.0 และ 2.0 เข้ารหัสวัตถุ Polygon, Points และ LineString ดังนี้:
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>0,0 100,0 100,100 0,100 0,0</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
<gml:Point>
<gml:coordinates>100,200</gml:coordinates>
</gml:Point>
<gml:LineString>
<gml:coordinates>100,200 150,300</gml:coordinates>
</gml:LineString>