jptilesclient
v2.0.1
Published
ver.1 のクライアントは`LegacyClient`として利用できます
Downloads
3
Readme
Ver.2 になったことにより、破壊的な変更が行われています。
ver.1 のクライアントはLegacyClient
として利用できます
地理院地図 Vector(仮称)用クライアント
国土地理院が試験提供している地理院地図 Vector(仮称)のベクトルタイルを非常に扱い安くするライブラリです。
他のベクトルタイルと異なり、Pbf 形式で配布されているため通常は Json のようにデータを扱うことができませんが、
このライブラリを使うことで指定した範囲内のタイルをまとめて一つの GeoJson 形式のオブジェクトとして出力できます。
内部に僕が作ったのsimpletileclient
を使っています
使用例
import { writeFileSync } from "fs";
import { VectorClient } from "jptilesclient";
const client = new VectorClient();
const all = [
"symbol",
"building",
"waterarea",
"boundary",
"coastline",
"elevation",
"label",
"other",
"railway",
"river",
"road",
];
client.getTileByRect(11, 1819, 806, 5, 5).then((tiles) => {
writeFileSync("test.geojson", JSON.stringify(tiles.get(all, 5)));
});
このプログラムでは東京のタイルを中心として正方形状に 5*5 マスのタイルを取得し、GeoJson 形式に変換してtest.geojson
というファイル名で保存しています。
この作成したファイルは QGIS などのソフトで閲覧することが可能です。
API
Constructor
new VectorClient() —タイルを取得するクライアントを作成する。
このクライアントのメソッドを使ってタイルを取得、変換できる
Method
getTile(zoom: number, x: number, y: number)=>Promise —cx
,cy
のタイルを取得し、それらを加工し、GeoJson にするためのTileManager
のインスタンスを返します。
getByRect(zoom: number, cx: number, cy: number, width: number,
height: number,sourceLayers: string | string[])=>Promise —
cx
,cy
を中心として幅width
,高さheight
の範囲のタイルを全取得し、それらを加工し、GeoJson にするためのTileManager
のインスタンスを返します。
TileManager
get(sourceLayers: string | string[], precision?: number)=>GeoJson —
sourceLayers
で指定したレイヤーのみを GeoJson にして返します。また、オプションでデータに含まれている経度、緯度の精度をprecision
で指定した桁まで落とすことができます。