มากกว่า

ความสัมพันธ์ขอบเขต OpenStreetMap หายไปเมื่อส่งออกไปยัง spatialite ด้วย ogr2ogr?

ความสัมพันธ์ขอบเขต OpenStreetMap หายไปเมื่อส่งออกไปยัง spatialite ด้วย ogr2ogr?


ฉันกำลังทำงานในแผนที่ของจังหวัดปาปัวนิวกินี ใน OpenStreetMap (OSM) ฉันได้อัปเดตและเพิ่มความสัมพันธ์ใหม่สำหรับขอบเขตของ admin_level=5 และ admin_level=6 ซึ่งไม่เคยมีมาก่อน

ความสัมพันธ์ที่ฉันกำลังวิเคราะห์มีดังต่อไปนี้:5,259,918และ5,259,919. คุณสามารถตรวจสอบได้ที่นี่:

http://ra.osmsurround.org/analyzeRelation?relationId=5259918

http://ra.osmsurround.org/analyzeRelation?relationId=5259919

ฉันดึงข้อมูล OSM ด้วยhttp://extract.bbbike.orgในรูปแบบ PBF จากนั้นฉันส่งออกด้วย ogr2ogr โดยใช้คำสั่งที่คล้ายกับต่อไปนี้

ogr2ogr -f "SQLite" -dsco SPATIALITE=ใช่ png-full-test.db planet_xxx.osm.pbf

ผลลัพธ์ .db จะถูกใช้ใน QGIS เพื่อสร้างแผนที่ในภายหลัง ฉันใช้กำหนดเอง osmconf.ini เพื่อแยกแท็กที่ฉันต้องการสำหรับแผนที่ของฉัน

ความสัมพันธ์ถูกสร้างขึ้นโดยใช้ทั้งเส้นที่ไม่มีอยู่ (เส้นขอบที่ไม่มีคุณลักษณะอื่น สร้างขึ้นเพื่อจุดประสงค์นี้เท่านั้น) และเส้นที่มีอยู่ (เช่น แม่น้ำ ซึ่งเป็นส่วนหนึ่งของความสัมพันธ์) หลังไม่มีแท็กเฉพาะสำหรับ ขอบเขต = การบริหาร หรือ admin_level=6 เนื่องจากสิ่งเหล่านี้รวมอยู่ในความสัมพันธ์ (และตามความเข้าใจที่ดีที่สุดของฉัน ไม่จำเป็นต้องใส่สองครั้ง)

อย่างไรก็ตาม เมื่อฉันเปิดไฟล์ผลลัพธ์ เฉพาะบรรทัดที่มีแท็กเพิ่มอย่างชัดเจนเท่านั้นที่จะแสดงขึ้น อย่างแม่น้ำหรือถนนซึ่งเป็นส่วนหนึ่งของความสัมพันธ์แต่ไม่มีทั้งสองอย่าง เขตแดน หรือ admin_level แท็กจะไม่อยู่ในตารางผลลัพธ์ (other_relations, lines, points, multilinestrings หรือ multipolygons) พวกเขาหายไปในกระบวนการ วิธีแก้ปัญหาที่รวดเร็วและสกปรกคือการเพิ่มแท็กที่หายไปในแม่น้ำ/ถนน แต่ฉันสงสัยว่ามีวิธีอื่นที่สะอาดกว่านี้ในการแก้ปัญหาหรือไม่


คุณแน่ใจหรือไม่ว่าข้อมูลใหม่มีอยู่แล้วในไฟล์ต้นฉบับของคุณ บางทีคุณอาจดาวน์โหลดด้วย overpass api ซึ่งเป็นปัจจุบันเสมอ

บรรทัดที่มีอยู่จะไม่ได้รับแท็กขอบเขตใดๆ จากความสัมพันธ์ที่เป็นสมาชิก แต่ความสัมพันธ์ทั้งหมดจะถูกสร้างขึ้นเป็นรูปหลายเหลี่ยมที่แยกจากกันโดยมี ID ความสัมพันธ์เชิงลบ


มันอาจจะไม่ตอบสนองต่อคำตอบของคุณจริงๆ แต่ (และหากไฟล์ต้นฉบับของคุณมีการแก้ไขของคุณอยู่แล้ว ตามที่แนะนำโดยคำตอบก่อนหน้านี้) ฉันเดาว่า ogr2ogr บางครั้งอาจมีผลลัพธ์ผสมกันเมื่อจัดการกับรูปหลายเหลี่ยมหรือความสัมพันธ์หากข้อมูล OSM ไม่ ไม่เคารพสคีมาที่กำหนดโดย ogr2ogr อย่างเคร่งครัด คุณคงเคยดูคำถามนี้และนักประดาน้ำ OGR สำหรับ OSM แล้วหรือยัง นอกจากนี้ ผู้ร่วมให้ข้อมูล OSM นี้ยังอ้างถึงปัญหาบางประการเกี่ยวกับการแยกขอบเขต

แต่บางทีคุณพูดให้ละเอียดกว่านี้ได้ไหมว่าวิธีการบางอย่างหายไปในกระบวนการ คุณหมายความว่าอย่างไรกันแน่ ? คุณใช้คำขอ SQL ในบรรทัดคำสั่ง ogr2ogr หรือไม่ หรือคุณหมายความว่าวิธีที่คุณพูดถึง (เช่น แม่น้ำซึ่งเป็นส่วนหนึ่งของความสัมพันธ์ที่อธิบายขอบเขตการบริหาร) มีอยู่จริง แต่ไม่มีการอ้างอิงถึงบทบาทของเขาในความสัมพันธ์ ? หรือว่าไม่มีรูปหลายเหลี่ยมที่สร้างขึ้นเมื่อควรจะเป็นโดยใช้วิธีการดังกล่าว ?


ดูวิดีโอ: สอน Excel: การสรางกราฟ XY Scatter