データ入れる
手元にあるGeoJSONのデータ入れてみます。
MongoDBの場合は、Pythonの対話モードとかで入れるのが楽かと思います。GeoJSONのデータをテキストエディタ使って行頭行末を以下のように加工します。
前:{"type":"Point","coordinates":[135.874343,35.076685]} 後:src.append({"type":"Point","coordinates":[135.874343,35.076685]})
で、加工した行を、以下のスクリプトの指定箇所にコピペしてPython上で実行します。
import pymongo conn = pymongo.Connection('[EC2のホスト名]', 27017) gdb = conn.geodb gcol = gdb.geocol gcol.ensure_index([('coodinates', pymongo.GEO2D)]) src = [] # この下にコピペする gcol.insert(src)
データが入ったことを確認する場合はこんな感じで。
for data in gcol.find(): print data
DynamoDBの場合は、Amazon提供のJavaクラスを使ってプログラム組んでデータ入れます。わざわざプログラム組むとかそのコードをここに延々張りつけるとかそんな面倒くさいこと年の瀬のこんな時期に(コードとかもろもろ略)。
気を取り直してPostGISの場合。GDALが入った環境をどっかに持ってればコマンド一発でデータ入れられます。普通はPostGIS入ってるインスタンスにGDALもある・・・はずなんですが、Amazon RDSの場合は直接インスタンスにsshログオンすることができないので、今回はSQLで入れてみます。
例によってGeoJSONのファイルをテキストエディタで加工してこんなSQLに変換します。
前:{"type":"Point","coordinates":[135.874343,35.076685]} 後:insert into testgeom (the_geom) values (ST_GeomFromGeoJSON('{"type":"Point","coordinates":[135.874343,35.076685]}'));
pgAdmin3のSQLウインドウで
create table testgeom (oid serial primary key, the_geom geometry);
した後にそのままコピペして実行すればOK。プログラム書く必要はありません。
PostGISは楽ちんだなあ。