Vectơ hội thảo địa lý PDF / SVG / DXF sử dụng QGIS? [bản sao]


12

Tôi muốn tạo một ứng dụng web nhỏ để trực quan hóa kết quả bầu cử trên cơ sở trang web thăm dò ý kiến ​​cho thành phố của tôi. Kết quả sẽ rất giống với những gì đã được thực hiện cho Berlin ở đây . Hy vọng rằng điều này sẽ giúp hiểu được những gì tôi sẽ làm.

Dữ liệu thô về bầu cử theo thang đo tôi cần được công bố và tôi biết cách hình dung điều này với lý do là một hình đa giác với các đa giác riêng biệt xếp dọc theo các khu vực bầu cử. Vấn đề của tôi là - như bạn có thể đoán - rằng một cái gì đó như thế này không tồn tại.

Mặc dù điều thực sự được công bố là một tệp PDF nằm ngoài biên giới của các quận mà tôi quan tâm: http://muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf

Bản thân tôi không thích vẽ lại các đường kẻ, vì vậy tôi đang tìm cách để tạo ra một hình dạng từ điều này. May mắn thay, PDf bao gồm các đường kẻ dưới dạng các đối tượng vector riêng biệt, tôi đã trích xuất chúng thành tệp SVG: https://www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg

Tôi đã thử chuyển đổi SVG sang DXF và nhập nó vào qgis 2.0.1. Điều này thực sự hoạt động, nhưng (như mong đợi) đặt các vectơ trong đại dương đại tây dương và tôi không thể tìm cách chỉnh sửa nó và sửa lỗi này.

Bây giờ tôi có thể làm gì để định vị các vectơ này bằng các công cụ nguồn mở và cuối cùng tạo ra một shapefile?


Bạn có thể không tải xuống Shapefiles OpenStreeMap cho Munster không? download.geofabrik.de/europe/germany/nordrhein-westfalen/ ranh giới hành chính ở đó đã được tham chiếu địa lý.
Mapperz

Cảm ơn đã bình luận, Mapperz! Có vẻ như tôi có thể, nhưng nó không bao gồm các khu vực bầu cử hiện tại ("Stimmbezirke") ... hay không?
bfncs

Câu trả lời:


11

Tôi vấp phải câu hỏi của bạn trong khi cố gắng làm điều tương tự, đây là cách tôi đã làm:

Phần mềm được sử dụng:

  • Inkscape
  • Quốc gia 2.2
  • Plugin chuyển đổi affine cho QGIS

Trích xuất dữ liệu vector từ PDF

Đó là những gì bạn đã làm, về cơ bản chỉ cần mở tệp PDF trong Inkscape, tìm các hình dạng bạn muốn và xóa tất cả các hình nền và văn bản xung quanh. Lưu dưới dạng tệp .dxf .

Georeferences các tập tin vector

Để làm việc với tệp vectơ, chúng ta cần chuyển đổi nó thành tệp Shapefile ESRI với QGIS.

Mở QGIS và thêm tệp dxf dưới dạng lớp raster, chọn DHDN / Gauss-Kruger vùng 3 (EPSG: 31467) làm hệ tọa độ. Nhấp chuột phải vào lớp, lưu dưới dạng ESRI Shapefile. Mở shapefile này như một lớp raster và loại bỏ lớp kia.

Bây giờ bạn có Münsters Wahlbezirke ở đâu đó tại tọa độ 0, 0.

Để dịch (di chuyển) và thay đổi kích thước vectơ vào đúng vị trí, chúng ta cần tìm ra tọa độ và kích thước đích. Để nói ngắn gọn, tôi đã có một GeoJSON khác của Wahlbezirke được tham chiếu địa lý nhưng không chi tiết, vì vậy tôi đã sử dụng nó để tính toán dữ liệu sau:

  • Mục tiêu x, y
  • Tỷ lệ kích thước giữa vectơ vừa trích xuất và kích thước đích của chúng tôi (bằng cách sử dụng xMin, xMax và yMin, yMax (được trích xuất từ ​​siêu dữ liệu lớp trong QGIS) để lấy kích thước theo hướng x một y cho cả hai lớp, sau đó tính tỷ lệ theo hướng x và y)

