使用QGIS的地理配准矢量PDF / SVG / DXF线条?[重复]


12

我想创建一个小型Web应用程序,以可视化方式显示我所在城市的每个投票站点的选举结果。其结果将是非常相似,已经对柏林进行了这里。希望这有助于理解我要做什么。

我所需规模的选举原始数据已发布,并且我知道如何基于shapefile可视化该数据,shapefile中有单独的多边形排列在选举区域中。我的问题是-您可能已经猜到了-这样的东西还不存在。

不过实际上发布的是一个PDF文件,该文件列出了我感兴趣的地区的边界:http : //muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf

我不希望自己重新绘制线条,因此我正在寻找一种方法来制作shapefile。幸运的是,PDf将线条作为单独的矢量对象包含在内,我将它们提取到了SVG文件中:https : //www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg

我已经尝试过将SVG转换为DXF并将其导入qgis 2.0.1。这实际上是可行的,但是(按预期方式)将矢量放置在大西洋中,我找不到编辑和修复此问题的方法。

现在我该怎么做才能使用开放源代码工具对这些向量进行地理参考并最终生成一个shapefile?


您不能为Munster下载OpenStreeMap Shapefiles吗?download.geofabrik.de/europe/germany/nordrhein-westfalen/…行政区域已被地理定位。
Mapperz

感谢您的评论,Mapperz!看起来我可以,但是它不包括当前的选举区(“ Stimmbezirke”)……还是吗?
bfncs

Answers:


12

在尝试做同样的事情时,我偶然发现了您的问题,这是我的做法:

使用的软件:

  • 墨迹
  • QGIS 2.2
  • 用于QGIS的仿射转换插件

从PDF提取矢量数据

这是您已经完成的工作,基本上只是在Inkscape中打开PDF,找到所需的形状,然后删除所有背景和周围的文本。另存为.dxf文件。

地理配准矢量文件

要使用矢量文件,我们需要使用QGIS将其转换为ESRI Shapefile。

打开QGIS并将dxf文件添加为栅格图层,选择DHDN / Gauss-Kruger区域3(EPSG:31467)作为坐标系。右键单击图层,另存为ESRI Shapefile。打开此shapefile作为栅格图层,然后删除另一个。

现在,您在坐标0,0处有MünstersWahlbezirke。

为了平移(移动)向量并将其调整到正确的位置,我们需要找出目标坐标和大小。为了简短起见,我使用了另一个Wahlbezirke的GeoJSON,它已进行地理参考,但没有详细说明,因此我用它来计算以下数据:

  • 目标x,y
  • 我们刚提取的向量与目标尺寸之间的尺寸比(通过使用xMin,xMax和yMin,yMax(从QGIS中的图层元数据中提取)来获取两个图层在x和y方向上的尺寸,然后计算x和y方向上的比例)

在我看来,这些大致是:

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

在图层上启用“ 编辑”模式(铅笔图标),然后将这些数字放入“仿射变换”插件(菜单矢量,地理处理工具,仿射),选择“整个图层”:

仿射变换

单击变换,禁用编辑模式(并保存),最终在目标处出现一个全黄色的图层。我从来没有想过如何删除黄色,所以我删除并重新添加了图层以获得更好的可见性。

您可能最终得到一个看起来像这样的视图,其中您的栅格图层非常小(用红色圆圈圈出),请在此处放大:( QGIS 2.2小规模栅格图层 也许我忽略了这里的设置,我不确定是什么原因导致了这种行为。达到一定程度”无济于事。)

添加已经进行地理参考的图层,您可以使用OpenStreetMap图层(通过OpenLayers扩展),NRW WMS或类似的图层。您的矢量尚未位于正确的位置,因此,请通过启用“编辑”模式来移动它,然后使用“移动特征”工具。

QGIS 2.2移动功能

现在我们已经制作了一层折线,最后一步是从这些线制作多边形。我不会在这里解释,请阅读此处以获取更多信息:

这里查看结果。


非常感谢您提供详细的答案,但我没想到在这个问题上再也找不到帮助,同时暂停了该项目。我仍然没有完成复制您的步骤,但这看起来就像我所需要的。感谢您的帮助,我期待最终将其完成。
bfncs

使用QGIS进行编辑可能很乏味且不够直观(如您所看到的zoom behaviour / bug?和其他内容...),结果在Github上在线供您免费使用(文章末尾的链接) )。我还没有到处将生成的折线转换为多边形,将在一段时间后执行。编辑:刚才看到你所需要的其他地图有172个区,我只是转换了33个区地图..不好意思:d
chrki

6

这是另一个将ogr2ogr与GCP点结合使用的工作流程:

  1. 将行提取为svg(如上所述)
  2. 加载到inkscape中并另存为dxf
  3. 加载到QGIS中,EPSG:31467作为CRS
  4. 从周围城市边界的重要边缘读取几个坐标
  5. 打开OSM编辑器JOSM并下载城市边界的关系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

运行批处理并将生成的shapefile加载到QGIS中:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.