KML ve shapefile (SHP) formatı arasında dönüştürme?


Yanıtlar:


129

Açık kaynak kullanma ogr2ogrgelen GDAL / Öğr :

ogr2ogr -f 'ESRI Shapefile' output.shp input.kml

20
... ve sadece bir sonraki doğal soruyu engellemek için, diğer yolla da çalışır: ogr2ogr -f KML output.kml input.shp
glennon

8
GUI tabanlı araçlar kullanmayı tercih ederseniz, QGIS ogr2ogr için ön uç işlevi görebilir.
underdark

1
bir online GDAL / OGR sitesi ipucu ipucu peeps
olsaydı

1
@ mattwilkie Ben Zamzar.com gibi bir şey ifade ettiğini düşünüyorum. Çevrimiçi bir dönüşüm hizmeti.
RK

1
"ESRI Shapefile" argümanı için çift tırnak kullanmak zorunda kaldım.
MatthewD

30

ArcGIS 10, KML'yi bir özellik sınıfına dönüştüren KML To Layer adlı bir GP aracına sahiptir . Yeni aramayı kullanarak KML'yi arayın. Bunu, Google’dan yayılan petrol sızıntılarını almak ve bunları SHP’ye dönüştürmek için kullandım.

KML To Layer, yalnızca bir coğrafi veritabanı özellik sınıfı oluşturabilir; bu nedenle, bunu bir özellik dosyasına dönüştürmek için bir Özellik Sınıfından Özellik Sınıfına kadar bir adım izlenmesi gerekir.


2
Burada sözü edilen araç KML To Layer gibi görünmektedir, ancak yalnızca bir özellik dosyasına dönüştürmek için Feature Class To Feature Class adımı tarafından takip edilmesi gereken bir coğrafi veritabanı özellik sınıfı oluşturabilir.
PolyGeo

19

Ogr2ogr komutunu kullanın, ancak bir komut satırıyla ilgilenmiyorsanız, ogr2ogr için gerçekten basit bir ön uç olan ogr2gui'yi deneyin.


10

ArcGIS'te KML veya KMZ dosyası olarak yayınlanan uzamsal verileri kullanmak için önce KML'yi bir özellik sınıfına (shapefile) dönüştürmelisiniz. Connecticut Üniversitesi, KML'den KML_to_Shp.tbx adlı şekil dosyaları oluşturmak için bir komut dosyası yayımladı. Oldukça iyi çalışıyor ve ArcToolbox'tan kullanabilirsiniz. KML her zaman coğrafi koordinatlarda (WGS84) olacağından, sonunda UTM Zone 15N NAD83'e dönüştürmek isteyeceksiniz ...

Tüm yeni araçlarda olduğu gibi, kullanmadan önce belgelere göz atın. Bu, UCONN'in Arazi Kullanımı Eğitim ve Araştırma Merkezi web sitesinde bulunabilir. Araç kutunuza ekledikten ve sınırlamalarını anladığınızda, araç kullanımı oldukça basittir.

http://clear.uconn.edu/tools/kml_to_shp/index.htm


3
Her zaman UTM Zone 15N NAD83 istemezsiniz, veriler için uygun bölgeyi istersiniz. Ayrıca WGS84 kullanarak projelendirebilirsiniz (yani, WGS84 latlon anlamına gelmez)
Vinko Vrsalovic


10

Bahsedilen bir ticari ürün daha Global Mapper . Bu, düşünülebilecek neredeyse tüm coğrafi verileri görüntüleme, dönüştürme, yeniden projelendirme kategorisinde yer almaktadır. Ücretsiz sürümü yoğun olarak öğrettiğim bir sınıfta kullanıyorum ve neredeyse herkes bunun GIS araçlarının İsviçre çakısı olduğu konusunda yorum yapmaktan kaçınıyor (ücretsiz sürüm çeviri yapmasa da, tüm menü ve seçenekleri ortaya koyuyor). Benim deneyimim de maliyet değerinde.


10

Diğer cevaplara ek olarak birkaç seçenek daha ...

