CartoDB を試すとマニアは楽しい気分になるかも知れない
http://www.moongift.jp/2012/01/20120119-2/ があったので、やってみる。
とりあえずユーザ登録して、テーブルを作る。
テーブル作成の際、データのアップロードが可能とかなんとかなんだそうだけれども、ちょっとうまくいかなかったので今度にする。シェープもOKそうな雰囲気なんだけれども、ちょっとできなかった。
moongiftさんの場合はポイントデータだったのですが、ラインストリング、ポリゴンも選べます。
ただし、どうもジオメトリカラムは1つだけのよう。
まずは、とりあえず WKB HEX を相手にしてくれるどうかを試す。PostGISで
SELECT 'POLYGON*1'::geometry;
とかやると出ます。
これの結果をコピペしたところ「GeoJSONのみ受け付ける」とのこと。
あう、失礼しましたー。
じゃあ GeoJSON を出してみる。
SELECT ST_AsGeoJSON('POLYGON( (130 30, 130 35, 135 35, 135 30, 130 30) )'::geometry);
で、これをコピペしたら「MultiPolygonのみです」とか言われる。
SELECT ST_AsGeoJSON('MULTIPOLYGON( ( (130 30, 130 35, 135 35, 135 30, 130 30) ) )'::geometry);
これならいいんだろ? と送ったら、OKが出た。
"MAP"タブがあるのでそちらをクリックすると、地図が出る。Google Maps を使っているもよう。こちらで、確かにポリゴンが表示されたのを確認。
次にエクスポートをしてやる。
ページ右上隅の"Advanced ..."から"Export Data" があるので、出力。CSVとシェープが出る。
CSVのジオメトリについては、GeoJSONで出ます。文字エンコーディングは UTF-8。
シェープについては、属性の文字エンコーディングはUTF-8です。GeoJSONは付いてきません。その代わりに THE_GEOM_W という属性がついてきて
0106000020110F00000100000001030000000100000005000000DC183A68F4A96C41E4B2709294C44F41DC183A68F4A96C418AF3F7EBDEBA4A416234B3B92D9A6B418AF3F7EBDEBA4A416234B3B92D9A6B41E4B2709294C44F41DC183A68F4A96C41E4B2709294C44F41
とか出る。これ見て EWKB HEX でないかとにらんだあなたはマニア。
SELECT ST_AsEWKT('0106000002...'::geometry);
とかやると、
SRID=3857;MULTIPOLYGON(((15028131.2570919 4163881.14406429,15028131.2570919 3503549.84350437,14471533.8031256 3503549.84350437,14471533.8031256 4163881.14406429,15028131.2570919 4163881.14406429)))
が出ました。3857は球体メルカトルね。
EWKB HEX を出してくるとは、けっこうマニアックです。ていうか PostGIS がバックエンドにいるんだったら EWKB HEX で出し入れできた方が自然ではないか、とか思うのはマニア。
*1:130 30, 130 35, 135 35, 135 30, 130 30