QGIS kullanarak vektör referans PDF / SVG / DXF çizgileri? [çiftleme]


12

Seçim sonuçlarını şehrim için anket başına site bazında görselleştirmek için küçük bir web uygulaması oluşturmak istiyorum. Sonuç burada Berlin için yapılanlara çok benzeyecek . Umarım bu ne istediğimi anlamaya yardımcı olur.

İhtiyacım olan ölçekte seçim ham verileri yayınlandı ve seçim bölgelerini sıralayan çokgenleri olan bir şekil dosyasının temelinde nasıl görselleştirileceğini biliyorum. Benim sorunum - tahmin edebileceğiniz gibi - böyle bir şeyin zaten mevcut olmaması.

Aslında yayınlanan şey, ilgilendiğim bölgelerin sınırlarını çizen bir PDF dosyası: http://muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf

Çizimi kendim yeniden çizmeye hevesli değilim, bu yüzden bundan bir şekil dosyası yapmanın bir yolunu arıyorum. Neyse ki, PDf çizgileri ayrı vektör nesneleri olarak içeriyor, bunları bir SVG dosyasına çıkardım: https://www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg

Zaten SVG'yi bir DXF'ye dönüştürmeyi ve qgis 2.0.1'e aktarmayı denedim. Bu gerçekten işe yarıyor, ama (beklendiği gibi) vektörleri atlantik okyanusa yerleştiriyor ve onu düzeltmenin ve düzeltmenin bir yolunu bulamıyorum.

Bu vektörleri açık kaynak araçlarıyla jeoreferans yapmak ve son olarak bir şekil dosyası oluşturmak için şimdi ne yapabilirim?


Munster için OpenStreeMap Shapefiles'i indiremiyor musunuz? download.geofabrik.de/europe/germany/nordrhein-westfalen/… idari sınırları zaten coğrafi referanslıdır.
Mapperz

Yorum yaptığınız için teşekkürler, Mapperz! Yapabileceğim gibi görünüyor, ancak mevcut seçim bölgelerini ("Stimmbezirke") içermiyor ... yoksa içeriyor mu?
bfncs

Yanıtlar:


12

Aynı şeyi yapmaya çalışırken sorunuzu tökezledim, işte böyle yaptım:

Kullanılan yazılım:

  • Inkscape
  • QGIS 2.2
  • QGIS için Affine Transformation eklentisi

PDF'den vektör verilerini çıkarma

Yaptığınız şey bu, temel olarak PDF'yi Inkscape'te açın, istediğiniz şekilleri bulun ve tüm arka planları ve çevresindeki metni kaldırın. .Dxf dosyası olarak kaydedin .

Vektör dosyasının coğrafi referansı

Vektör dosyasıyla çalışmak için dosyayı QGIS ile bir ESRI Şekil Dosyasına dönüştürmemiz gerekir.

QGIS'i açın ve dxf dosyasını raster katmanı olarak ekleyin , koordinat sistemi olarak DHDN / Gauss-Kruger bölge 3'ü (EPSG: 31467) seçin . Katmanı sağ tıklayın, ESRI Şekil Dosyası olarak kaydedin. Bu şekil dosyasını bir raster katmanı olarak açın ve diğerini kaldırın.

Artık Münsters Wahlbezirke 0, 0 koordinatlarında bir yere sahipsiniz.