Açık kaynaklı FDO kütüphanelerini kullanan SL-King's fdo2fdo uygulaması , KML'yi SHP'ye ve tam tersine çevirileri yapmanıza olanak tanır. Komut satırı aracının yanı sıra, hem bir GUI (format-format çevirileri ve daha özelleştirilmiş şema haritalama çevirileri ifade eder) içerir.

Özel uygulamalar için, Güvenli Yazılımın FME'si , kaynak bilgiyi hedefe nasıl haritalandırdığınız konusunda size inanılmaz bir kontrol sağlar. ArcGIS'iniz varsa , buna ek ücret karşılığında Veri Birlikte Çalışabilirlik Uzantısı ( biçimler listesi ) üzerinden erişebilirsiniz .

Nitelikleri olmayan sadece özelliklere işaret ediyorlarsa, XML'i kolayca bir CSV gibi içe aktarabileceğiniz bir öğeye ayırmayı düşünürdüm; sadece koordinat etiketleri arasındaki verileri arıyorsunuz.


9

Diğer bir seçenek de ArcGIS'te çalışan üçüncü taraf bir uzantı olan XToolsPro kullanmaktır. Pek çok kullanışlı dönüştürme aracı arasında "KML'den Veri Aktarma" işlevi bulunur.




8

QGIS, kml ve shp arasındaki dönüşümde çok daha sağlam hale geldi. Katmandaki sağ tıklama menüsünden Farklı Kaydet'i kullanın. Veya bu dosya türlerinin her birini Yeni Katman Ekle menüsünden açarak, iletişim kutusundaki dosya türünü değiştirdiğinizden emin olun.


6

FME'ye Güvenli Yazılımdan da bakabilirsiniz http://www.safe.com

14 günlük deneme sürümü mevcut. FME, veri aktarma / taşıma işlemi sırasında KML dosyanızdaki özellikleri ESRI SHP formatına eşleştirmenizi ve KML nokta dosyalarını belirli özniteliklere veya uzamsal uzantılara göre filtreleyebilmenizi sağlar.

Ayrıca, kullanıcılarınızdan büyük bir KML dosya kümeniz olduğunda toplu dönüştürme yapma seçeneği de vardır.

~ SRG


6

komut satırı kontrolü için OGR'yi kullanın, Google Earth Pro, diğer çeşitli uygulamalarda olduğu gibi dönüştürmek için grafiksel bir yol sunar


5

ET GeoWizards ayrıca, KML veya KMZ dosyalarını özellik sınıfına dönüştürecek Google Earth seçeneğinden bir içe aktarma seçeneğine sahiptir. > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm

Açık kaynak kodlu bir seçenek arıyorsanız, MapWindow’un daha yeni güncellendiğini ve KML’ye ve shapefile’ye dönüştürmek için kullanabileceğiniz birkaç eklenti olduğunu görüyorum .



4

Birlikte çalışma uzantısına sahipseniz, bu KML'yi doğrudan ArcMap'e yükleyin ve shp'ye aktarın.

Q'unuzun karşıt cevabı olmasına rağmen, birinin tam tersi yapmak için buraya gelmesi durumunda, bu betiği SHP'den almak için mükemmel buluyorum -> KML http://arcscripts.esri.com/details.asp?dbid=14273




3

KML'yi SHP'ye dönüştürmek için ek kaynak eklemek amacıyla verilen yanıtlardan hiçbirinde görmediğim birkaç seçenek şöyle olacaktır:

MyGeodata Dönüştürücü

Keyhole Markup Dil formatının ESRI Shapefile formatına (KML - SHP) çevrimiçi dönüştürücüsü, hem bireysel hem de toplu dönüşümler için kullanımı hızlı ve kolaydır. Dönüştürücü ayrıca 90'dan fazla diğer vektör ve rasterleri GIS / CAD formatlarını ve 3.000'den fazla koordinat referans sistemini destekler.

Ücretsiz Coğrafya Araçları Zonums Yazılım aracını kapsar ve öğretir


2

