Chuyển đổi giữa định dạng KML và shapefile (SHP)?


Câu trả lời:


129

Sử dụng mã nguồn mở ogr2ogrtừ GDAL / OGR :

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

20
... Và chỉ để tránh câu hỏi tự nhiên tiếp theo, nó cũng hoạt động theo cách khác: ogr2ogr -f KML output.kml input.shp
glennon

8
Nếu bạn thích sử dụng các công cụ dựa trên GUI, QGIS có thể hoạt động như một giao diện người dùng cho ogr2ogr.
underdark

1
muốn có một peeps gợi ý
Pure.Krom

1
@mattwilkie Tôi nghĩ anh ấy có ý gì đó như Zamzar.com. Một dịch vụ chuyển đổi trực tuyến.
RK

1
Tôi đã phải sử dụng dấu ngoặc kép cho đối số "ESRI Shapefile".
MatthewD

30

ArcGIS 10 có một công cụ GP được gọi là KML To Layer để chuyển đổi KML thành một lớp tính năng. Tìm kiếm KML bằng cách tìm kiếm mới. Tôi đã sử dụng điều này để lấy nguồn cấp dữ liệu kml tràn dầu từ Google và chuyển đổi chúng thành SHP.

KML To Layer chỉ có thể tạo lớp tính năng cơ sở dữ liệu địa lý do đó cần phải được theo dõi bởi bước Lớp tính năng thành Lớp tính năng để chuyển đổi nó thành shapefile.


2
Công cụ được đề cập ở đây dường như là KML To Layer nhưng điều đó chỉ có thể tạo ra một lớp tính năng cơ sở dữ liệu địa lý cần được theo dõi bởi lớp Feature Class To Feature Class để chuyển đổi nó thành shapefile.
PolyGeo

19

Sử dụng ogr2ogr, nhưng nếu bạn không quan tâm đến một dòng lệnh, hãy thử ogr2gui - một giao diện thực sự đơn giản cho ogr2ogr.


10

Để sử dụng dữ liệu không gian được xuất bản dưới dạng tệp KML hoặc KMZ trong ArcGIS, trước tiên bạn phải chuyển đổi KML thành một lớp tính năng (shapefile). Đại học Connecticut đã xuất bản một tập lệnh để tạo các shapefiles từ KML có tên là KML_to_Shp.tbx. Nó hoạt động khá tốt và bạn có thể sử dụng nó từ ArcToolbox. Vì KML sẽ (nên) luôn ở trong tọa độ địa lý (WGS84), nên cuối cùng bạn sẽ muốn chuyển đổi chúng thành UTM Vùng 15N NAD83 ...

Như với tất cả các công cụ mới, xem lại tài liệu về trước khi sử dụng. Điều này có thể được tìm thấy trên trang web của Trung tâm nghiên cứu và giáo dục sử dụng đất của UCONN. Khi bạn thêm nó vào hộp công cụ của mình và hiểu những hạn chế của nó, công cụ rất dễ sử dụng.

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


3
Bạn không phải lúc nào cũng muốn UTM Vùng 15N NAD83, bạn muốn có vùng thích hợp cho dữ liệu. Và bạn cũng có thể chiếu bằng WGS84 (nghĩa là WGS84 không có nghĩa là latlon)
Vinko Vrsalovic


10

Một sản phẩm thương mại nữa được nhắc đến là Global Mapper . Điều này nằm trong danh mục xem, chuyển đổi, dự án lại hầu hết mọi dữ liệu địa lý mà bạn có thể tưởng tượng. Tôi sử dụng phiên bản miễn phí rất nhiều trong một lớp tôi dạy và hầu như mọi người đều bình luận về việc đây là con dao quân đội của các công cụ GIS (mặc dù phiên bản miễn phí không thực hiện các bản dịch, nhưng nó hiển thị tất cả các tùy chọn và menu). Cũng đáng giá trong kinh nghiệm của tôi.


10

Thêm nhiều lựa chọn khác ngoài các câu trả lời khác ...

