กำลังแปลงระหว่างรูปแบบ KML และรูปร่างไฟล์ (SHP) หรือไม่


คำตอบ:


129

การใช้โอเพ่นซอร์สogr2ogrจากGDAL / OGR :

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

20
... และเพียงเพื่อยึดธรรมชาติคำถามต่อไปก็ทำงานทางอื่นมากเกินไป: ogr2ogr -f KML output.kml input.shp
เกลนน่อน

8
หากคุณต้องการใช้เครื่องมือที่ใช้ GUI QGIS สามารถทำหน้าที่เป็นส่วนหน้าสำหรับ ogr2ogr
underdark

1
หวังว่าจะมีการแอบดูคำใบ้
Pure.Krome

1
@mattwilkie ฉันคิดว่าเขาหมายถึงบางอย่างเช่น Zamzar.com บริการแปลงออนไลน์
RK

1
ฉันต้องใช้เครื่องหมายคำพูดคู่สำหรับ arg "ESRI Shapefile"
MatthewD

30

ArcGIS 10 มีเครื่องมือ GP ที่เรียกว่าKML เป็นเลเยอร์ที่แปลง KML เป็นคลาสคุณลักษณะ ค้นหา KML โดยใช้การค้นหาใหม่ ฉันใช้สิ่งนี้เพื่อดึงน้ำมัน kml ที่ป้อนจาก Google และแปลงเป็น SHP

KML ไปยังเลเยอร์สามารถสร้างคลาสคุณลักษณะทางภูมิศาสตร์ฐานข้อมูลเพื่อให้ต้องดำเนินการตามขั้นตอนคุณลักษณะคลาสเป็นคุณลักษณะคลาสเพื่อแปลงเป็นรูปร่างไฟล์


2
เครื่องมือที่กล่าวถึงในที่นี้ดูเหมือนจะเป็น KML ไปยังเลเยอร์ แต่สามารถสร้างคลาสคุณลักษณะฐานข้อมูลที่ต้องตามด้วยขั้นตอนคุณลักษณะคลาสเป็นคุณลักษณะคลาสเพื่อแปลงเป็นรูปร่างไฟล์
PolyGeo

19

ใช้ ogr2ogr แต่ถ้าคุณไม่สนใจในบรรทัดคำสั่งให้ลองogr2gui - ส่วนหน้าที่เรียบง่ายจริงๆสำหรับ ogr2ogr


10

ในการใช้ข้อมูลเชิงพื้นที่ที่เผยแพร่เป็นไฟล์ KML หรือ KMZ ใน ArcGIS คุณต้องแปลง KML เป็นคลาสคุณลักษณะ (รูปร่างไฟล์) มหาวิทยาลัยคอนเนตทิคัตได้เผยแพร่สคริปต์สำหรับการสร้าง shapefiles จาก KML ชื่อ KML_to_Shp.tbx มันใช้งานได้ค่อนข้างดีและคุณสามารถใช้งานได้จาก ArcToolbox เนื่องจาก KML จะ (ควร) อยู่ในพิกัดทางภูมิศาสตร์ (WGS84) เสมอในที่สุดคุณจะต้องการแปลงเป็น UTM Zone 15N NAD83 ...

เช่นเดียวกับเครื่องมือใหม่ทั้งหมดตรวจสอบเอกสารประกอบก่อนใช้งาน สามารถดูได้ที่เว็บไซต์ศูนย์การศึกษาและวิจัยการใช้ประโยชน์ที่ดินของ UCONN เมื่อคุณเพิ่มลงในกล่องเครื่องมือของคุณและเข้าใจถึงข้อ จำกัด ของเครื่องมือนี้แล้วจะใช้งานได้ทันที

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


3
คุณไม่ต้องการ UTM Zone 15N NAD83 เสมอคุณต้องการโซนที่เหมาะสมสำหรับข้อมูล และคุณยังสามารถฉายภาพโดยใช้ WGS84 (เช่น WGS84 ไม่ได้หมายถึง latlon)
Vinko Vrsalovic


10

หนึ่งผลิตภัณฑ์เชิงพาณิชย์มากขึ้นที่หมีกล่าวขวัญMapper ทั่วโลก สิ่งนี้อยู่ในหมวดหมู่ของมุมมอง, แปลง, ฉายภาพอีกครั้งเกือบทุกข้อมูลทางภูมิศาสตร์ที่คุณสามารถจินตนาการได้ ฉันใช้รุ่นฟรีอย่างหนักในชั้นเรียนที่ฉันสอนและเกือบทุกคนเดินออกไปแสดงความคิดเห็นว่านี่คือมีดสวิสกองทัพของเครื่องมือ GIS (แม้ว่ารุ่นฟรีไม่ได้ทำการแปลมันทำให้เมนูและตัวเลือกต่าง ๆ ) คุ้มค่ากับประสบการณ์ของฉัน


