Перетворення між форматом KML та формою shapefile (SHP)?


97

Мої користувачі надсилають мені точкові дані, які були оцифровані за допомогою Google Earth.

Як я можу конвертувати їх KML у файл форми?

Відповіді:


129

Використання відкритого джерела ogr2ogrвід GDAL / OGR :

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

20
... і тільки для того, щоб запобігти наступному природному питанню, він працює і іншим способом: ogr2ogr -f KML output.kml input.shp
glennon

8
Якщо ви віддаєте перевагу використовувати інструменти на основі GUI, QGIS може виступати в якості переднього кінця для ogr2ogr.
андеркап

1
хотілося б, щоб на сайті GDAL / OGR натякали натяки на підказки
Pure.Krome

1
@mattwilkie Я думаю, він мав на увазі щось на зразок Zamzar.com. Служба онлайн-перетворення.
РК

1
Мені довелося використовувати подвійні лапки для аргументу "ESRI Shapefile".
MatthewD

30

ArcGIS 10 має інструмент GP, який називається KML To Layer, який перетворює KML у клас функцій. Шукайте KML за допомогою нового пошуку. Я використовував це, щоб дістати канали розливу нафти у Google від Google і перетворити їх на SHP.

KML до шару може створювати лише клас об’єктів бази даних геоданих, щоб після цього потрібно було виконати крок класу ознак до класу ознак, щоб перетворити його у файл форми.


2
Згаданий тут інструмент, схоже, є KML для шару, але це може створити лише клас функцій бази даних геоданих, якому слід дотримуватись кроку класу характеристик до класу ознак, щоб перетворити його у файл форми.
PolyGeo

19

Використовуйте ogr2ogr, але якщо вас не цікавить командний рядок, спробуйте ogr2gui - дійсно простий передній кінець для ogr2ogr.


10

Для використання просторових даних, опублікованих у форматі KML або KMZ у ArcGIS, спочатку слід перетворити KML у клас функцій (shapefile). Університет Коннектикуту опублікував сценарій для створення форм-файлів з KML під назвою KML_to_Shp.tbx. Він працює досить добре, і ви можете використовувати його з ArcToolbox. Оскільки KML завжди (повинен) знаходитись у географічних координатах (WGS84), ви з часом захочете перетворити їх у зону UTM 15N NAD83 ...

Як і у всіх нових інструментах, ознайомтеся з документацією до використання. Це можна знайти на веб-сайті Центру освіти та досліджень землекористування UCONN. Після того, як ви додасте його до панелі інструментів і зрозумієте його обмеження, цей інструмент буде використаний дуже просто.

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


3
Ви не завжди хочете, щоб UTM ZN 15N NAD83, вам потрібна відповідна зона для даних. Ви також можете проектувати, використовуючи WGS84 (тобто WGS84 не означає латлон)
Vinko Vrsalovic


10

Ще одним комерційним продуктом, який згадується, є Global Mapper . Це підпадає під категорію перегляду, перетворення, перепроектування майже будь-яких географічних даних, які ви можете собі уявити. Я дуже використовую безкоштовну версію в класі, якому я навчаю, і майже кожен відходить, коментуючи, як це швейцарський армійський ніж інструментів ГІС (хоча безкоштовна версія не робить перекладів, вона відкриває всі меню та параметри). Ну варто варті мого досвіду.


10

Ще кілька варіантів на додаток до інших відповідей ...

Додаток fdo2fdo SL-King , який використовує бібліотеки FDO з відкритим кодом, дозволяє виконувати KML в SHP та візуально перекладати візуально . Він включає як графічний інтерфейс (який виражає переклади формату до формату, так і більш налаштовані схеми зіставлення перекладів), а також інструмент командного рядка.

Для власницьких програм FME безпечного програмного забезпечення дає вам чудовий контроль над тим, як відображати вихідну інформацію в пункт призначення. Якщо у вас є ArcGIS, ви можете отримати доступ до цього через розширення сумісності даних ( список форматів ) за додаткову плату.

Якщо вони є лише точковими функціями без атрибутів, я б розглядав аналіз XML на те, що ви можете легко імпортувати, як CSV; ви просто шукаєте дані між тегами координат.


9

Інший варіант - використовувати XToolsPro, стороннє розширення, яке працює в ArcGIS. Серед їх багатьох зручних інструментів перетворення - функція "Імпорт даних з KML".




8

QGIS став набагато надійнішим для перетворення між kml і shp. Просто використовуйте кнопку "Зберегти як" з меню правою кнопкою миші на шарі. Або відкрийте кожен із цих типів файлів у меню Додати новий шар, не забудьте змінити тип файлу у діалоговому вікні.


6

Ви також можете переглянути FME з веб-сайту Safe Software http://www.safe.com

