SlideShare a Scribd company logo
1 of 17
Download to read offline
OpenLayers
 で始める地図の操作
と少し座標のおはなし
フロントもくもく会#11
2018/07/21 (土)
矢崎 祐樹 @zucky_zakizaki
@zucky_zakizaki
・矢崎 祐樹(Yazaki Yuki)
・エンジニア 9年目
 C#(.net) と Windowsアプリ多め
・Web系 約半年
・最近は Rails+Vue.js が好き
 あと Xamarinあたり
・Qiita書いてます
 https://qiita.com/zaki_zaki
 
話すこと
• OpenLayers ってなんぞや
• デモ
• 座標のおはなし
  地図系ライブラリを扱う上で
  学んでおいたほうがよいこと
HomePage http://openlayers.org/
GitHub https://github.com/openlayers/openlayers
このへんをざっくり話していきます
OpenLayers とは
• 地図用JSライブラリ
• 商用アプリ配布可能
(2-clause BSD)
• 無料+制限なし
• 手軽
• カスタマイズが豊富
ここが ポイント !!概要
ポイント !! の部分を
順番に話していきたいと思います。
無料+制限なし
• 無料+制限なし
• 手軽
• カスタマイズが豊富
• 1日/25,000 リクエスト
  から…
• 1ヶ月/約28,000リクエスト
  に変更(2018/07/16から施行)
  詳しくは ↓↓
  https://cloud.google.com/maps-platform/pricing/sheet/
GoogleMaps(無料枠)の場合
• 無料+制限なし
• 手軽
• カスタマイズが豊富
OpenLayers の場合
• OpenStreetMap(OSM)
• 地理院地図
• etc…
OpenLayers なら無料(※)の地図利用が可能!!
※クレジット記載等の規約はあります。
OpenStreetMap(OSM) とは
• オープンライセンスの地図
• 登録や編集は一般の方が行なっている
• タイル(地図)サーバの自作が可能
こんなイベントも・・・
< https://openstreetmap.jp/ >
手軽
• 無料+制限なし
• 手軽
• カスタマイズが豊富
<div id="map"></div>
• 無料+制限なし
• 手軽
• カスタマイズが豊富
var olmap = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
});
<link rel="stylesheet" href=“∼/ol.css" type="text/css">
<script src=“∼/ol.js”></script>
読み込み
div要素
マップ生成
+
OSM読み込み
サンプルコード by codepen
< https://codepen.io/zucky_zakizaki/pen/dKOMMX >
カスタマイズが豊富
• 無料+制限なし
• 手軽
• カスタマイズが豊富
デモで説明します。
サンプルコード by codepen
< https://codepen.io/zucky_zakizaki/pen/OwWmYK >
座標のおはなし
地図系ライブラリを扱う上で
学んでおいたほうがよいこと。
座標について
経緯度
[渋谷] 139.701636, 35.658034
Webメルカトル
[渋谷] 15551514.982507259,4253668.826571383
我々 と OpenLayers で扱う座標の種類が異なる。
※OpenLayers以外(GoogleMaps等)もほぼ同様。
変換が必要!!
Webメルカトル って?
ざっくり説明すると・・・
• Googleが策定した座標
• 世界地図をXY軸かつ正方形で表せる
• 北極と南極あたりは描画対象外
プログラミング OpenLayers
例)中心座標を設定したい
let lnglat = ol.proj.fromLonLat([経度, 緯度]);
olView.setCenter(lnglat);
let center = olView.getCenter();
let lnglat = ol.proj.transform(center, 'EPSG:3857', 'EPSG:4326');
まとめ
• OpenLayers とは
• 「無料+制限なし、手軽、カスタマイズ豊富」
• 座標
• 経緯度ではなくWebメルカトルなので注意してね
OpenLayers
 で始める地図の操作
と少し座標のおはなし
ご静聴ありがとうございました

More Related Content

What's hot

WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築Hirata Tomoko
 
Rails+Markdownでなにかつくる
Rails+MarkdownでなにかつくるRails+Markdownでなにかつくる
Rails+MarkdownでなにかつくるHirata Tomoko
 
