OpenStreetMap verilerinin QGIS'e yüklenmesi?


36

QGIS 1.8'de, sunucudan veri istemek için openstreetmap eklentisini kullandım veya QGIS'te 3 katman (çokgenler, poliller ve noktalar) üreten bir .osm XML dosyası açtım.

Bu harikaydı (üzerinde çalıştığım taze eşlenmiş alanı çok fazla etkileyen 64 bitlik hatayı ver ya da al), ancak bunu QGIS 2.x'te nasıl yaparım?

Bununla ilgili güncellenmiş herhangi bir belge bulamıyorum.

Vektör menüsünde, osm sunucularından içe aktarmayı denedim, bir .osm dosyası alıyorum, ancak daha sonra sıkışıp kaldım. Bir XML dosyasını yüklemek için bir menü seçeneği var, ancak bir spatialite katmanı olarak eklemeye çalıştığımda sadece geometri olmayan tablolara sahip olan bir spatialite db üretiyor. Öznitelik tablosunu açarsam, düğüm kimliklerini, yollarını vb. Görebiliyorum, ancak bunlardan nasıl faydalanabileceğimi çözemiyorum.

Ayrıca .osm XML dosyasından bir vektör katmanı eklemeyi denedim. Hiçbir şey gösteren bir gpsbabel penceresi alıyorum, ardından QGIS’te geçersiz bir veri kaynağı mesajı var.


2
Tom, OSM verilerini bir QGIS'e almak için adım adım talimatlar yazdım. Umarım bu yeni başlayanlar için takip etmek kolaydır. qgistutorials.com/en/docs/downloading_osm_data.html
spatialthoughts

İşte iyi bir stil (güzel kurulum talimatları ile): github.com/yannos/Beautiful_OSM_in_QGIS PostGIS (Spatialite değil) için tasarlanmıştır.
18'de saat

Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Şu kaynaktan
csk

Yanıtlar:


40

QGIS 3.x Güncellemesi : QGIS 2'den eski OSM ithalatçısı, birçok çözülmemiş hata nedeniyle QGIS 3'te düşürüldü. QuickOSM eklentisi ayrıca osm raw dosyalarını okumayı da sağlar. Kullanıcı Katmanı - Katman Ekle - Vektör Katmanı Ekle'yi kullanabilirsiniz. Bu durumda, OSM verileri, http://gdal.org/drv_osm.html tarafından belgelendiği gibi GDAL ile açılır.


In QGIS 2.x , katılan 3 adım vardır

  1. Bir OSM Dosyası alın, josm veya üst geçit veya başka bir kaynak kullanarak elde edebilirsiniz. Geçerli bir xml olmalı. Ayrıca qgis Vector> OpenStreetMap> OSM Verilerini İndirme menüsünden de indirebilirsiniz , ancak bazen sonuç vermez. Üst geçit turbo kullanmanızı tavsiye ederim .
  2. Vector> OpenStreetMap> Topolojiyi XML'den içe aktar , dediğiniz gibi bu, geometri dışı tablolara sahip bir spatialite veritabanı oluşturacak. Bu bence topoloji.
  3. Son olarak, Vector> OpenStreetMap> Topolojiyi Spatialite'e Dışa Aktar seçeneğiyle veri alabilirsiniz , burada yukarıda yapılan db dosyasını vermeniz gerekir ve qgis 1.8'de olduğu gibi puan, çizgi veya çokgen seçme seçeneğiniz vardır . Ki Aşağıda verilen etiketler bölümünde size dosyasında bulunan tüm etiketleri yüklemek ve sadece size gereken olanları seçebilirsiniz. Bu 1.8'den daha fazla özellik.

Katman haritaya eklenir, tüm düğümleri istiyorsanız 3. adımı diğer seçeneklerle yineleyebileceğiniz yollar.

http://wiki.openstreetmap.org/wiki/QGIS#QGIS2_OpenStreetMap_Vectors


4
Bu inanılmaz derecede karmaşık hissediyor, ancak işe yarıyor. Netlik açısından, 3. adımdan sonra, hala bir spatialite katmanı eklemeniz, yarattığınız db'ye bağlanmanız ve sonuçta son olarak görmek için 3. adımda yaratılan katmanları seçmeniz gerekir. Yardımın için teşekkürler!
Laurent S

Benim için katmanlar otomatik olarak oluşturuldu ve eklendi. Veritabanına bağlantı 2. adımda kuruldu (işaretini kaldırmadıysanız).
AndreJ

15

Eklentiyi kullanarak OSM verilerini indirirken ve ithalat ve ihracat hareketlerinden çok sıkıcı geçti. Bu yüzden farklı bir çözüm yazdım: http://anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/

Özet:

Ham OSM dosyaları oldukça büyük olabilir. Sıkıştırılmış ikili indirmek için kesinlikle tercih nedeni budur PBF yerine XML .osm formatının biçimini. Bir indirme kaynağı olarak Geofabrik'i öneririm .

İlk ön işleme adımı: ilgilenilen alanı çıkarmak için Osmosis kullanabiliriz:

