Özel şekil dosyası verilerini OSM verileriyle birleştirin (birleştirin)


11

Arka fon

Geofabrik'ten Alberta OSM verileri indirildi ve PostgreSQL 9.1, PostGIS 2.0, Mapnik 2.1.0, osm2pgsql, Apache 2, mod_tile, renderd ve OpenLayers kullanılarak özel bir Linux sunucusunda çalıştırılmasını sağlayın:

Veriler osm2pgsqlaşağıdaki gibi kullanılarak içe aktarıldı :

osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2

Sorun

Alberta için OSM verileri eksik. OSM verisini geliştiren bir dizi şekil dosyası verildi :

City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx

Ayrıca köyler, kentsel alanlar, belediye bölge sınırları vb. İçin ek şekil dosyaları. Bir pgAdmin eklentisi kullanarak şekil dosyalarını PostgreSQL'e başarıyla aktardım . City.prjAşağıdaki gibi dosya onun projeksiyon açıklar:

GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]

Shapefile verileri ve OpenStreetMap (OSM) verilerinin her biri kendi veritabanına sahiptir, ancak şekil dosyası verilerini OSM veritabanına aktarmak istediğime inanıyorum. (Bu özel bir sunucudur ve OSM verilerinin yerel bir kopyasıdır; şekil dosyası verileri yasal olarak paylaşılamaz.)

Güncelleme # 1

Açıkçası, şekil dosyaları yol içermez: yalnızca belediye sınırları (kesinlikle OSM verilerinin bir parçası olmayan), şehirler (bazıları OSM verilerinin bir parçası olan) ve büyük şehirler için (bazıları OSM verileriyle çakışma).

Soru

Yeni şehirlerin haritada görünmesi için şekil dosyası verilerini OSM verileriyle nasıl birleştiririm?

Not: Temel endişem yinelenen verileri çözmektir (örneğin, Edmonton hem OSM'de hem de tedarik edilen şekil dosyalarında listelenmiştir).

İlgili Bağlantılar

Teşekkür ederim!


Osm etiketlerini kullanarak şekil dosyalarınızı postgis'e yükleyin - wiki.openstreetmap.org/wiki/Canadian_tagging_guidelines#Naming sonra karo sunucunuzu yenileyin, tüm yeni özellikleri osm tarzı veri olarak yüklemelisiniz.
Mapperz

Yanıtlar:


5

Giriş

Bu, çoğaltılan verileri algılamak ve kaldırmak için önemli miktarda manuel çalışma gerektirecektir. Yinelenen verileri tespit ederken ve çözerken; her iki kaynağın da aynı coğrafi biçimde olmasını istersiniz: şekil dosyası, PostGIS DB'leri veya OSM verileri.

İş Akışı

Aşağıdaki iş akışı, yinelenen verileri birleştirmeden ve çözmeden önce her iki veri kaynağının da OSM olarak kullanılmasına dayanır.

Verileri OSM'ye dönüştürmek için birkaç seçenek vardır:

A]

  1. Şekil dosyası verilerini istediğiniz gibi OSM'ye dönüştürün. 2013 veya daha sonra piyasaya sürülen ogr2ogr sürümleri (sürüm 1.10 veya üstü, IIRC) SHP'yi OSM'ye dönüştürebilir. Ayrıca ogr2osmbelirttiğiniz gibi: ogr2osm'un birkaç farklı versiyonu var, hangisini kullanırsanız kullanın - ben anormali tercih ederim , en güncel. Ne olursa olsun, çeviri dosyalarının kullandığınız ogr2osm sürümüyle uyumlu olduğundan emin olun (basitlik açısından, bağlandığım dosyalar ogr2osm sürümüyle uyumlu olmalıdır). Pnorman'ın ogr2osm'u ile uyumlu çeviri dosyalarına örnekler için buraya bakın .

Çeviri dosyasının, şekil dosyanızda istediğiniz tüm bilgilerle tamamlandığından emin olun. Çeviri dosyası, şekil dosyasının Türlerini ve niteliklerini OSM'nin Anahtarlar ve Değerlerden oluşan Etiketler olarak adlandırdığı şeye dönüştürecektir .

