SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 

Tendances (20)

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
Cesiumを動かしてみよう
Cesiumを動かしてみようCesiumを動かしてみよう
Cesiumを動かしてみよう
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
 
WebGIS初級編 - OpenLayersで簡単作成
WebGIS初級編 - OpenLayersで簡単作成WebGIS初級編 - OpenLayersで簡単作成
WebGIS初級編 - OpenLayersで簡単作成
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
G2o
G2oG2o
G2o
 
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 

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

Foss4 g presen_android
Foss4 g presen_androidFoss4 g presen_android
Foss4 g presen_android
masarunarazaki
 
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
Yoichi Kayama
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
 

Similaire à JavaScript GIS ライブラリ turf.js 入門 (20)

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

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