Існує 14-денний пробний період. FME дозволяє навіть відображати атрибути з вашого KML-файлу у форматі ESRI SHP під час перетворення / міграції даних, крім можливості фільтрувати файли точок KML на основі певних атрибутів або просторових розширень.

Існує також можливість зробити пакетне перетворення, коли у вас є великий набір KML-файлів від користувачів.

~ СРГ


6

використовуйте OGR для управління командним рядком, Google Планета Земля Pro дасть вам графічний спосіб перетворення, як і різноманітні інші програми


5

ET GeoWizards також має опцію імпорту з Google Планета Земля, яка конвертуватиме файли KML або KMZ у клас функцій. > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm

Якщо ви шукаєте опцію з відкритим кодом, я бачу, що MapWindow було лише оновлено, і є кілька плагінів для перетворення в KML і KM2 та formfile.



4

Якщо у вас є розширення interop, просто завантажте цей KML прямо в ArcMap та експортуйте в shp.

Хоча зворотний відповідь на ваш Q, якщо хтось прийшов сюди, щоб зробити навпаки, я вважаю цей сценарій ідеальним для переходу від SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273




3

Кілька варіантів, які я не бачив у жодній із відповідей, щоб додати додаткові ресурси для перетворення KML в SHP, були б наступними:

Конвертор MyGeodata

Онлайн-перетворювач формату мови розмітки Keyhole в формат ESRI Shapefile (KML в SHP) - це швидкий і простий у використанні інструмент як для індивідуальних, так і для пакетних перетворень. Конвертер також підтримує більше 90 інших векторних та растрових форматів GIS / CAD та понад 3 000 систем координат.

Безкоштовна Географія Інструменти охоплює і забезпечує підручник Zonums програмного інструменту


2

Хороша та проста допомога, яка може дати більш чіткі результати, - це спочатку перетворити KML в GPX (є кілька програм з відкритим кодом, які можуть це зробити) та відкрити відповідні дані (GPX має 5 різних класів інформації: Точкові точки, Точкові точки, Точки маршрутів, треки та маршрути), використовуючи ogr2ogr від GDAL / OGR у QGIS та збережіть його безпосередньо у форматі файлу .SHP.

Також досить просто використовувати пакетний процес для великої кількості даних (наприклад, використовуючи векторні шари злиття від SAGA) для створення файлу єдиної форми за бажанням, а також можна очистити порожні атрибути перед остаточним "Зберегти як SHP".

Зверніть особливу увагу на систему кодифікації, якщо на вашому кінцевому результаті з’являться дивні символи ... ви можете вибрати відповідний в момент додавання нових векторних даних на свою карту.


0

Я спізнююсь на вечірку, але ось кілька додаткових способів:

  1. Google Fusion Tables , він може конвертувати інформацію KML-точок у WGS84 X та Y у форматі .csv, який потім можна використовувати у бажаному програмному забезпеченні для аналізу ГІС.

  2. Використання пакету rgdal в 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

Ще одна порада: Якщо ви хочете перетворити кілька KML в папку / каталог відразу, щоб сформувати файл за допомогою командного рядка, відкрийте cmd у папці та введіть це:

для / R% f в (* .kml) зробити ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f"

Примітка. Він використовуватиме ім'я KML як ім'я файлу форми, тому переконайтеся, що ваші KML мають відповідні формати іменування для shapefiles. Файл форми буде створений у тому самому каталозі, що і відповідний kml. KML в підкаталогах теж буде перетворено у shapefiles.


-1

Для перетворення KML у формат файлу Shp можна скористатись утилітою ogr2ogr. По-перше, вам потрібно встановити його в системі, якщо ви вже встановили його, використовуйте в терміналі тип ogr2ogr.

Тепер для перетворення дану команду потрібно виконати, тобто

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

Ось як можна зробити перетворення ogr2ogr, і якщо ви не отримаєте результатів, ви можете перетворити Kml в shp методом кодування.

це також можна зробити за допомогою PHP. Ви можете створити функцію, яка визначила цю команду як рядок і може дати цій рядку метод shell_exec () для виконання. Shell_exec () фактично виконує команду і повертає результат у вигляді рядка.

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

ось пост для перетворення kml в shp за допомогою інструменту командного рядка ogr2ogr або за допомогою php-коду. Хоча якщо ви використовуєте інструмент QGIS, ви можете переглядати тут одну з моїх публікацій блогу kml, щоб shp-конвертувати за допомогою QGIS, або ж продовжувати використовувати цю публікацію.


1
Ви пов’язані з веб-сайтом, який Ви пропонуєте як відповідь? Якщо так, будь ласка, вкажіть це у своїх публікаціях.
LaughU

-2

В ArcGIS просто шукайте "kml TO Layer" або "Layer to KML". цей інструмент допоможе вам перетворити у shapefile та KML


Я думаю, про такий підхід вже згадувався інший автор. Крім того, ви можете запропонувати щось нове або вдосконалене.
Тарас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.