Daha temiz sonuçlar verebilecek iyi ve kolay bir yardım, önce KML'yi GPX'e dönüştürmek (bunu yapabilen birkaç açık kaynaklı yazılım vardır) ve ilgili verileri açmaktır (GPX'in 5 farklı bilgi sınıfı vardır: Yol Noktaları, İz Noktaları, Rota Noktaları, Parçalar ve Rotalar) QGIS içindeki GDAL / OGR'dan ogr2ogr kullanarak ve doğrudan .SHP dosya biçiminde kaydedin.

Arzu edilirse tek bir şekil dosyası üretmek için toplu işlemi kullanmak (örneğin, SAGA'dan Birleştirme Vektör Katmanlarını kullanarak) kullanmak oldukça kolaydır ve ayrıca "SHP olarak Kaydet" sonundaki boş özellikleri de temizleyebilirsiniz.

Nihai sonucunuzda garip karakterler görünüyorsa, kodlama sistemine özellikle dikkat edin ... haritanıza yeni vektör verileri eklediğiniz anda uygun olanı seçebilirsiniz.


0

Partiye geç kaldım ama işte birkaç ekstra yol:

  1. Google Fusion Tables , KML puan bilgilerini WGS84 X ve Y'ye .csv biçiminde dönüştürebilir, bu sayede tercih ettiğiniz GIS analiz yazılımında kullanabilirsiniz.

  2. Rgdal paketini R .:

    install.packages("rgdal")
    library(rgdal) #load package
    kmlfile=readOGR("yourkmlfilehere.kml") #load KML
    writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape

0

Başka bir ipucu: Komut satırını kullanarak bir dosya / klasördeki birden fazla KML'yi bir kerede dönüştürmek istiyorsanız, komut satırını kullanarak şekil dosyasını açın, klasörde cmd'yi açın ve şunu yazın:

/ R% f (* .kml) için ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f" yapın

Not: KML'nin adını shapefile adı olarak kullanacaktır, bu nedenle KML'lerin shapefiles için uygun adlandırma formatlarına sahip olduğundan emin olun. Shapefile, karşılık gelen kml ile aynı dizinde oluşturulacaktır. Alt dizinlerdeki KML'ler de şekil dosyalarına dönüştürülecek.


-1

KML'yi Shp dosya formatına dönüştürmek için ogr2ogr yardımcı programını kullanabilirsiniz. Öncelikle sisteme yüklemeniz gerekir, Eğer önceden kurduysanız terminalde ogr2ogr tipini kullanın.

Şimdi dönüşüm için verilen komutun yerine getirilmesi gerekiyor.

--- ogr2ogr -f 'ESRI Shapefile' Output_sahpefile.shp Input_KML.kml

Bu, dönüşümleri ogr2ogr ile yapabilir ve sonuç alamıyorsanız, kodlama yöntemiyle Kml'yi shp'ye dönüştürebilirsiniz.

Bu PHP kullanarak da yapılabilir. Bu komutu dize olarak tanımlayan bir işlev oluşturabilir ve bu dize çalıştırılması için shell_exec () yönteminde verebilirsiniz. Shell_exec () aslında komutu çalıştırır ve çıktıyı string olarak döndürür.

public function KML_to_shp($KMLfilepath,$output){
 $query="ogr2ogr -f 'ESRI Shapefile'  $output.gml  $KMLfilepath";
 shell_exec($query);
 }

Komut satırı aracını ogr2ogr kullanarak veya php kodunu kullanarak kml'yi shp'ye dönüştürmek için kullanılan bir yazı . QGIS aracını kullanıyorsanız, QGIS kullanarak shp convert veya bu yazıyı kullanmaya devam etmek için burada kml adresindeki blog yazımdan birine bakabilirsiniz .


1
Cevap olarak sunduğunuz web sitesi ile ilişkili misiniz? Eğer öyleyse, lütfen yazılarında belirtiniz.
LaughU

-2

ArcGIS’te sadece "KEYER TO LAYER" veya "KML Katmanı" nı arayın. bu araç, shapefile ve KML'ye dönüştürmenize yardımcı olur


Bence bu yaklaşım daha önce başka bir yazar tarafından da belirtilmişti . Alternatif olarak, yeni veya geliştirilmiş bir şey önerebilirsiniz.
Taras,
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.