2009年8月24日月曜日

ogr2ogrでshpefileをKML化 はてなブックマークに追加



今日の作業めも


調べごとがあったので、こちらのサイトを参考に国土数値情報の駅データを、gdalという地図画像ライブラリのユーティリティであるogr2ogrを利用して同一名称の駅毎のKMLファイルに出力してみました。


1. 駅名リストの抽出
ogr2ogr -f csv stnlist.txt N02-08_EB03.shp -select STN

駅名のシードデータを作るため、shapeファイルからSTNフィールドのみをCVSに出力しました。

2. 同じ駅名を連番のkmlに変換
cat stnlist.txt/N02-08_EB03.csv | nkf --utf8 | sort | uniq -c | awk '{if ($1>4)print $2}' | nkf -s | awk ' {print "ogr2ogr -f kml "NR".kml N02-08_EB03.shp -overwrite -where STN=" $1};' | sh

駅名シードファイルから5件以上重複する駅名を取り出して、ogr2ogrに渡しています。-whereオプションで駅名フィールドの完全一致を取り出しました。
ogr2ogr -f kml new.kml source.shp -overwrite -where STN=SJIS駅名

3. 文字コードの変換
find . -name "*.kml" -exec nkf --utf8 --overwrite {} \;

出力したKMLがSJISなため、UTF-8に一括変換しました。




※駅データは、事前に変換ツールでShapeファイルに変換しています。


駅別KMLデータ一覧(5件以上同一駅名があったもの)


三田駅 google map

上野駅 google map

中野駅 google map

京橋駅 google map

京都駅 google map

仙台駅 google map

住吉駅 google map

元町駅 google map

八丁堀駅 google map

北千住駅 google map

名古屋駅 google map

品川駅 google map

大分駅 google map

大宮駅 google map

大手町駅 google map

大曽根駅 google map

大町駅 google map

大船駅 google map

大阪駅 google map

大阪上本町駅 google map

天王寺駅 google map

姫路駅 google map

小倉駅 google map

小田原駅 google map

尼崎駅 google map

岡山駅 google map

市役所前駅 google map

新大阪駅 google map

新宿駅 google map

新橋駅 google map

新潟駅 google map

日暮里駅 google map

日本橋駅 google map

東京駅 google map

梅田駅 google map

横浜駅 google map

橋本駅 google map

池袋駅 google map

浅草駅 google map

渋谷駅 google map

熱海駅 google map

白石駅 google map

盛岡駅 google map

県庁前駅 google map

神保町駅 google map

神田駅 google map

福島駅 google map

秋葉原駅 google map

立川駅 google map

米原駅 google map

西船橋駅 google map

追分駅 google map

郡山駅 google map

金山駅 google map

飯田橋駅 google map

高崎駅 google map

高田駅 google map

鹿児島中央駅 google map

黒川駅 google map

合わせて読む
dbfファイルの文字コード変換 3. 文字コードの変換を事前に変換するパターンです