C:\Users\anita_000\Geodata\OSM_Noirmoutier>..\bin\osmosis.bat --read-pbf pays-de-la-loire-latest.osm.pbf --bounding-box left=-2.59 bottom=46.58 right=-1.44 top=47.07 --write-xml noirmoutier.osm

QGIS .osm dosyalarını da yükleyebilse de, .osm dosyası spatialite dönüştürülürse, performans ve özniteliklere erişimin daha da geliştiğini tespit ettim.

C:\Users\anita_000\Geodata\OSM_Noirmoutier>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES noirmoutier.db noirmoutier.osm

QGIS'de SpatiaLite Katmanı Ekle'yi kullanarak noktaları, çizgileri ve çokgenleri yükleyebiliriz. Spatialite tabloları yüklediğimizde bazı sorunlar var:

  • Kara poligonu yoktur. Bunun yerine, “sahil şeridi” çizgi özellikleri vardır.
  • Nehir çokgenlerinin çoğu kayıp. Bunun yerine “nehir kenarı” çizgi özellikleri var.

Kayıp nehir çokgenlerini oluşturmak çok da önemli değil:

  1. suyolu = nehir kıyısındaki tüm hatları seçin.
  2. Seçilen nehir kenarı çizgileri tarafından çevrelenen bölgelerden otomatik olarak çokgenler oluşturmak için işleme araç kutusundan Çokgenleme aracını kullanın. (Varsayılan olarak İşleme seçeneğinin yalnızca seçilen özelliklerde çalıştığını, ancak bu ayarın İşleme ayarlarında değiştirilebileceğini unutmayın.)

Kara poligonu oluşturmak (veya bazı nedenlerden dolayı tercih ederseniz deniz poligonu) biraz daha fazla söz konusudur, çünkü çoğu zaman ana kıtadan bir kara parçasını kestiğimiz basit bir nedenden dolayı sahil şeridi kapalı olmayacaktır. . Bu nedenle, Poligonize aletlerini kullanmadan önce alanı kapatmalıyız. Bunu yapmak için önce "other_tags" LIKE '% "natural" => "coastline"%' kullanarak sahil şeridini seçmenizi ve bu seçimden yeni bir katman oluşturmanızı (seçimi farklı olarak kaydet…) ve düzenlemeyi (unutma) öneririm yapışmayı etkinleştirmek için!) alanı kapatmak için çizgiler ekleyin. Sonra çokgenleştir.


Oldukça güvenilir bir bilgisayar kullanıyorsanız ve ogr2ogr aşamasının bir sonraki buz çağından önce tamamlanmasını istiyorsanız, ekleyin --config OGR_SQLITE_SYNCHRONOUS OFF.
14:49

6

Eklentiyi beğenmezseniz, Overpass API ile ihtiyacınız olan OSM verilerini alın ve sonucu Add Vector Layer(enabeling All filesfilter) ile QGIS'e ekleyin .

QGIS 2.0, GDAL 1.10'un ogr2ogr OSM ithalatçısını kullanıyor ve bu da iyi bir iş çıkarıyor.

İlişki desteği şu an için eklentiden daha iyi görünüyor.

Sadece yolları ve ilişkileri tamamen indirdiğinizden emin olun , tüm yolların düğümleri ve tüm bu düğümlerin tüm düğümleri.


4

Biliyorsun, verileri SpatialLite'a koymana gerek yok . Sadece yapabilirsiniz:

  1. Verileri indir (Vektör> OpenStreetMap> Veri İndir, bir .osm dosyası oluşturur)
  2. Verileri (.osm dosyası) vektör katmanı (Katman> Vektör Katmanı Ekle) olarak yükleyin. Dosyayı seçtikten sonra, hangi katmanları eklemek istediğinizi soracaktır (GDAL her tür için ayrı dosyalar oluşturduğundan: Nokta, Çizgi, MultiLine, MultiPolygon, GeomCollection). Ne istediğinizi seçin ve yükleyin.

Bu bir şekilde çalışır, ancak etiketleri temel alarak katmanları ayırmadığı görülmektedir. Dolayısıyla, temelde yollar ve nehirler aynı Line katmanında son buluyor ve sonuçta elde edilen veriler üzerinde analiz yapmak istiyorsanız bu gerçekten yardımcı olmuyor.
Laurent S

Sorunuzdan, aktarıldıktan sonra verilerle ne yaptığınız net değildi. Elbette QGIS içindeki verilerden istediğiniz özellikleri seçebilirsiniz. Yukarıda da belirtildiği gibi, yalnızca belirli veriler istediğinizi (ve çok geniş bir alanda bulunmadığını) biliyorsanız, Overpass ile veri indirme, yalnızca belirli özellikler için önceden seçebileceğinizden muhtemelen daha iyi olacaktır. Overpass Turbo'yu sorgu geliştirmek için kullanıcı dostu bir yol olarak görüyorum. İşte sınırlama kutusundaki tüm otoyollara bir örnek: overpass-turbo.eu/s/2VX
neuhausr
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.