การวางระบบตำแหน่งทางภูมิศาสตร์เวกเตอร์ PDF / SVG / DXF โดยใช้ QGIS? [ซ้ำ]


12

ฉันต้องการสร้างเว็บแอปพลิเคชันขนาดเล็กเพื่อให้เห็นภาพผลการเลือกตั้งบนพื้นฐานของแบบสำรวจความคิดเห็นต่อเมืองของฉัน ผลที่ได้คือจะคล้ายกันมากกับสิ่งที่ได้กระทำเบอร์ลินที่นี่ หวังว่านี่จะช่วยในการทำความเข้าใจกับสิ่งที่ฉันจะทำ

ข้อมูลดิบสำหรับการเลือกตั้งในระดับที่ฉันต้องการนั้นได้รับการเผยแพร่และฉันรู้วิธีที่จะเห็นภาพนี้ในพื้นที่ของ shapefile ที่มีรูปหลายเหลี่ยมแยกออกจากกันในเขตการเลือกตั้ง ปัญหาของฉันคือ - อย่างที่คุณอาจคาดเดาได้ - สิ่งนี้ไม่ได้มีอยู่จริง

สิ่งที่ได้รับการตีพิมพ์จริง ๆ แล้วเป็นไฟล์ PDF ที่แยกออกมาตามเขตของเขตที่ฉันสนใจ: http://muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf

ฉันไม่กระตือรือร้นที่จะวาด linework ใหม่ด้วยตัวเองดังนั้นฉันจึงกำลังมองหาวิธีสร้างไฟล์รูปร่างจากสิ่งนี้ โชคดีที่ PDf มี linework เป็นวัตถุเวกเตอร์แยกฉันแยกมันเป็นไฟล์ SVG: https://www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg

ฉันได้ลองแปลง SVG เป็น DXF แล้วนำเข้าเป็น qgis 2.0.1 ใช้งานได้จริง แต่ (ตามที่คาดไว้) วางเวกเตอร์ในมหาสมุทรแอตแลนติกและฉันไม่สามารถหาวิธีแก้ไขและแก้ไขได้

ตอนนี้ฉันสามารถทำอะไรเพื่ออ้างอิงเวกเตอร์เหล่านี้ด้วยเครื่องมือโอเพนซอร์สและในที่สุดก็สร้างไฟล์เชพ?


คุณไม่สามารถดาวน์โหลด OpenStreeMap Shapefiles สำหรับ Munster ได้หรือไม่? download.geofabrik.de/europe/germany/nordrhein-westfalen/…ขอบเขตการบริหารมีการอ้างอิงทางภูมิศาสตร์แล้ว
Mapperz

ขอบคุณสำหรับการแสดงความคิดเห็น Mapperz! ดูเหมือนว่าฉันจะทำได้ แต่ไม่รวมเขตการเลือกตั้งในปัจจุบัน ("Stimmbezirke") ... หรือไม่?
bfncs

คำตอบ:


12

ฉันสะดุดกับคำถามของคุณในขณะที่พยายามทำสิ่งเดียวกันนี่คือวิธีที่ฉันทำ:

ซอฟต์แวร์ที่ใช้:

  • Inkscape
  • QGIS 2.2
  • Affine Transformation plugin สำหรับ QGIS

แยกข้อมูลเวกเตอร์จาก PDF

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

การอ้างอิงทางภูมิศาสตร์ไฟล์เวกเตอร์

ในการทำงานกับไฟล์เวกเตอร์เราจำเป็นต้องแปลงเป็นไฟล์ ESRI Shapefile ด้วย QGIS

เปิด QGIS และเพิ่มไฟล์ dxf เป็นเลเยอร์แรสเตอร์ให้เลือกDHDN / Gauss-Kruger zone 3 (EPSG: 31467)เป็นระบบพิกัด คลิกขวาที่เลเยอร์บันทึกเป็น ESRI Shapefile เปิด shapefile นี้เป็นเลเยอร์แรสเตอร์และเอาอีกอันหนึ่งออก

ตอนนี้คุณมีMünsters Wahlbezirke ที่ไหนสักแห่งที่พิกัด 0, 0

