Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WebGISをはじめてみる
Search
Yasunori Kirimoto
October 31, 2015
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebGISをはじめてみる
OSGeo.JP × HTML5fun 発表資料
Yasunori Kirimoto
October 31, 2015
More Decks by Yasunori Kirimoto
See All by Yasunori Kirimoto
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
680
Geospatialの世界最前線を探る [2025年版]
dayjournal
3
820
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
4
930
FOSS4Gで実現するQGIS版Amazon Location Service Plugin
dayjournal
0
1.6k
State of Open Source Web Mapping Libraries
dayjournal
0
730
AWS Heroes Map 秘伝のレシピ
dayjournal
2
410
State of Amazon Location Service
dayjournal
0
490
State of Amazon Location Service
dayjournal
1
810
MapLibreとAmazon Location Service
dayjournal
1
910
Other Decks in Technology
See All in Technology
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6.1k
KiCAD講習会②
tutcreators
0
110
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.1k
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.9k
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.5k
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
0
170
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
160
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
160
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
270
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.5k
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
1
360
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
0
140
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
630
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
170
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Designing Experiences People Love
moore
143
24k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
420
A designer walks into a library…
pauljervisheath
211
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Transcript
WebGISをはじめてみる Yasunori Kirimoto 2015.10.31 OSGeo.JP × HTML5fun
None
今日の目次 ①WebGISとは ②構築方法 ③ まとめ
WebGISとは
そもそもGISって?
地理空間情報を扱う技術
位置情報 + 属性 国土地理院 基盤地図情報を使用
じゃあWebGISって?
WebGISをもっとも浸透させたコンテンツ Google Maps
自由度が高いWebGISを構築するには?
そこで、 FOSS4G を使おう!!
Free Open Source Software for GeoSpatial オープンソースの地理情報ソフトウェア(GIS)
SapporoLiveMap http://sapporolivemap.day-journal.com/
None
構築方法
基本構成 背景地図 マーカー GeoJSON
基本構成 背景地図 マーカー GeoJSON
index.html stylesheet.css script.js HTML CSS JS
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Leaflet Sample</title> <script
src="./Library/leaflet-0.7.5/leaflet.js”></script> <link href=“./Library/leaflet-0.7.5/leaflet.css" rel="stylesheet" /> <link href="./css/stylesheet.css" rel="stylesheet" /> </head> <body> <div id="map"></div> <script src="./js/script.js"></script> </body> </html> HTML ライブラリの参照設定
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Leaflet Sample</title> <script
src="http://cdn.leafletjs.com/leaflet- 0.7.5/leaflet.js"></script> <link rel="stylesheet“ href="http://cdn.leafletjs.com/ leaflet-0.7.5/leaflet.css" /> <link href="./css/stylesheet.css" rel="stylesheet" /> </head> <body> <div id="map"></div> <script src="./js/script.js"></script> </body> </html> HTML ライブラリの参照設定
html, body { height: 100%; padding: 0; margin: 0; }
#map { z-index: 0; height: 100%; } CSS
基本構成 背景地図 マーカー GeoJSON
OpenStreetMap
var map = L.map('map'); L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution:'© <a href="http://osm.org/copyright"> OpenStreetMap</a>
contributors'}).addTo(map); map.setView([43.0559815, 141.3857792], 16); JS
地理院地図
var map = L.map('map'); L.tileLayer(‘http://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{ y}.png', { attribution: "<a href='http://www.gsi.go.jp/kikakuchousei/
kikakuchousei40182.html' target='_blank'>国土地理院</a>" }).addTo(map); map.setView([43.0559815, 141.3857792], 16); JS
None
基本構成 背景地図 マーカー GeoJSON
var Map_Marker = L.marker([43.0559815, 141.3857792]) .addTo(map); var comment = 'Inter
x cross Creative Center'; Map_Marker.bindPopup(comment).openPopup(); JS マーカーの表示 ポップアップの表示
None
基本構成 背景地図 マーカー GeoJSON
・データを作成 ・オープンデータを利用
geojson.io
国土数値情報
GeoJSON 表示
var pointdata = { "type": "FeatureCollection", "crs": { "type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, "features": [ { "type": "Feature", "properties": { "P13_003": "北6条エルムの里公園" }, "geometry": { "type": "Point", "coordinates": [ 141.34308642, 43.0666937 ] } }, { "type": "Feature", "properties": { "P13_003": "宮部記念緑地" }, "geometry": { "type": "Point", "coordinates": [ 141.33550164, 43.0666937 ] } }, { "type": "Feature", "properties": { "P13_003": "偕楽園緑地" }, "geometry": { "type": "Point", "coordinates": [ 141.34429626, 43.06828667 ] } }, { "type": "Feature", "properties": { "P13_003": "八軒コスモス公園" }, "geometry": { "type": "Point", "coordinates": [ 141.32328053000001, 43.08470141 ] } } ] }; GeoJSON
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Leaflet Sample</title> <script
src="./Library/leaflet-0.7.5/leaflet.js”></script> <link href=“./Library/leaflet-0.7.5/leaflet.css" rel="stylesheet" /> <script src="./files/sample.geojson"></script> <link href="./css/stylesheet.css" rel="stylesheet" /> </head> <body> <div id="map"></div> <script src="./js/script.js"></script> </body> </html> HTML
var ParkIcon = L.icon({ iconUrl: './img/Park.png', iconSize: [50, 50], iconAnchor:
[25, 20], popupAnchor: [0, -30] }); var Map_GeoJSON = L.geoJson(pointdata, { pointToLayer: function (feature, layer) { return L.marker(layer, { icon: ParkIcon }); }, onEachFeature: function (feature, layer) { layer.bindPopup(feature.properties.P13_003); } }).addTo(map); JS GeoJSONの表示 アイコンと属性値の反映 マーカーアイコンを設定
国土数値情報(都市公園データ)を使用
まとめ
・背景地図 ・マーカー ・GeoJSON ・全体概要