2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ハンズオン準備4:地球地図スリランカを GeoJSON Text Sequence に変換する

Last updated at Posted at 2018-11-05

ハンズオン準備の第4回です。準備の全体の趣旨は第1回をご覧ください。今回は、地球地図スリランカのデータを GeoJSON Text Sequence に変換します。

実装

地球地図データアーカイブのオンラインデータからワンパスで GeoJSON Test Sequence に変換するためのコードは既にプロトタイプを書いていたので、これをベースに次のコードを作成して実装終了です。

const config = require('config')
const shapefile = require('shapefile')
const fetch = require('node-fetch')

const main = async function(url, cc, layer) {
  const shp = await fetch(`${url}/${layer}_${cc}.shp`)
  const dbf = await fetch(`${url}/${layer}_${cc}.dbf`)
  shapefile.open(shp.body, dbf.body, {encoding: 'utf-8'})
    .then(source => source.read()
      .then(function dump(result) {
        if (result.done) return
        console.log(JSON.stringify(result.value))
        return source.read().then(dump)
      }))
    .catch(error => console.error(error.stack))
}

for(const layer of config.get('layers')) {
  main(config.get('url'), config.get('cc'), layer)
}

データ

結果データおよびコードは GitHub に置いています。なお、データの利用条件についてもREADME.mdにメモしています。

次回

OSM の 6-46-30 のデータと、今回の地球地図スリランカのデータを、tippecanoe の入力データに変換します。国連ベクトルタイルツールキットの方法では、ここでいわゆるベクトルタイルスキーマを作り込んでいくことになります。作業レポジトリはspinel-produceになるでしょう。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?