Ứng dụng fdo2fdo của SL-King , sử dụng các thư viện FDO nguồn mở, cho phép bạn thực hiện các bản dịch KML sang SHP và ngược lại. Nó bao gồm cả GUI (thể hiện các bản dịch từ định dạng sang định dạng và các bản dịch ánh xạ lược đồ tùy chỉnh hơn) cũng như một công cụ dòng lệnh.

Đối với các ứng dụng phù hợp, FME của Phần mềm An toàn cung cấp cho bạn quyền kiểm soát đáng kinh ngạc về cách bạn ánh xạ thông tin nguồn vào đích. Nếu bạn có ArcGIS, bạn có thể truy cập phần này thông qua Tiện ích mở rộng khả năng tương tác dữ liệu ( danh sách các định dạng ) với chi phí bổ sung.

Nếu chúng chỉ là các tính năng điểm không có thuộc tính, tôi sẽ xem xét phân tích cú pháp XML thành thứ gì đó mà bạn có thể dễ dàng nhập như CSV; bạn chỉ đang tìm kiếm dữ liệu giữa các thẻ tọa độ.


9

Một tùy chọn khác là sử dụng XToolsPro, một tiện ích mở rộng của bên thứ ba hoạt động trong ArcGIS. Trong số nhiều công cụ chuyển đổi tiện dụng của họ là chức năng "Nhập dữ liệu từ KML".



8

Ngoài ra còn có một số sản phẩm thương mại khác. Arc2Earth đến với tâm trí. Nó được tích hợp khá tốt với ArcGIS Desktop. http://www.arc2earth.com


8

QGIS đã trở nên mạnh mẽ hơn nhiều cho việc chuyển đổi giữa kml và shp. Chỉ cần sử dụng Save As từ menu chuột phải trên layer. Hoặc mở từng loại tệp trong menu Thêm lớp mới, đảm bảo thay đổi loại tệp trong hộp thoại.


6

Bạn cũng có thể xem FME từ Phần mềm an toàn http://www.safe.com

Có một thử nghiệm 14 ngày có sẵn. FME cho phép bạn thậm chí ánh xạ các thuộc tính từ tệp KML của bạn sang định dạng ESRI SHP trong quá trình chuyển đổi / di chuyển dữ liệu bên cạnh khả năng lọc các tệp điểm KML dựa trên các thuộc tính nhất định hoặc phạm vi không gian.

Ngoài ra còn có tùy chọn thực hiện chuyển đổi hàng loạt khi bạn có một tập hợp lớn các tệp KML từ người dùng của mình.

~ SRG


6

sử dụng OGR để kiểm soát dòng lệnh, Google Earth Pro sẽ cung cấp cho bạn một cách đồ họa để chuyển đổi, cũng như nhiều ứng dụng khác


5

ET GeoWizards cũng có một nhập từ tùy chọn Google Earth, sẽ chuyển đổi các tệp KML hoặc KMZ thành lớp tính năng. > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htmlm

Nếu bạn đang tìm kiếm một tùy chọn nguồn mở, tôi thấy MapWindow vừa được cập nhật và có một số bổ trợ để chuyển đổi sang và từ KML và shapefile.



4

Nếu bạn có tiện ích mở rộng interop, chỉ cần tải KML đó thẳng vào ArcMap và xuất sang shp.

Mặc dù câu trả lời ngược lại với Q của bạn, trong trường hợp ai đó đã đến đây để làm ngược lại, tôi thấy tập lệnh này hoàn hảo để đi từ SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273




3

Một vài tùy chọn tôi không thấy trên bất kỳ câu trả lời nào để thêm tài nguyên bổ sung để chuyển đổi KML sang SHP sẽ như sau:

Bộ chuyển đổi MyGeodata

Công cụ chuyển đổi trực tuyến định dạng Ngôn ngữ đánh dấu lỗ khóa sang định dạng ESRI Shapefile (KML sang SHP) là công cụ nhanh chóng và dễ sử dụng cho cả chuyển đổi cá nhân và theo lô. Bộ chuyển đổi cũng hỗ trợ hơn 90 định dạng vectơ và CAD khác và hơn 3 000 hệ thống tham chiếu tọa độ.

Công cụ Địa lý Miễn phí bao gồm và cung cấp hướng dẫn về công cụ Phần mềm Zonums


2

