QML’yi kullanarak özniteliklerini kaybetmeden KML’yi şekil dosyasına dönüştürme?


29

Yüzlerce puanlık bir KML dosyam var. Her noktaya, Ad, Güç, Yaş gibi bilgiler var (bu bir hidroenerji santralinin haritası). Bu KML dosyasını QGIS'e aktarırsam, bu bilgiler kaybolur.

Bu bilgiyi saklayabilmemin bir yolu var mı?

Bilgi şöyle görünür:

<ExtendedData>
 <SchemaData schemaUrl="#vorlage">
  <SimpleData name="Name">Test</SimpleData>
  <SimpleData name="Power">10895</SimpleData>
  <SimpleData name="Location">L</SimpleData>
 </SchemaData>
</ExtendedData>

Kodumda bir sorun mu var?


1
.kmlQGIS’e nasıl aktarıyorsunuz ? Bu biçim, temel biçimlerden biri olarak desteklenir; bu nedenle, bir kmldosyayı katman olarak eklemek nispeten ağrısız bir işlem olmalıdır . Daha fazla ayrıntı verirseniz, biri neyin yanlış gittiğini anlamaya yardımcı olabilir. Ayrıca dosyanın kaynağı hakkında bilgi yararlı olabilir.
Spatial

1
kml ile canlı bir bağlantınız var mı?
Mapperz

FME üzerinden mümkün olacağını düşünüyorum, ya da biraz maceraperest hissederseniz, kml'yi (xml!) Ayrıştırmak ve shapefile dışa aktaracak bir python betiği yazabilirsiniz. (kullanılacak kütüphaneler: python shapefile kütüphanesi, python kaynaklı herhangi bir XML)
U2ros

2
RK evet bunu gördüm. Her ne kadar daha iyi bir açıklama ile yeni bir soru sormaya karar verdim, çünkü bunun için tatmin edici bir çözüm bulunmuyor. Ayrıca başka bir deneme çemberinden sonra sorun, sulak alanların KML dosyalarının çevrimiçi KML doğrulayıcısında test edildiğinde geçerli KML olmaması ve birçok hatayla gelmesi olabilir ...
Miro

1
U2ros Online FME'yi başarı olmadan denedim. Belki masaüstü FME, bir sonraki "yükleme raundunda" denemeyi deneyebilirim ... ... kml'yi shp :-) 'e çevirecek program komut dosyası için yeterince maceralı hissetmiyorum. Ama en kötü durumda, KML'den geçecek bir senaryo yazmayı hayal edebilirim, her özellik için "ExtendedData" yı bulur ve "isim" üzerinden QGIS / ArcGIS / Mapinfo'da dönüştürülen KML'ye katılabileceğim tablo / csv oluşturur ...
Miro

Yanıtlar:


15

ExtendedData, doğru "ad" değerlerine sahip değil.

Örneğin

<Data><displayName>System</displayName><value>Riverine</value></Data>

GDAL ve Qgis Master tarafından ithal edilmiyor.

<Data name="System"><displayName>System</displayName><value>Riverine</value></Data>

içe aktarılıyor.

Bunu iyi bir metin editörü ile değiştirebilirsiniz.

------------------- Miro tarafından eklenmiştir ---------------------

KML düzenleme için PSPad (veya Notepad ++ ve diğer birçok serbest metin editörü) gibi Replace işlevinde "Regular Expression" işlevine izin veren metin düzenleyicisini kullanmak gerekir.

bul: <Data><displayName>(.*)</displayName>

Değiştir: <Data name="$1"><displayName>$1</displayName>