10

เพิ่มตัวเลือกเพิ่มเติมนอกเหนือจากคำตอบอื่น ๆ ...

แอปพลิเคชัน fdo2fdoของ SL-King ซึ่งใช้ไลบรารี FDO แบบโอเพ่นซอร์สช่วยให้คุณสามารถดำเนินการ KML ไปยัง SHP และการแปลวีซ่าในทางกลับกัน มันมีทั้ง GUI (ซึ่งแสดงการแปลฟอร์แมตเป็นฟอร์แมตและการแปลการแม็พสกีมาที่กำหนดเอง) รวมถึงเครื่องมือบรรทัดคำสั่ง

สำหรับการใช้งาน properietary ซอฟท์แวปลอดภัยของFMEช่วยให้คุณควบคุมที่น่าตื่นตาตื่นใจมากกว่าวิธีการที่คุณแมแหล่งข้อมูลเข้าสู่ปลายทาง หากคุณมี ArcGIS คุณสามารถเข้าถึงสิ่งนี้ได้ผ่านทาง Data Interoperability Extension ( รายการรูปแบบ ) โดยมีค่าใช้จ่ายเพิ่มเติม

หากพวกเขาเป็นเพียงจุดคุณสมบัติที่ไม่มีคุณลักษณะฉันจะพิจารณาแยก XML เป็นสิ่งที่คุณสามารถนำเข้าได้อย่างง่ายดายเช่น CSV; คุณแค่มองหาข้อมูลระหว่างแท็กพิกัด


9

อีกตัวเลือกหนึ่งคือการใช้ XToolsPro ซึ่งเป็นส่วนขยายของบุคคลที่สามที่ใช้งานได้ใน ArcGIS เครื่องมือการแปลงที่มีประโยชน์มากมายของพวกเขาคือฟังก์ชั่น "นำเข้าข้อมูลจาก KML"




8

QGIS แข็งแกร่งขึ้นมากสำหรับการแปลงระหว่าง kml และ shp เพียงแค่ใช้บันทึกเป็นจากเมนูคลิกขวาบนเลเยอร์ หรือเปิดแต่ละประเภทไฟล์จากเมนู Add New Layer ตรวจสอบให้แน่ใจว่าได้เปลี่ยนประเภทไฟล์ในกล่องโต้ตอบ


6

นอกจากนี้คุณยังสามารถดู FME จาก Safe Software http://www.safe.com

มีการทดลองใช้ 14 วัน FME ช่วยให้คุณสามารถแมปแอตทริบิวต์จากไฟล์ KML ของคุณกับรูปแบบ ESRI SHP ในระหว่างกระบวนการแปลง / ย้ายข้อมูลนอกเหนือจากความสามารถในการกรองไฟล์จุด KML ตามคุณลักษณะบางอย่างหรือขอบเขตเชิงพื้นที่

นอกจากนี้ยังมีตัวเลือกในการแปลงเป็นชุดเมื่อคุณมีไฟล์ KML ชุดใหญ่จากผู้ใช้ของคุณ

~ SRG


6

ใช้ OGR สำหรับการควบคุมบรรทัดคำสั่ง Google Earth Pro จะให้วิธีการแปลงเป็นกราฟิกเช่นเดียวกับแอปอื่น ๆ ที่หลากหลาย


5

ET GeoWizards ยังมีการนำเข้าจากตัวเลือก Google Earth ซึ่งจะแปลงไฟล์ KML หรือ KMZ ไปเป็นระดับคุณลักษณะ > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm

หากคุณกำลังมองหาตัวเลือกโอเพนซอร์ซฉันเห็นว่าMapWindowเพิ่งได้รับการอัปเดตและมีปลั๊กอินอีกสองตัวสำหรับการแปลงเป็นและจาก KML และ shapefile



4

หากคุณมีส่วนขยายการทำงานร่วมกันเพียงโหลด KML นั้นลงใน ArcMap และส่งออกไปยัง shp

แม้ว่าคำตอบที่ตรงข้ามกับคำถามของคุณในกรณีที่มีคนมาที่นี่เพื่อทำในทางกลับกันฉันพบว่าสคริปต์นี้สมบูรณ์แบบที่จะไปจาก SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273