ネットワークこわい
ネットワークこわいネットワークこわい
ネットワークこわいMasahiro Tomita
 
RubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にするRubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にするnomlab
 
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Yamamoto Kazuhisa
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1Takuya Mukohira
 
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするRubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするnomlab
 
KOF2016東海道らぐLT
KOF2016東海道らぐLTKOF2016東海道らぐLT
KOF2016東海道らぐLTShu Kobuchi
 
mrubyのfiberを試してみた
mrubyのfiberを試してみたmrubyのfiberを試してみた
mrubyのfiberを試してみたKindai University
 
Simplest API Server "miq"
Simplest API Server "miq"Simplest API Server "miq"
Simplest API Server "miq"Yuki Ito
 
.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみたm ishizaki
 
お安く、楽にWEBアプリを支える技術
お安く、楽にWEBアプリを支える技術お安く、楽にWEBアプリを支える技術
お安く、楽にWEBアプリを支える技術KeitoTakeda
 
MySQLの系譜について少々
MySQLの系譜について少々MySQLの系譜について少々
MySQLの系譜について少々yoku0825
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料shogo yamada
 
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半隆介 小野
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰隆介 小野
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて善弘 植木
 

What's hot (20)

WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
 
Rails+Markdownでなにかつくる
Rails+MarkdownでなにかつくるRails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
 
CSV
CSVCSV
CSV
 
ネットワークこわい
ネットワークこわいネットワークこわい
ネットワークこわい
 
Rails あるある
Rails あるあるRails あるある
Rails あるある
 
RubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にするRubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にする
 
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
 
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にするRubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にする
 
KOF2016東海道らぐLT
KOF2016東海道らぐLTKOF2016東海道らぐLT
KOF2016東海道らぐLT
 
mrubyのfiberを試してみた
mrubyのfiberを試してみたmrubyのfiberを試してみた
mrubyのfiberを試してみた
 
Simplest API Server "miq"
Simplest API Server "miq"Simplest API Server "miq"
Simplest API Server "miq"
 
.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた
 
お安く、楽にWEBアプリを支える技術
お安く、楽にWEBアプリを支える技術お安く、楽にWEBアプリを支える技術
お安く、楽にWEBアプリを支える技術
 
MySQLの系譜について少々
MySQLの系譜について少々MySQLの系譜について少々
MySQLの系譜について少々
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料
 
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半
 
Raytracing4
Raytracing4 Raytracing4
Raytracing4
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
 

Similar to OpenLayersで始める地図の操作

Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Kanako Kobayashi
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08孝文 田村
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
Remote-Containersでnext.js環境を 作った話
Remote-Containersでnext.js環境を作った話Remote-Containersでnext.js環境を作った話
Remote-Containersでnext.js環境を 作った話Masaki Suzuki
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料慎平 仁藤
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
nomlab_okayamaruby_slide
nomlab_okayamaruby_slidenomlab_okayamaruby_slide
nomlab_okayamaruby_slidenomlab
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」Kanako Kobayashi
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションYoichiro Tanaka
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPCTIS Inc
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
 
つ部 Android 勉強会 2013年4月 発表資料
つ部 Android 勉強会 2013年4月 発表資料つ部 Android 勉強会 2013年4月 発表資料
つ部 Android 勉強会 2013年4月 発表資料Kenji Nagase
 
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話Takeuchi Yuichi
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsKoichiro Ohba
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようKanako Kobayashi
 

Similar to OpenLayersで始める地図の操作 (20)

Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Remote-Containersでnext.js環境を 作った話
Remote-Containersでnext.js環境を作った話Remote-Containersでnext.js環境を作った話
Remote-Containersでnext.js環境を 作った話
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
nomlab_okayamaruby_slide
nomlab_okayamaruby_slidenomlab_okayamaruby_slide
nomlab_okayamaruby_slide
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPC
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
つ部 Android 勉強会 2013年4月 発表資料
つ部 Android 勉強会 2013年4月 発表資料つ部 Android 勉強会 2013年4月 発表資料
つ部 Android 勉強会 2013年4月 発表資料
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
 

Recently uploaded

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Recently uploaded (7)

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

OpenLayersで始める地図の操作