回答:
GDAL / OGRogr2ogr
からのオープンソースの使用:
ogr2ogr -f 'ESRI Shapefile' output.shp input.kml
ArcGIS 10には、KMLをフィーチャクラスに変換するKML To LayerというGPツールがあります。新しい検索を使用してKMLを検索します。これを使用して、Googleから流出した油流出kmlフィードを取得し、SHPに変換しました。
KML→レイヤーでは、ジオデータベースフィーチャクラスのみを作成できます。そのため、シェープファイルに変換するには、フィーチャクラスからフィーチャクラスへのステップを実行する必要があります。
ArcGISでKMLまたはKMZファイルとして公開された空間データを使用するには、まずKMLをフィーチャクラス(シェープファイル)に変換する必要があります。コネチカット大学には、KMLからシェープファイルを作成するためのKML_to_Shp.tbxというスクリプトが公開されています。非常にうまく機能し、ArcToolboxから使用できます。KMLは常に地理座標(WGS84)になるため(そうする必要があるため)、最終的にはUML Zone 15N NAD83に変換する必要があります。
すべての新しいツールと同様に、使用前にドキュメントを確認してください。これは、UCONNの土地利用教育研究センターのWebサイトで見つけることができます。ツールボックスに追加してその制限を理解すると、ツールは非常に簡単に使用できます。
コマンドラインツールに興味がある場合は、OSGEOのGDAL / OGRを使用できます。
言及に値するもう1つの商用製品はGlobal Mapperです。これは、想像できるほとんどすべての地理データの表示、変換、再投影のカテゴリに分類されます。私は教えるクラスで無料版を多用し、ほとんどの人がこれがGISツールのスイスアーミーナイフであることについてコメントします(無料版は翻訳を行いませんが、すべてのメニューとオプションを公開します)。私の経験ではコストに見合うだけの価値があります。
他の回答に加えて、さらにオプションを追加してください...
SL-Kingのfdo2fdoアプリケーションは、オープンソースFDOライブラリを使用しており、KMLからSHPへの変換、およびその逆の変換を実行できます。GUI(フォーマットからフォーマットへの変換およびよりカスタマイズされたスキーママッピングの変換を表す)とコマンドラインツールの両方が含まれています。
固有のアプリケーションの場合、Safe SoftwareのFMEは、ソース情報を宛先にマップする方法を驚くほど制御します。ArcGISをお持ちの場合は、Data Interoperability Extension(形式のリスト)を介して追加料金でこれにアクセスできます。
属性のない単なるポイントフィーチャである場合は、XMLを解析して、CSVのように簡単にインポートできるものに変換することを検討します。座標タグ間のデータを探しているだけです。
もう1つのオプションは、ArcGISで動作するサードパーティの拡張機能であるXToolsProを使用することです。多くの便利な変換ツールには、「KMLからのデータのインポート」機能があります。
FMEは、これを含むさまざまな種類の変換を処理するオンラインツールのベータ版を投稿しました。 http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html このコンバーターは本当に役立つはずです。
他にもいくつかの商用製品があります。Arc2Earthが思い浮かびます。ArcGIS Desktopとの非常に優れた統合を実現しています。http://www.arc2earth.com
また、Safe Software http://www.safe.comからFMEを見ることができます。
14日間の試用版があります。FMEでは、特定の属性または空間範囲に基づいてKMLポイントファイルをフィルタリングする機能に加えて、データ変換/移行プロセス中にKMLファイルの属性をESRI SHP形式にマッピングすることもできます。
ユーザーから大量のKMLファイルがある場合にバッチ変換を実行するオプションもあります。
〜SRG
コマンドライン制御にOGRを使用すると、他のさまざまなアプリと同様に、Google Earthプロがグラフィカルな変換方法を提供します
ET GeoWizardsには、KMLファイルまたはKMZファイルをフィーチャクラスに変換するGoogle Earthからのインポートオプションもあります。> http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm
オープンソースオプションを探している場合、MapWindowが更新されたばかりで、KMLとシェープファイルとの間で変換するためのプラグインがいくつかあります。
オープンソースのMapWindow GISには、KML / KMZファイルをシェープファイルに変換するための無料の拡張機能(KML2Shapefile)があります。
相互運用機能拡張がある場合は、そのKMLをArcMapに直接ロードし、shpにエクスポートするだけです。
あなたのQの反対の答えですが、誰かがここに来てその逆を行う場合、このスクリプトはSHP-> KML http://arcscripts.esri.com/details.asp?dbid=14273から完璧に行くと思います
オンラインでファイルを変換する場合は、MyGeodata GIS形式と座標系コンバーターを試してください。これはogr2ogr(gdal / ogrライブラリ)に基づいています-そのため、ほとんどすべての既知のGIS形式と座標系がサポートされています...
Zonum SolutionsのオンラインKMLからシェープファイルへのコンバーターもうまく機能します。
KMLをSHPに変換するためのリソースを追加するための応答に表示されなかったいくつかのオプションは次のとおりです。
キーホールマークアップ言語形式からESRIシェープファイル形式(KMLからSHP)へのオンラインコンバーターは、個々の変換とバッチ変換の両方に対応する高速で使いやすいツールです。Converterは、他の90以上のベクターおよびラスターGIS / CAD形式と、3,000以上の座標参照システムもサポートしています。
無料のGeography Toolsは、Zonums Software ツールのチュートリアルを提供します。
よりクリーンな結果をもたらす可能性のある優れた簡単なヘルプは、最初にKMLをGPXに変換し(それを実行できるオープンソースソフトウェアがいくつかあります)、それぞれのデータを開きます(GPXには5つの異なるクラスの情報:ウェイポイント、トラックポイント、 QGISのGDAL / OGRからogr2ogrを使用し、.SHPファイル形式で直接保存します。
必要に応じて、大量のデータのバッチ処理を使用して(たとえばSAGAのMerge Vector Layersを使用して)単一のシェープファイルを作成することも非常に簡単です。また、最終的な「SHPとして保存」の前に空の属性をクリアすることもできます。
最終結果に奇妙な文字が表示される場合は、コード体系に特に注意してください。新しいベクターデータをマップに追加するときに適切な文字を選択できます。
私はパーティーに遅れていますが、いくつかの追加の方法があります:
Google Fusion Tablesでは、KMLポイント情報を.csv形式のWGS84 XおよびYに変換できます。これは、好みのGIS分析ソフトウェアで使用できます。
Rでのrgdalパッケージの使用:
install.packages("rgdal")
library(rgdal) #load package
kmlfile=readOGR("yourkmlfilehere.kml") #load KML
writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape
別のヒント:コマンドラインを使用して、フォルダー/ディレクトリ内の複数のKMLを一度にシェープファイルに変換する場合は、フォルダー内のcmdを開き、次のように入力します。
/ R%f in(* .kml)do ogr2ogr -f "ESRI Shapefile" "%〜dpnf.shp" "%f"
注:KMLの名前をシェープファイルの名前として使用するため、KMLがシェープファイルの適切な命名形式を持っていることを確認してください。シェープファイルは、対応するkmlと同じディレクトリに作成されます。サブディレクトリのKMLもシェープファイルに変換されます。
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);
}
コマンドラインツールogr2ogrまたはphpコードを使用してkmlをshpに変換する投稿はこちらです。QGISツールを使用している場合は、私のブログ投稿の1つであるkmlを参照して、QGISを使用してshp変換するか、この投稿を引き続き使用できます。