SlideShare a Scribd company logo
2
Most read
14
Most read
17
Most read
JavaScript GIS ライブラリ
turf.js 入門
都筑総研
turf.jsとは
• 軽量・高速・オープンなWeb地図用のGISライブラリ
• 米国 MapBox社が開発・公開
• クライアント(Webブラウザ)、サーバ(Node.js等)
両方で実行可能
http://turfjs.org/static/docs/
ドキュメントサイト
基本
• 取り扱うGISデータ・フォーマット
• GeoJSON形式
• 取り扱う形状
• 点:point
• 線:line
• 面:polygon
できる事:空間計測・関係
• 重心・中心点の算出 :Centroids and centers
• 集合・統計関数 :Aggregation & stastics functions
• バッファ分析:Buffer analysis
• TIN(不整三角形網):Triangulated irregular networks
• クラスタリング:Data classification
• 距離計算:Distance calculations
(一部抜粋)
できる事:空間編集処理
• 簡略化:Simplify features
• 結合・併合:Union ・Merge
• 凹・凸包処理 :Concave & convex hulls
• 補間:Interpolation
• 矩形・六角形 グリッド出力:Grids・Hexagonal binning
• フィルタリング・選択:Filter / select by attribute
(一部抜粋)
導入方法
• Webに公開されたデータをリンクする
<script src='//api.tiles.mapbox.com/mapbox.js/plugins/turf/
v1.4.0/turf.min.js'></script>
そのまま貼り付け、ダウンロードして利用して下さい
事例:2点間の距離
• 新宿駅と代々木駅の直線距離計算してみます
新宿
代々木
© OpenStreetMap contributors
処理内容
1. GeoJSON形式の地点(新宿・代々木)の作成
2. 距離計算単位の宣言
3. 距離計測関数による距離計算の実行
サンプルコード
https://github.com/tkama/turf_sample/blob/gh-pages/turf.distance.html
1.GeoJSONの作成
//新宿駅のGeoJSONデータ
var point1 = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [139.70058739185333,35.68956144849349]
}
};
//代々木駅のGeoJSONデータ
var point2 = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [139.7020572423935,35.683975674120234]
}
};
2.距離計算単位の宣言
//単位を表現する文字列を変数に入力
var units = "kilometers"; //can be degrees, radians, miles, or kilometers
選択可能な単位
• 度:degrees
• ラジアン : radians
• マイル : miles
• キロメートル : kilometers
3.距離計算の実行
//距離計算 turf.distance( 地点1, 地点2, 計算単位 );
var distance = turf.distance( point1 , point2 , units );
//実行結果 0.635336862243156
計算の結果 2駅間の直線距離は 約635m
事例2:バッファの作成
• 新宿駅を起点に半径500mの範囲(バッファ)を作成
500m
処理内容
1. GeoJSON形式の地点(新宿駅)の作成
2. 距離計算単位の宣言
3. バッファ作成関数 turf.bufferによる空間演算
サンプルコード
https://github.com/tkama/turf_sample/blob/gh-pages/turf.buffer.html
1.GeoJSONの作成
//新宿駅のGeoJSONデータ
var point1 = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [139.70058739185333,35.68956144849349]
}
};
2.距離計算単位の宣言
//単位を表現する文字列を変数に入力
var units = "meters";
選択可能な単位
• 度:degrees
• フィート : feet
• マイル : miles
• キロメートル : kilometers
• メートル : metrs
3.バッファの作成
//単位を表現する文字列を変数に入力
var buffered = turf.buffer( point1 , 500 , units );
//地図に追加

L.geoJson(buffered).addTo(map);
turf.buffer関数
• 第1引数:地物型 / 複合地物型(点、線、面、複合型)
• 第2引数 : 数値型 半径
• 第3引数 : 文字列型 単位('miles', 'feet', 'kilometers', 'meters', or 'degrees')
• 戻り値:地物型 / 複合地物型(面)
表示結果
© OpenStreetMap contributors

More Related Content

PDF
マイクロサービス 4つの分割アプローチ
PDF
イミュータブルデータモデルの極意
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
PPTX
世界一わかりやすいClean Architecture
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
PDF
Serverless時代のJavaについて
PDF
例外設計における大罪
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
マイクロサービス 4つの分割アプローチ
イミュータブルデータモデルの極意
新入社員のための大規模ゲーム開発入門 サーバサイド編
世界一わかりやすいClean Architecture
SPAセキュリティ入門~PHP Conference Japan 2021
Serverless時代のJavaについて
例外設計における大罪
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)

What's hot (20)

PPTX
Dockerからcontainerdへの移行
PDF
BuildKitの概要と最近の機能
PDF
イミュータブルデータモデル(入門編)
PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
Presto ベースのマネージドサービス Amazon Athena
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
PDF
AWSのログ管理ベストプラクティス
PPTX
Redisの特徴と活用方法について
PPTX
初心者向けMongoDBのキホン!
PDF
シリコンバレーの「何が」凄いのか
PDF
ドメイン駆動設計のための Spring の上手な使い方
PPTX
本当は恐ろしい分散システムの話
PDF
異次元のグラフデータベースNeo4j
KEY
はじめてのCouch db
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PPTX
async/await のしくみ
PDF
ナレッジグラフ入門
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PDF
ログ解析を支えるNoSQLの技術
Dockerからcontainerdへの移行
BuildKitの概要と最近の機能
イミュータブルデータモデル(入門編)
ストリーム処理を支えるキューイングシステムの選び方
Presto ベースのマネージドサービス Amazon Athena
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
AWSのログ管理ベストプラクティス
Redisの特徴と活用方法について
初心者向けMongoDBのキホン!
シリコンバレーの「何が」凄いのか
ドメイン駆動設計のための Spring の上手な使い方
本当は恐ろしい分散システムの話
異次元のグラフデータベースNeo4j
はじめてのCouch db
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
async/await のしくみ
ナレッジグラフ入門
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
ドメイン駆動設計 ( DDD ) をやってみよう
ログ解析を支えるNoSQLの技術
Ad

Similar to JavaScript GIS ライブラリ turf.js 入門 (20)

PPTX
Osckyoto2012 osgeojp foss4g
PDF
NoSQLデータベースと位置情報
PPTX
StreamGraph
PDF
FOSS4Gで地理空間情報もかんたん
PDF
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
PDF
2012 07 14_osm-ws_2
PDF
Foss4 g presen_android
PDF
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
PDF
2012 06 30_osm-ws_1a
PPTX
Map server入門 - FOSS4G 2012 Hokkaido
PPTX
201910 azure seminar
PDF
GISについてのお話
PPTX
Foss4g2012 MapGuide Hands-On
PDF
2013 02 09_osc2013_hamamatsu_osm
PDF
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
PDF
QGIS training 2/3
PDF
20201113_PGconf_Japan_GPU_PostGIS
PDF
グラフデータ分析 入門編
PPTX
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
PDF
2012 07 27_osm_project10
Osckyoto2012 osgeojp foss4g
NoSQLデータベースと位置情報
StreamGraph
FOSS4Gで地理空間情報もかんたん
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
2012 07 14_osm-ws_2
Foss4 g presen_android
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
2012 06 30_osm-ws_1a
Map server入門 - FOSS4G 2012 Hokkaido
201910 azure seminar
GISについてのお話
Foss4g2012 MapGuide Hands-On
2013 02 09_osc2013_hamamatsu_osm
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
QGIS training 2/3
20201113_PGconf_Japan_GPU_PostGIS
グラフデータ分析 入門編
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
2012 07 27_osm_project10
Ad

JavaScript GIS ライブラリ turf.js 入門