LoginSignup
10
11

More than 5 years have passed since last update.

WKT形式をGeoJSON形式に変換する

Last updated at Posted at 2016-01-26

デスクトップGISの世界で使われているファイルを、ウェブGISで使おうとする際に、ファイルフォーマットの変換が必要になる場合があります。

ここではWKTについてふれます。

WKT (Well-known text)とは

ジオメトリ・オブジェクトを地図上に表現するためのマークアップ言語。詳しくは以下を参照ください。
https://ja.wikipedia.org/wiki/Well-known_text

ライブラリの選定

ウェブGISで使うためにGeoJSONに変換します。
変換ライブラリには以下があります。

wellknown.jsはnodeモジュールとして配布されているので、今回はブラウザでのオン・ザ・フライ変換も視野に入れてTerraformerを採用します。

使い方

変換自体はとても簡単で、以下2ファイルを読み込み、

<script src="terraformer.min.js"></script>
<script src="terraformer-wkt-parser.min.js"></script>
var geoJSONSingle = Terraformer.WKT.parse( wktSingle );

で変換できます。

変換前の例

MULTIPOINT ((10 40), (40 30), (20 20), (30 10))

変換後の例

{"type":"MultiPoint","coordinates":[[10,40],[40,30],[20,20],[30,10]],"bbox":[10,10,40,40]}

GeoJSONオブジェクトとして生成したい場合には

//wktObj...変換前のWKTデータ、geoJSONObj...変換後のGeoJsonデータ
var _geoArray = new Array();

for (var i=0; i<wktObj.length; i++) {
    var _o = new Object();

    _o["type"] = "Feature";
    _o["geometry"] = Terraformer.WKT.parse( wktObj[i] );
    _o["properties"] = {"country_id": "some_id",
                            "count": "some_count"};
    _geoArray[i] = _a;
};

var geoJSONObj = {
"type": "FeatureCollection"
};

geoJSONObj["features"] = _geoArray;

などとします。

注意

WKTやGeoJSONでは、扱うジオメトリ・オブジェクトの種類によってデータフォーマットが異なります。数値データを入れ子にしている括弧の数の違いに注目してください。

  • WKT

  • GeoJSON

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11