1 A. ogr2osm komutunu çalıştırın.

  1. Açık JOSM , Conflation eklentisini indirmek

  2. Gov verileriniz artık bir osm dosyası. Josm'u açın, Dosya> aç Verileriniz bir katman olarak var.

  3. Bilgisayarınızda yerel olarak depolanmış OSM verileriniz varsa, bunları josm olarak açın, yeni bir katman olarak da açılır.

  4. Bu iki veri kaynağının bir araya getirilmesi ve yinelenen verilerin çözümlenmesi birleşim olarak bilinir . Conflation eklentisini çalıştırın ve tüm çakışmaları çözün.

JOSM'nin hafızası tükenirse (örn. Büyük dosyalar kullanılırken), öznitelik türlerini ayırın ve bu iş akışını her biri farklı türde verilerle (örn. Sınırlar ve arazi kullanımları; otoyollar; binalar) birden çok kez tamamlayın ve son olarak birleştirin Osmum veya başka bir araç kullanarak osm dosyalarını birlikte.

B. JOSM ayrıca SHP desteği mükemmel olmasa da şekil dosyalarını okuyabilir ve bu yöntem şekil dosyasının tamamen belleğe yüklenebileceğini varsayar ...

  1. JOSM'u başlatın.
  2. Şekil dosyasını açın (örn filename.shp.).
  3. Hepsini seç.
  4. JOSM'da, SHP'den içe aktarılan öznitelikleri ve özellikleri düzenleyin ve her öznitelik bir OSM etiketine karşılık gelecek şekilde değiştirin.
  5. OSM biçimi olarak kaydedin.
  6. A4'ten devam edin ve birleştirin

OSM olarak içe aktar

OpenStreetMap verilerini sisteme aşağıdaki gibi alın:

  1. JOSM kullanılarak dönüştürülmüş OpenStreetMap (OSM) dosyalarını içeren dizine geçin.
  2. Veritabanında aşağıdaki komutları yürütün:
    UZATMA OLUŞTUR hstore;
    osm2pgsql -j -W \
              -d osm dosyaadı.osm

Bu -jseçenek, etiketleri bir hstoresütuna almak için osm2pgsql'ye talimat verdiği için anahtardır , bu da temeldeki veri yapısını korur ve tüm etiketleri veritabanına içe aktarır .

Mapnik Katmanı Oluştur

Verilerin haritada görünmesini sağlamak için, o katmana bir katman ve bir stil ekleyin. Bu, aşağıdakiler kadar basit olabilir:

  1. Düzenle mapnik-stylesheets/osm.xml.
  2. Aşağıdaki XML kodunu kapanış </Map>etiketinden önce ekleyin ...

...

<Layer name="prefix_zone" status="on" srs="&osm2pgsql_projection;">
  <StyleName>zones</StyleName>
  <Datasource>
    <Parameter name="table">
    (select way from prefix_line order by tags desc, z_order) as zones
    </Parameter>
    &datasource-settings;
  </Datasource>
</Layer>

Mapnik Stili Oluştur

Önceki bölümden devam:

  1. Son </Style>etiketi bulun (satır 3350 civarında).
  2. Aşağıdaki XML kodunu &layer-shapefiles;yönergeden önce ekleyin :

...

<Style name="zones">
  <Rule>
    &maxscale_zoom1;
    &minscale_zoom19;
    <LineSymbolizer stroke="#0065BD" stroke-width="2.5" />
  </Rule>
</Style>

Roadmatcher

roadmatcher yardımcı olabilecek başka bir araçtır


OpenJUMP 1.5.1, RoadMatcher 1.4 ile uyumlu değildir. RoadMatcher 1.4'ü kullanabilen OpenJUMP 1.3.1, PostGIS 2.0 ile uyumlu değildir (çünkü OpenJUMP çağrıları find_extentyerine st_find_extent). Veritabanında PostGIS 2.0 yüklü.
Dave Jarvis

JOSM'un OpenData eklentisi şekil dosyalarını
Dave Jarvis
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.