การนำเข้า KML และข้อมูลสไตล์ใน Geoserver


9

ดังนั้นฉันกำลังทำงานในโครงการที่กำลังพัฒนามานานกว่าหนึ่งปี แต่ฉันเพิ่งมีส่วนร่วม งานของฉันเกี่ยวข้องกับการแปลงไฟล์ 2,500 KML คร่าวๆเป็นรูปแบบอื่นนำเข้าไฟล์เหล่านี้ไปยัง Geoserver แล้วคัดลอกข้อมูลสไตล์ที่เกี่ยวข้องสำหรับแต่ละไฟล์ ฉันรู้ว่า Geoserver อนุญาตให้คุณนำเข้าไฟล์ KML โดยตรง แต่ไฟล์ของเราดูเหมือนจะไม่ถูกต้องและเจ้านายของฉันต้องการย้ายออกจากรูปแบบ KML ด้วยเหตุผลทางปรัชญา

ใช้ ogr2ogr ฉันพยายามแปลงไฟล์เหล่านี้เป็น ESRI Shapefiles อย่างไรก็ตามกระบวนการแปลงใช้งานได้เพียงหนึ่งในสามของไฟล์และลบข้อมูลเมตาบางส่วนที่เรียกใช้ในข้อมูลสไตล์ ไฟล์ที่ไม่ได้แปลงรหัสสำหรับรูปหลายเหลี่ยมและคะแนนที่ฉันได้อ่านอาจเป็นข้อผิดพลาดสำหรับโปรแกรมอื่นเช่น QGIS

ฉันพยายามใส่ไฟล์ KML ทั้งหมดลงในฐานข้อมูล PostGIS แล้วแปลงเป็นอย่างนั้น อย่างไรก็ตามดูเหมือนว่าจะลบข้อมูลทั้งหมดออกจากตารางว่างเปล่าเป็นหลักสำหรับการนำเข้า

TL; DR ฉันต้องการค้นหาวิธีแปลงไฟล์ 2,500 KML เป็นรูปแบบที่ Geoserver ใช้งานได้และจะทำงานกับข้อมูลสไตล์ XML ฉันเป็น nois GIS ที่สมบูรณ์และนี่เป็นครั้งแรกที่ฉันโพสต์ดังนั้นฉันขอโทษถ้ามันดูไร้สาระ


สไตล์นั้นเหมือนกันสำหรับไฟล์ KML ทั้งหมดหรือพวกมันต่างกันอย่างสิ้นเชิง? หากก่อนหน้านี้คุณอาจพบว่าคุณสามารถหมุนไฟล์สไตล์ (หรือชุดไฟล์) สำหรับ GeoServer ซึ่งใช้ SLD (รูปแบบ XML)
nmtoken


ฉันไม่รู้ว่าฉันสามารถถามคำถามนี้ได้ที่ไหน แต่ฉันแน่ใจว่าคุณรู้คำตอบของฉัน อยู่ที่นี่แล้วเพื่ออัปโหลด KML เป็นแหล่งข้อมูลใหม่ใน GeoServer หรือไม่ @samane
Mostafa Fallah

คำตอบ:


1

ในข้อมูลและสไตล์ของ GeoServer จะถูกแยกออกไม่มีทางที่จะผสมกันได้ คุณสามารถสร้าง SLD อัตโนมัติได้ จนถึงตอนนี้ฉันไม่รู้ว่ามีตัวแปลงสำหรับสไตล์ kml เป็น geoserver หรือไม่


1

อันดับแรกสไตล์ของ Geoserver (SLD) และ data (KML) นั้นแตกต่างกันอย่างสิ้นเชิง นำเข้าไฟล์ KML ใน Geoserver และใหม่กว่าสร้างไฟล์ SLD ในตัวแก้ไขสไตล์หรือสร้างสไตล์ภายในวิวเวอร์ (เช่น Mapfishapp) และถัดไปบันทึกไฟล์. sld เพื่อรับ sld ได้ง่ายโดยไม่ต้องเขียนภายใน XML (ยากกว่าการจำแนกประเภทหรือ รูปแบบเฉพาะอื่น ๆ เมื่อระบบบางระบบเข้าใจได้ง่าย)

ต่อมาฉันใช้ไฟล์ KML เพื่อบันทึกข้อมูล GIS และตลอดเวลาฉันสูญเสียแอตทริบิวต์ (= ข้อมูลสูญหาย) KML เก็บข้อมูลเรขาคณิตไว้ เป็นการดีกว่าที่จะบันทึกข้อมูล nativ ของคุณไปยังรูปแบบอื่น (แอตทริบิวต์ CSV CSV) หรือเพียงแค่สร้างตารางข้อมูลและหลังจากนั้นให้ข้อมูลทางภูมิศาสตร์หรือสร้างเลเยอร์โดยตรง (shapefile, Csv ... )

ฉันหวังว่าฉันจะช่วยคุณ ...


1

ข้อมูลเพิ่มเติมในไฟล์ kml ที่คุณต้องการใช้และคุณอ้างถึงว่า "ข้อมูลเมตา" อาจอยู่ในศัพท์แสง KML:

  1. สไตล์และสไตล์แผนที่
  2. ExtendedData
  3. ข้อมูลที่กำหนดเองในฟิลด์คำอธิบายของเครื่องหมายบอกตำแหน่งโดยปกติจะอยู่ในรูปแบบของตาราง html

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

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


1

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

จากนั้นแฮ็คสิ่งนี้เป็นรูปร่าง: https://gist.github.com/linwoodc3/0306734dfe17076dfd34e09660c198c0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.