4

หากคุณต้องการแปลงไฟล์ของคุณออนไลน์ลองMyGeodata รูปแบบ GIS และประสานงานการแปลงระบบ มันขึ้นอยู่กับ ogr2ogr (ไลบรารี gdal / ogr) - ดังนั้นเกือบทุกรูปแบบ GIS ที่รู้จักกันและระบบพิกัดได้รับการสนับสนุน ...



3

ตัวเลือกบางอย่างที่ฉันไม่เห็นในคำตอบใด ๆ เพื่อเพิ่มทรัพยากรเพิ่มเติมสำหรับการแปลง KML เป็น SHP จะเป็นดังนี้:

MyGeodata Converter

เครื่องมือแปลงรูปแบบภาษาของ Keyhole Markup เป็นรูปแบบไฟล์ ESRI Shapefile (KML เป็น SHP) เป็นเครื่องมือที่รวดเร็วและใช้งานง่ายสำหรับการแปลงทั้งแบบเดี่ยวและเดี่ยว ตัวแปลงยังรองรับเวกเตอร์และแรสเตอร์อื่น ๆ มากกว่า 90 รูปแบบ GIS / CAD และระบบอ้างอิงพิกัดมากกว่า 3,000 รายการ

เครื่องมือภูมิศาสตร์ฟรีครอบคลุมและให้การสอนเกี่ยวกับเครื่องมือซอฟต์แวร์ Zonums


2

ความช่วยเหลือที่ดีและง่ายที่อาจให้ผลลัพธ์ที่สะอาดยิ่งขึ้นคือการแปลง KML เป็น GPX ก่อน (มีซอฟต์แวร์โอเพนซอร์ซหลายตัวที่สามารถทำได้) และเปิดข้อมูลที่เกี่ยวข้อง (GPX มีข้อมูลที่แตกต่างกัน 5 ระดับ: Waypoint, Trackpoints Routepoints, Track และ Routes) โดยใช้ ogr2ogr จาก GDAL / OGR ใน QGIS และบันทึกโดยตรงในรูปแบบไฟล์. HP

มันค่อนข้างง่ายที่จะใช้กระบวนการแบทช์สำหรับข้อมูลจำนวนมาก (โดยใช้ Merge Vector Layers จาก SAGA เป็นต้น) เพื่อสร้างไฟล์รูปร่างเดียวหากต้องการและคุณยังสามารถล้างแอททริบิวที่ว่างเปล่าไว้ก่อนหน้า "Save as SHP"

ให้ความสนใจเป็นพิเศษกับระบบการประมวลผลหากอักขระแปลก ๆ ปรากฏขึ้นในผลลัพธ์สุดท้ายของคุณ ... คุณสามารถเลือกหนึ่งตัวอักษรที่เหมาะสมในขณะที่คุณเพิ่มข้อมูลเวกเตอร์ใหม่ลงในแผนที่ของคุณ


0

ฉันไปงานปาร์ตี้สาย แต่ต่อไปนี้เป็นวิธีพิเศษบางประการ:

  1. Google Fusion Tablesสามารถแปลงข้อมูลคะแนน KML เป็น WGS84 X และ Y ในรูปแบบ. csv ซึ่งคุณสามารถใช้ในซอฟต์แวร์วิเคราะห์ GIS ที่คุณต้องการ

  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 หลายรายการในโฟลเดอร์ / ไดเรกทอรีพร้อมกันเป็น shapefile โดยใช้บรรทัดคำสั่งให้เปิด cmd ในโฟลเดอร์และพิมพ์ใน:

สำหรับ / R% f ใน (* .kml) ทำ ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f"

หมายเหตุ: จะใช้ชื่อของ KML เป็นชื่อของ shapefile ดังนั้นตรวจสอบให้แน่ใจว่า KML ของคุณมีรูปแบบการตั้งชื่อที่เหมาะสมสำหรับ shapefiles Shapefile จะถูกสร้างขึ้นในไดเรกทอรีเดียวกันกับ kml ที่เกี่ยวข้อง KML ในไดเรกทอรีย่อยจะถูกแปลงเป็นรูปร่างไฟล์ด้วย


-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" เครื่องมือนี้จะช่วยคุณแปลงเป็นรูปร่างไฟล์และ KML


ฉันคิดว่าวิธีการนี้ได้รับการกล่าวถึงก่อนหน้านี้โดยผู้เขียนคนอื่น หรือคุณสามารถแนะนำสิ่งใหม่หรือปรับปรุง
Taras
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.