Bundan sonra sadece QGIS kullanın (anahtar "yeni" versiyondur - GDAL Sürüm 1.9.2'den itibaren bulunur) ve "vektör katmanı ekle" ve katman tüm "ExtendedData" ile yüklenir.


Teşekkürler, bu KEY bilgisiydi. Bir test dosyasında değiştirmeyi denedim ve mükemmel çalıştı. Tüm "ExtendedData" artık sütunlar halinde tablodadır. Tekrar çok teşekkür ederim.
Miro

3
Aslında, DisplayName Qgis tarafından kullanılmaz. Böylece, değiştirme, <Data> <DisplayName> yerine <Data name = "ve </DisplayName>"> ile değiştirilerek RegExp kullanılmadan yapılabilir.
AndreJ

1
KML dosyam ayrıca QGIS'de açmak için yorum yapmak zorunda olduğum bir <SchemaData> etiketini de içeriyordu. Ama aksi halde hile mükemmel çalıştı!
Djana

8

Globalmapper ile sulak alan dosyalarından birini biçimlendirmeye dönüştürdüm: dönüştürülmüş dbf dosyalarından (alanlar ve çizgiler) iki ekran görüntüsü aldım: görüntü tanımını buraya girin

görüntü tanımını buraya girin

umarım istediğin budur ..


Teşekkürler, evet bu tam ihtiyacım olan şey. KML standartlarına uygun olmayan bu KML'leri idare edebilen bir yazılım olduğunu bilmek güzel. Zaten ücretsiz QGIS ile nasıl yapılacağı zaten başka bir cevap olduğundan, Global Mapper'ı deneyemeyeceğim ancak kesinlikle başkasına yardımcı olabilir. Tekrar teşekkürler.
Miro

Gerçekten harika bir dönüştürücü, harika!
SIslam

6

Kml / kmz dosyalarını kolayca verebileceğiniz / içe aktarabileceğiniz Global Mapper yazılımlarını + birçok veri ve vektör ve raster formatını ekleyebiliyorsunuz .. En iyi yazılımlardan biri ..

http://www.bluemarblegeo.com/global-mapper/product/formats.php


Tavsiyen için teşekkürler. Kml / kmz dosyalarını içe / dışa aktarabileceğine inanıyorum, ancak bunu yapabilen 5+ uygulamayı denedim. Ve hiçbiri özellikleri ("ExtendedData") okuyamıyor. Peki aslında Global Mapper bunu yapabilir mi?
Miro

5

Bu Google'ın libkml anlaşılıyor değil Ubuntu GDAL 1.9.2, özellikle gdal-bin ile gemi 1.9.2-2 ~ precise4:

$ ogrinfo --formats | grep -i kml
  -> "KML" (read/write)

Libkml ve çalışan bir sürümünü almak için ExtendedDatadestek i? GDAL inşa etmek zorunda svn gövde gelen libkml oluşturduktan sonra (r25473) svn gövde GDAL web sitesinde belirtildiği gibi 1.2.0 sürüm, görünüşe göre yeterli olmadığını özellikle belirterek, (r864) . libkml0Kesin olarak Ubuntu'ya (şu anda 1.2.0-1ubuntu6) kurulum yapılmasının yardımcı olmayacağına dikkat edin . Gerçekten bir PPA bulamadığım 1.3 veya svn bagajına ihtiyacınız var.

Sonunda Ubuntu kesin olarak libkml bile oluşturamadım; bununla birlikte gelen destek sürümünde tür hataları var ve bağımlılıklar düzensiz olduğu için libtool çalıştıran hatalar var. Sebebi ne olursa olsun, bunlar başarılı olduğum Debian sıkışıklığında bir sorun değildi:

$ ogrinfo --formats | grep -i kml
  -> "LIBKML" (read/write)
  -> "KML" (read/write)

Bir kez o gittiğini aldığımda, koşmak ogr2ogr -f "ESRI Shapefile" foo.shp foo.kmlbana qgis'in ithal edebileceği, ExtendedDatanitelikleri koruduğu bir şekil dosyası verdi .


5

Qgis 1.8.0 Lisboa tarafından kullanılan Ogr2ogr kml sürücüsü kml ExtendedData etiketlerini desteklemez.

LIBKML sürücüsü GDAL Versiyon 1.9.2 ve sonrasında OSGEO4W paketleri, MS4W ve Qgis Master programlarına dahil edilmiştir.

Verileriniz yanlış değil, ancak OSGeo4W'deki LIBKML sürücüsünün SchemaData ile ilgili sorunları var. Alternatif olarak, aşağıdakiler çalışır:

<ExtendedData>
 <Data name="Name"><value>Test</value></Data> 
 <Data name="Power"><value>10895</value></Data>
 <Data name="Location"><value>L</value></Data> 
</ExtendedData>

EDIT: SchemaData hatası, şimdi OSGEO4W GDAL 1.9.2-2 paketinde düzeltildi.


4

FME 2012’yi kullanma (SP4)

Reader KML'yi yükleyin

Bir Yazar Seçin (Shapefile)

öğeleri ve yazma seçimini birleştir ( özellik türlerinden özellikleri kopyala )

Çalışma alanını çalıştır

görüntü tanımını buraya girin


Teşekkürler, fme_install.msi dosyasını indirdim ancak kurulumda hata oluştu ve bu sorunun farklı bir çalışma çözümü olduğundan bu şekilde devam edemem. Neyse, tekrar teşekkür ederim.
Miro


1

Bunu QGIS ile başarabileceğinizi bilmiyorum. MapWindow , yine de bir KML2Shapefile eklentisine sahiptir .

KML2Shapefile, Google Earth KML ve KMZ dosyalarını GIS'te kullanım için şekil dosyalarına dönüştüren MapWindow GIS'in bir eklentisidir.

KML2Shapefile, her KML geometrisi türünü ayrı bir şekil dosyasına böler. Karmaşık geometrileri destekler ve KML'nin çoğunu nitelik verileri olarak sunabilir.

MapWindow da ücretsiz ve açık kaynaklı bir GIS paketidir. Ücretsiz olarak indirip yükleyebilirsiniz. MapWindow'daki KML2Shapefile eklentisini kullanarak KML'yi shapefile dönüştürebilir ve elde ettiğiniz şekil dosyasını QGIS'e yükleyebilirsiniz. Zaten Windows'ta olduğunu varsayarsak.

Şimdilik düşünebildiğim en iyi çözüm. Umarım birileri QGIS'te yapması gereken bir eklenti biliyordur.


1
Yardımın için teşekkürler. Bunu denedim, ancak yine de veriler kayboldu. Bilgi şöyle görünüyor: <ExtendedData> <SchemaData schemaUrl = "# vorlage"> <SimpleData name = "Ad"> Test </SimpleData> <SimpleData name = "Power"> 10895 </SimpleData> <SimpleData name = "Konum"> L </SimpleData> </SchemaData> </ExtendedData> kodumda bir sorun mu var?
Felix

Oh, bunun için üzgünüm. İşe yarayacağını umuyordum.
RK

1
@Felix - Yorumunuzda verdiğiniz bilgiler gerçekten yararlıdır. Ek bağlam ve netlik için sorunuzu düzenlemenizi ve buraya eklemenizi tavsiye ederim.
Mekansal

@AndreJoost - İyi bir cevap bulmuş gibisin. Aynı konuya sahip başkalarının arama sonuçlarında görünmesi için gerçek bir cevap olarak eklemeye değer.
Mekansal

1

Global Mapper'ı edinin, yapmanız gereken tek şey KMZ veya KML'yi getirip ardından Vektör IMG'yi (ESRI SHP Dosyası) dışa aktarmak. Genel haritalayıcı çoğu dosya türünü okuyabilir. Ardından şekli ARC, Global mapper, Manifold, QGIS, içinde açın ve nitelik tablosunu görüntüleyin. Tüm bilgiler orada olacak. DBF dosyasını SHP’den Microsoft Excel’le bu noktada açabilir ve daha sonra da isterseniz XLXS dosya uzantısı olarak kaydedebilirsiniz.


1

QGIS 3.2.0'da dönüştürme, Araç Kutusu kullanılarak yapılan kolaylık olabilir.

Araç Kutusundan Seçin -> GDAL -> Vektörel Dönüşüm -> Dönüştürme Biçimi .... (Procesos de Herramientas -> GDAL -> Dönüştürme Vektoryası -> Convertir Domates)

KML dosyasını seçin, SHP dosyası olarak kaydedin. Ayrıca ispanyolca karakterleri düzgün bir şekilde görebilmem için Özellikler -> Kaynak (Sekme) -> Kaynak Kodlamasındaki sonuç dosyasını ("Dönüştürülmüş") değiştirmek zorunda kaldım.

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.