Vektörü doğru yere çevirmek (taşımak) ve yeniden boyutlandırmak için hedef koordinatları ve boyutu bulmamız gerekir. Kısa tutmak için, Wahrebezirke'nin georeferenced ama ayrıntılı olmayan başka bir GeoJSON'u vardı, bu yüzden aşağıdaki verileri hesaplamak için kullandım:

  • Hedef x, y
  • Yeni çıkarılan vektörümüz ile hedef boyut arasındaki boyut oranı (xMin, xMax ve yMin, yMax (QGIS'te katman meta verilerinden çıkarılır) kullanarak, her iki katman için x ve y yönünde boyutları elde edip oranı x ve y yönünde hesaplamak için)

Benim durumumda bunlar kabaca ortaya çıkıyor:

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

Katmanınızda Düzenleme modunu (Kurşun Kalem simgesi) etkinleştirin ve bu sayıları Affine Transformation eklentisine (Menü Vektörü, Coğrafi İşleme Araçları, Affine) koyun, "Tüm katman" ı seçin:

Afin Dönüşüm

Dönüştür'ü tıklayın, düzenleme modunu devre dışı bırakın (ve kaydedin) ve kabaca hedefinize tamamen sarı bir katman katın. Sarı rengin nasıl çıkarılacağını hiç anlamadım, bu yüzden daha iyi görünürlük için katmanı çıkarıp yeniden ekliyorum.

Raster katmanınızın çok küçük (kırmızı daire içine alınmış) olduğu bir şeye benzeyen bir görünüm elde edebilirsiniz, burayı yakınlaştırın: QGIS 2.2 Küçük Ölçekli Raster Katmanı (Belki burada bir ayarı gözden kaçırdım, bu davranışa neyin neden olduğundan emin değilim. ” katman ölçüde "yardımcı olmaz.)

Zaten coğrafi referansa sahip bir katman ekleyin, bir OpenStreetMap katmanı (OpenLayers uzantısı aracılığıyla), bir NRW WMS veya benzeri kullanabilirsiniz. Vektörünüz henüz doğru konumda değil, bu nedenle Düzenleme modunu etkinleştirerek taşıyın, ardından Unsurları Taşı aracını kullanın.

QGIS 2.2 Taşıma Özelliği

Şimdi bir polylines katmanı yaptık, son adım bu çizgilerden çokgenler yapmak. Bunu burada açıklamayacağım, daha fazla bilgi için burayı okuyun:

Sonucu buradan görebilirsiniz .


Ayrıntılı cevap için çok teşekkürler, bu sorunla ilgili daha fazla yardım almayı beklemiyordum ve bu arada projeyi beklemeye aldım. Hala adımlarınızı çoğaltmayı bitirmedim ama bu sadece ihtiyacım olan şey gibi görünüyor. Sonunda yardımın sayesinde bitirmek için sabırsızlanıyorum.
bfncs

QGIS ile düzenleme yapmak sıkıcı olabilir ve oldukça sezgisel olmayabilir (yakınlaştırma davranışı / hata? Ve diğer şeyler ile görebileceğiniz gibi), sonuç Github'da ücretsiz olarak kullanılabilir (yazının sonunda bağlantı) ). Ortaya çıkan polinleri henüz çokgenlere dönüştürmek için etrafta dolaşmadım, bunu bir süre sonra yapacağım. Düzenleme: Sadece 172 ilçe ile diğer haritaya ihtiyacınız olduğunu gördüm, ben sadece 33 ilçe haritası dönüştürdüm .. üzgünüm: D
chrki

6

GCP noktaları ile ogr2ogr kullanan başka bir iş akışı:

  1. Çizgileri svg olarak çıkarın (yukarıdaki gibi)
  2. inkscape'e yükleyin ve dxf olarak kaydedin
  3. QGIS'e EPSG ile yükleyin: CRS olarak 31467
  4. Çevredeki şehir sınırının önemli kenarlarından birkaç koordinat okuyun
  5. OSM editörü JOSM'u açın ve şehir sınırının 62591 ilişkisini indirin
  6. GPX olarak kaydet
  7. Sınırı yeni bir QGIS oturumuna yükleyin, proje CRS'sini EPSG olarak ayarlayın: 31467
  8. Yukarıdakiyle aynı noktalar için koordinatları okuyun
  9. GDAL için aşağıdaki toplu iş dosyasını oluşturun:
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

Toplu işi çalıştırın ve elde edilen şekil dosyasını QGIS'ye yükleyin:

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.