Trong trường hợp của tôi, những thứ này hóa ra là đại khái:

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

Bật chế độ Chỉnh sửa (biểu tượng Bút chì) trên lớp của bạn và đặt các số này vào plugin Chuyển đổi affine (Menu Vector, Công cụ xử lý địa lý, affine), chọn "Toàn bộ lớp":

Biến đổi affine

Nhấp vào chuyển đổi, tắt chế độ chỉnh sửa (và lưu) và bạn kết thúc với một lớp màu vàng gần như hoàn toàn ở mục tiêu của bạn. Tôi chưa bao giờ tìm ra cách loại bỏ màu vàng, vì vậy tôi loại bỏ và thêm lại lớp để nhìn rõ hơn.

Bạn có thể kết thúc với một chế độ xem giống như thế này, trong đó lớp raster của bạn siêu nhỏ (khoanh đỏ), phóng to ở đây: Lớp Raster quy mô nhỏ của QGIS 2.2 (Có thể tôi đã bỏ qua một cài đặt ở đây, tôi không chắc điều gì gây ra hành vi này. "Zoom đến mức độ "không giúp đỡ.)

Thêm một lớp đã được tham chiếu địa lý, bạn có thể sử dụng lớp OpenStreetMap (thông qua tiện ích mở rộng OpenLayers), WMS NRW hoặc tương tự. Vectơ của bạn chưa ở đúng vị trí, vì vậy hãy di chuyển nó bằng cách bật chế độ Chỉnh sửa, sau đó sử dụng công cụ Move Feature (s).

Tính năng di chuyển của QGIS 2.2

Bây giờ chúng tôi đã tạo ra một lớp polylines, bước cuối cùng là tạo đa giác từ các dòng này. Tôi sẽ không giải thích rằng ở đây, đọc ở đây để biết thêm thông tin:

Xem kết quả tại đây .


Cảm ơn rất nhiều về câu trả lời chi tiết, tôi không mong đợi nhận được sự giúp đỡ về vấn đề này nữa và trong khi đó, hãy tạm dừng dự án. Tôi vẫn chưa hoàn thành việc sao chép các bước của bạn nhưng điều này trông giống như những gì tôi cần. Tôi mong muốn cuối cùng cũng hoàn thành được nhờ sự giúp đỡ của bạn.
bfncs

Chỉnh sửa bằng QGIS có thể rất tẻ nhạt và không hoàn toàn trực quan (như bạn có thể thấy với hành vi / lỗi thu phóng? Và những thứ khác ...), kết quả là trực tuyến tại Github để bạn sử dụng miễn phí (liên kết ở cuối bài ). Tôi chưa đi khắp nơi để chuyển đổi các polylines kết quả thành đa giác, sẽ làm điều đó một thời gian sau. Chỉnh sửa: Chỉ cần thấy rằng bạn cần bản đồ khác với 172 quận, tôi chỉ chuyển đổi bản đồ 33 quận .. xin lỗi: D
chrki

5

Đây là một quy trình công việc khác, sử dụng ogr2ogr với các điểm GCP:

  1. Trích xuất các dòng như svg (như trên)
  2. tải vào inkscape và lưu dưới dạng dxf
  3. Tải vào QGIS, với EPSG: 31467 dưới dạng CRS
  4. Đọc một vài tọa độ từ các cạnh quan trọng của biên giới thành phố xung quanh
  5. Mở trình soạn thảo OSM JOSM và tải xuống mối quan hệ 62591 của biên giới thành phố
  6. Lưu nó dưới dạng GPX
  7. Tải đường viền vào phiên QGIS mới, đặt CRS dự án thành EPSG: 31467
  8. Đọc tọa độ cho các điểm giống như trên
  9. tạo tệp bó sau cho 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

Chạy lô và tải shapefile kết quả vào QGIS:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.