Slide 1

Slide 1 text

WebGISをはじめてみる Yasunori Kirimoto 2015.10.31 OSGeo.JP × HTML5fun

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

今日の目次 ①WebGISとは ②構築方法 ③ まとめ

Slide 4

Slide 4 text

WebGISとは

Slide 5

Slide 5 text

そもそもGISって?

Slide 6

Slide 6 text

地理空間情報を扱う技術

Slide 7

Slide 7 text

位置情報 + 属性 国土地理院 基盤地図情報を使用

Slide 8

Slide 8 text

じゃあWebGISって?

Slide 9

Slide 9 text

WebGISをもっとも浸透させたコンテンツ Google Maps

Slide 10

Slide 10 text

自由度が高いWebGISを構築するには?

Slide 11

Slide 11 text

そこで、 FOSS4G を使おう!!

Slide 12

Slide 12 text

Free Open Source Software for GeoSpatial オープンソースの地理情報ソフトウェア(GIS)

Slide 13

Slide 13 text

SapporoLiveMap http://sapporolivemap.day-journal.com/

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

構築方法

Slide 16

Slide 16 text

基本構成 背景地図 マーカー GeoJSON

Slide 17

Slide 17 text

基本構成 背景地図 マーカー GeoJSON

Slide 18

Slide 18 text

index.html stylesheet.css script.js HTML CSS JS

Slide 19

Slide 19 text

Leaflet Sample
HTML ライブラリの参照設定

Slide 20

Slide 20 text

Leaflet Sample
HTML ライブラリの参照設定

Slide 21

Slide 21 text

html, body { height: 100%; padding: 0; margin: 0; } #map { z-index: 0; height: 100%; } CSS

Slide 22

Slide 22 text

基本構成 背景地図 マーカー GeoJSON

Slide 23

Slide 23 text

OpenStreetMap

Slide 24

Slide 24 text

var map = L.map('map'); L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution:'© OpenStreetMap contributors'}).addTo(map); map.setView([43.0559815, 141.3857792], 16); JS

Slide 25

Slide 25 text

地理院地図

Slide 26

Slide 26 text

var map = L.map('map'); L.tileLayer(‘http://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{ y}.png', { attribution: "国土地理院" }).addTo(map); map.setView([43.0559815, 141.3857792], 16); JS

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

基本構成 背景地図 マーカー GeoJSON

Slide 29

Slide 29 text

var Map_Marker = L.marker([43.0559815, 141.3857792]) .addTo(map); var comment = 'Inter x cross Creative Center'; Map_Marker.bindPopup(comment).openPopup(); JS マーカーの表示 ポップアップの表示

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

基本構成 背景地図 マーカー GeoJSON

Slide 32

Slide 32 text

・データを作成 ・オープンデータを利用

Slide 33

Slide 33 text

geojson.io

Slide 34

Slide 34 text

国土数値情報

Slide 35

Slide 35 text

GeoJSON 表示

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Leaflet Sample
HTML

Slide 38

Slide 38 text

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の表示 アイコンと属性値の反映 マーカーアイコンを設定

Slide 39

Slide 39 text

国土数値情報(都市公園データ)を使用

Slide 40

Slide 40 text

まとめ

Slide 41

Slide 41 text

・背景地図 ・マーカー ・GeoJSON ・全体概要