ในการแปล (ย้าย) และปรับขนาดเวกเตอร์ให้ถูกที่เราจำเป็นต้องค้นหาพิกัดและขนาดเป้าหมาย เพื่อให้สั้นฉันมี GeoJSON อีกแห่งของ Wahlbezirke ที่ถูกอ้างอิงทางภูมิศาสตร์ แต่ไม่ละเอียดดังนั้นฉันใช้มันเพื่อคำนวณข้อมูลต่อไปนี้:

  • เป้าหมาย x, y
  • อัตราส่วนขนาดระหว่างเวกเตอร์ที่แยกออกมาและขนาดเป้าหมาย (โดยใช้ xMin, xMax และ yMin, yMax (แยกจากข้อมูลเมตาของเลเยอร์ใน QGIS) เพื่อให้ได้ขนาดในทิศทาง x เป็น y สำหรับทั้งสองชั้นจากนั้นคำนวณอัตราส่วนในทิศทาง x และ y

ในกรณีของฉันสิ่งเหล่านี้กลายเป็นเรื่องคร่าวๆ:

target x 3406388
target y 5745290
yratio 118,539696
xratio 118,637678

เปิดใช้งานโหมดแก้ไข (ไอคอนดินสอ) บนเลเยอร์ของคุณและใส่ตัวเลขเหล่านี้ลงในปลั๊กอิน Affine Transformation (เมนูเวกเตอร์, เครื่องมือการประมวลผลทางภูมิศาสตร์, Affine) เลือก "ทั้งเลเยอร์":

เลียนแบบการแปลง

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

คุณอาจจบลงด้วยมุมมองที่มีลักษณะเช่นนี้ที่เลเยอร์แรสเตอร์ของคุณเล็กมาก (วนเป็นวงกลมสีแดง) ซูมเข้าไปที่นี่: QGIS 2.2 Raster Layer ขนาดเล็ก (บางทีฉันอาจมองข้ามการตั้งค่าที่นี่ฉันไม่แน่ใจว่าอะไรเป็นสาเหตุของพฤติกรรมนี้ "ซูม ถึงระดับเลเยอร์ "ไม่ได้ช่วย)

เพิ่มเลเยอร์ที่อ้างอิงทางภูมิศาสตร์แล้วคุณอาจใช้เลเยอร์ OpenStreetMap (ผ่านส่วนขยาย OpenLayers), NRW WMS หรือคล้ายกัน เวกเตอร์ของคุณยังไม่อยู่ในตำแหน่งที่ถูกต้องดังนั้นให้ย้ายโดยเปิดใช้งานโหมดแก้ไขจากนั้นใช้เครื่องมือย้ายคุณลักษณะ

QGIS 2.2 ย้ายฟีเจอร์

ตอนนี้เราได้สร้างชั้นของ polylines ขั้นตอนสุดท้ายคือการสร้างรูปหลายเหลี่ยมจากเส้นเหล่านี้ ฉันจะไม่อธิบายว่าที่นี่อ่านที่นี่สำหรับข้อมูลเพิ่มเติม:

เห็นผลที่นี่


ขอบคุณมากสำหรับคำตอบโดยละเอียดฉันไม่ได้คาดหวังว่าจะได้รับความช่วยเหลือเกี่ยวกับปัญหานี้อีกต่อไปและในขณะเดียวกันก็ทำให้โครงการหยุดชะงัก ฉันยังคงไม่เสร็จสิ้นในการทำซ้ำขั้นตอนของคุณ แต่ดูเหมือนว่าสิ่งที่ฉันต้องการ ฉันรอคอยที่จะทำให้มันสำเร็จในที่สุดด้วยความช่วยเหลือของคุณ
bfncs

การแก้ไขด้วย QGIS นั้นน่าเบื่อและไม่ง่ายนัก (อย่างที่คุณเห็นด้วยพฤติกรรมการซูม / ข้อบกพร่อง? และสิ่งอื่น ๆ ... ) ผลที่ได้คือออนไลน์ที่ Github เพื่อให้คุณใช้งานฟรี (ลิงก์ที่ท้ายโพสต์ ) ฉันยังไม่ได้ไปเปลี่ยนโพลีนที่เป็นผลลัพธ์เป็นรูปหลายเหลี่ยมจะทำอีกครั้งในภายหลัง แก้ไข:เพิ่งเห็นว่าคุณต้องการแผนที่อื่นที่มี 172 เขตฉันได้แปลงแผนที่ 33 เขตเท่านั้นขออภัย: D
chrki

6

นี่คือเวิร์กโฟลว์อื่นโดยใช้ ogr2ogr กับคะแนน GCP:

  1. แยกบรรทัดเป็น svg (ดังกล่าวข้างต้น)
  2. โหลดเข้าสู่ inkscape และบันทึกเป็น dxf
  3. โหลดลงใน QGIS ด้วย EPSG: 31467 เป็น CRS
  4. อ่านสองพิกัดจากขอบสำคัญของเส้นขอบเมืองโดยรอบ
  5. เปิด JOSM editor OSM และดาวน์โหลดความสัมพันธ์ 62591 ของเส้นขอบเมือง
  6. บันทึกเป็น GPX
  7. โหลดเส้นขอบลงในเซสชัน QGIS ใหม่ตั้งค่าโครงการ CRS เป็น EPSG: 31467
  8. อ่านพิกัดสำหรับจุดเดียวกับด้านบน
  9. สร้างไฟล์แบตช์ต่อไปนี้สำหรับ GDAL:
ogr2ogr -a_srs EPSG:31467 -gcp 66.2423 264.3829 3397709. 5756806. -gcp 227.530 17.636 3404474. 5746477. -gcp 443.61 153.42 3413517. 5752162. -gcp 456.24 421.97 3414043. 5763404. -gcp 294.56 552.56 3407296. 5768889. stimmbezirke.shp stimmbezirke.dxf

รันแบตช์และโหลดรูปร่างไฟล์ผลลัพธ์ลงใน QGIS:

ป้อนคำอธิบายรูปภาพที่นี่

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