Một trợ giúp tốt và dễ dàng có thể tạo ra kết quả rõ ràng hơn là trước tiên chuyển đổi KML sang GPX (có một số phần mềm nguồn mở có thể làm được) và mở dữ liệu tương ứng (GPX có 5 loại thông tin khác nhau: Điểm tham chiếu, Điểm theo dõi, Routepoints, Track and Routes) bằng cách sử dụng ogr2ogr từ GDAL / OGR trong QGIS và lưu nó trực tiếp ở định dạng tệp .SHP.

Cũng khá dễ dàng để sử dụng quy trình hàng loạt cho số lượng lớn dữ liệu (ví dụ sử dụng Lớp Vector Hợp nhất từ ​​SAGA) để tạo một tệp hình dạng duy nhất nếu muốn và bạn cũng có thể xóa các thuộc tính trống trước "Lưu dưới dạng SHP" cuối cùng.

Đặc biệt chú ý đến hệ thống mã hóa nếu các ký tự lạ xuất hiện trên kết quả cuối cùng của bạn ... bạn có thể chọn một ký tự phù hợp tại thời điểm bạn đang thêm dữ liệu vectơ mới vào bản đồ của mình.


0

Tôi đến bữa tiệc muộn nhưng đây là một vài cách khác:

  1. Google Fusion Bàn , nó có thể chuyển đổi thông tin điểm KML thành WGS84 X và Y ở định dạng .csv, sau đó bạn có thể sử dụng trong phần mềm phân tích GIS ưa thích của mình.

  2. Sử dụng gói rgdal trong 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

Một mẹo khác: Nếu bạn muốn chuyển đổi nhiều KML trong một thư mục / thư mục cùng một lúc thành shapefile bằng dòng lệnh, hãy mở cmd trong thư mục và nhập vào:

cho / R% f trong (* .kml) làm ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f"

Lưu ý: Nó sẽ sử dụng tên của KML làm tên của shapefile, vì vậy hãy đảm bảo rằng các KML của bạn có các định dạng đặt tên thích hợp cho các shapefile. Shapefile sẽ được tạo trong cùng thư mục với kml tương ứng. KML trong các thư mục con cũng sẽ được chuyển đổi thành shapefiles.


-1

Để chuyển đổi định dạng tệp KML sang Shp, bạn có thể sử dụng tiện ích ogr2ogr. Trước tiên, bạn cần cài đặt nó trong hệ thống, Nếu bạn đã cài đặt nó, hãy sử dụng loại ogr2ogr trong thiết bị đầu cuối.

Bây giờ để chuyển đổi lệnh đã cho cần phải được thực thi, tức là

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

Đây là cách chuyển đổi có thể được thực hiện bởi ogr2ogr và nếu bạn không nhận được kết quả, bạn có thể chuyển đổi Kml sang shp bằng phương pháp mã hóa.

điều này cũng có thể được thực hiện bằng PHP. Bạn có thể tạo một hàm xác định lệnh này là chuỗi và có thể cung cấp chuỗi này trong phương thức shell_exec () để thực thi. Shell_exec () thực sự thực thi lệnh và trả về đầu ra dưới dạng chuỗi.

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

đây là một bài viết để chuyển đổi kml sang shp bằng công cụ dòng lệnh ogr2ogr hoặc sử dụng mã php. Trong khi nếu bạn sử dụng công cụ QGIS, bạn có thể xem qua một trong những bài đăng trên blog của tôi ở đây kml để chuyển đổi shp bằng cách sử dụng QGIS hoặc người khác tiếp tục sử dụng bài đăng này.


1
bạn có liên kết với trang web bạn đang cung cấp như một câu trả lời không? Nếu vậy xin vui lòng nêu nó trong bài viết của bạn.
CườiU

-2

Trong ArcGIS, chỉ cần tìm kiếm "kml TO LAYER" hoặc "Layer to KML". công cụ này sẽ giúp bạn chuyển đổi thành shapefile và KML


Tôi nghĩ rằng phương pháp này đã được đề cập trước đó bởi một tác giả khác. Ngoài ra, bạn có thể đề xuất một cái gì đó mới hoặc nâng cao.
Taras
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.