Người dùng của tôi đang gửi cho tôi dữ liệu điểm được số hóa bằng Google Earth.
Làm cách nào tôi có thể chuyển đổi KML của họ thành shapefile?
Người dùng của tôi đang gửi cho tôi dữ liệu điểm được số hóa bằng Google Earth.
Làm cách nào tôi có thể chuyển đổi KML của họ thành shapefile?
Câu trả lời:
Sử dụng mã nguồn mở ogr2ogr
từ GDAL / OGR :
ogr2ogr -f 'ESRI Shapefile' output.shp input.kml
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.
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.
Để 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.
Nếu bạn quan tâm đến các công cụ dòng lệnh, bạn có thể sử dụng GDAL / OGR từ OSGEO.
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.
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 độ.
FME đã đăng bản beta cho một công cụ trực tuyến xử lý nhiều loại chuyển đổi khác nhau, bao gồm cả loại này. http://fmeserver.com/userweb/sharper/Portal/ EASTranslator / index.html Trình chuyển đổi này sẽ thực sự giúp bạn.
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
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
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
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.
MapWindow GIS nguồn mở có một phần mở rộng miễn phí ( KML2Shapefile ) để chuyển đổi các tệp KML / KMZ thành các shapefile.
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
Nếu bạn muốn chuyển đổi các tệp của mình trực tuyến, hãy thử định dạng MyGeodata GIS và điều phối hệ thống chuyển đổi . Nó dựa trên ogr2ogr (thư viện gdal / ogr) - vì vậy hầu như tất cả các định dạng và hệ tọa độ GIS đã biết đều được hỗ trợ ...
Bộ chuyển đổi KML sang Shapefile trực tuyến của Zonum Solutions cũng hoạt động tốt:
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:
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
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.
Tôi đến bữa tiệc muộn nhưng đây là một vài cách khác:
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.
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
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.
Để 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.
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