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
マピオン、ベクタータイルはじめました
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
One compath
July 01, 2017
Technology
4
1.5k
マピオン、ベクタータイルはじめました
FOSS4G 2017 Hokkaido の発表資料です
One compath
July 01, 2017
Tweet
Share
More Decks by One compath
See All by One compath
社内の制度を使って新規事業を⽴ち上げてみた話 OCEM#3
mapion
0
200
新規事業のアプリ、Flutterで作ってます〜U-ROUTEのポイ活対応編〜 OCEM#3
mapion
0
230
ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3
mapion
0
220
ONE COMPATH/ワンコンパス Company Deck For Engineer(会社紹介資料)
mapion
0
8.1k
ONE COMPATHの地図の開発技術~入門編~ OCEM #2
mapion
0
230
脱レガシー! Aurora PostgreSQLに移行してみた OCEM #2
mapion
1
980
エンジニアなので「技術」で仕事を効率化してみた ~Slack連携でチームの生産性が向上~ OCEM#2
mapion
0
220
20221112_FOSS4G2022Online.pdf
mapion
0
1.8k
ONE COMPATH/ワンコンパス Company Deck(会社資料)
mapion
0
380
Other Decks in Technology
See All in Technology
SaaSに宿る21g
kanyamaguc
2
180
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
110
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
400
FlutterでPiP再生を実装した話
s9a17
0
230
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
160
CREがSLOを握ると 何が変わるのか
nekomaho
0
260
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
30
14k
AI時代のIssue駆動開発のススメ
moongift
PRO
0
300
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
1
210
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
140
「AIエージェントで変わる開発プロセス―レビューボトルネックからの脱却」
lycorptech_jp
PRO
0
190
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
130
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Between Models and Reality
mayunak
2
250
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Transcript
ϚϐΦϯ ϕΫλʔλΠϧ ͡Ί·ͨ͠ גࣜձࣾϚϐΦϯɹਗ਼ਫचཬ FOSS4G 2017 HOKKAIDO
ਗ਼ਫचཬʢ͠Έͣ͡ΎΓʣ ৽ଔͰෆಈ࢈ձࣾʹೖࣾ ɹ→͍Ζ͍Ζ͋ͬͯ̍Ͱୀ৬ SIerʹస৬ ɹ→͍Ζ͍Ζ͋ͬͯ̔Ͱୀ৬ גࣜձࣾϚϐΦϯೖࣾ̐ ओʹਤλΠϧͷੜͱ৴Λ୲ ࣗݾհ
ϚϐΦϯͱ
1996ʹຊॳͷਤΠϯλʔωοταʔϏεΛ։࢝
໊শɹɹɹ ɿ גࣜձࣾϚϐΦϯ ઃཱɹɹɹ ɿ 1997 1݄ 20 ࢿຊۚɹɹ ɿ
6ԯԁ ैۀһ ɿ 97໊ʢ20176݄ݱࡏʣ גओɹɹɹ ɿ ತ൛ҹ ʢ100%ʣ εϩʔΨϯ ɿʮίίϩɺΧϥμɺಈ͔͢ϚϐΦϯʯ ࢀՃஂମ ɿOSGeoࡒஂຊࢧ෦ ๏ਓձһ Ԋֵ 20पΛܴ͑·ͨ͠ʂ
ࣄۀ༰
ਤϚϐΦϯ ͷग़ͷೖΓ ࠃ౪Γ߹ઓ ͓Ͱ͔͚ΞϧόϜ ΩϣϦଌ ϚϐΦϯ·ͱΊ ϐϯϙΠϯτఱؾ ܙํϚϐΦϯ ͪΜ͋ͳ͝ υίστολʔ
ίίστολʔ ΞϓϦ͍Ζ͍Ζ BSVLV
ϚϐΦϯ ϕΫλʔλΠϧ ͡Ίͯ·ͨ͠
2016/10 ϥϘαΠτʹͯ ϚϐΦϯϕΫλʔެ։
า͚ͩ͘ͰϓϨθϯτ͕ Β͑ΔɺҰาઌߦ͘Υʔ ΩϯάΞϓϦ 2016/11 aruku&ʢ͋Δ͘ͱʣϦϦʔε
ܙํרΛ৯Δํ͕͔֯ ΔɺʹҰ͞ΕΔΞ ϓϦ 2017/1 ܙํϚϐΦϯ(iOS൛)ͷਤΛ ϥελʔ͔ΒϕΫλʔʹมߋ
ϕΫλʔλΠϧ ·ͰͷಓͷΓ
2013ࠒ ɹϥϘ׆ಈͱͯ͠ʢࡉʑͱʣ ɹϕΫλʔλΠϧͷ։ൃʹணख
2014ࠒ ɹಠࣗγεςϜʢ΄΅ʣʂ
ಠࣗγεςϜͷߏ ϕΫλʔλΠϧ Protocol Buffers ܗࣜ ϑΥʔϚοτಠ༷ࣗ ϨϯμϦϯά Android/OpenGL ES 2.0Ͱ
ಠࣗʹ։ൃ ελΠϧϑΝΠϧ XMLܗࣜ
ਤͷඳը͕͍ɺiPhone൛͕ผ్ඞཁ… ͳͲͷ՝͕ൃੜ ϨϯμϦϯάΤϯδϯΛωΠςΟϒʢC++ʣ Ͱθϩ͔Β࡞Δ͔͠ͳ͍͔… Mapbox͕ϕΫλʔλΠϧ Mapbox Vector Tile ͱϨϯμϦϯάΤϯδϯ Mapbox
GL Native ΛΦʔϓϯʹ։ൃ͍ͯ͠Δ͜ͱΛൃݟʂʂʂ
2014ࠒ ɹಠࣗγεςϜΛΊɺ ɹMapbox Vector Tile ͷ ɹ࠾༻ΛܾΊΔ
ݱࡏͷϚϐΦϯͷߏ ϕΫλʔλΠϧ Mapbox Vector Tile ϨϯμϦϯά Mapbox GL Native ελΠϧϑΝΠϧ
Mapbox Style
࣌ɺ Mapbox GL Native ʹඞཁͳػೳ ʢminzoom,maxzoomͷࢦఆͳͲʣ͕ͳ͍͜ ͱଟ͘ɺΧελϚΠζͯ͠ิ͍ͬͯͨ ͦΕ͔ΒɺͲΜͲΜػೳՃ͞ΕɺݱࡏͰ Γͳ͍ػೳ΄΅ͳ͘ͳͬͨ ݱࡏɺMapbox
Vector Tile esri Ͱ࠾༻͞ ΕɺσϑΝΫτελϯμʔυʹͳΓͭͭ͋Δ
ݱࡏʹࢸΔ
.BQCPY(-/BUJWF ʹ͍ͭͯ
ɾϕΫλʔਤΛෳͷϓϥοτϑΥʔϜ্ ͷωΠςΟϒΞϓϦέʔγϣϯʹຒΊࠐΉͨ ΊͷϥΠϒϥϦ ɹJS൛ɺUnity൛ผ్༻ҙ͞Ε͍ͯΔ ɾΦʔϓϯιʔεɺBSDϥΠηϯε ɾ։ൃ͕͔͞ΜͰɺͲΜͲΜόʔδϣϯΞο ϓ͞Ε͍ͯΔʢલόʔδϣϯͱޓੑ͕ͳ͍ ͜ͱଟ͍ͨΊɺҙ͕ඞཁʣ .BQCPY(-/BUJWFͱ
ɾMapboxͷਤΛදࣔͤ͞ΔʹΞΫηε τʔΫϯͷൃߦ͕ඞཁ ɹαʔυύʔςΟͷਤΛදࣔ͢Δ߹ ΞΫηετʔΫϯෆཁ ϚϐΦϯͰΧελϚΠζΛߦ͍ɺ ΞΫηετʔΫϯʹରԠ͍ͯ͠Δ .BQCPY(-/BUJWFͱ
Mapbox GL NativeͰ ਤΛඳը͢ΔͨΊʹ ඞཁͳͷ
ϕΫλʔλΠϧ εϓϥΠτ ϑΝΠϧ ϑΥϯτ ϑΝΠϧ ελΠϧ ϑΝΠϧ ϕΫλʔλΠϧʹGeometryͷσʔλͱଐੑใ͕ ೖ͍ͬͯΔ͚ͩͳͷͰɺGeometry͝ͱͷදࣔͷ༗ແɺ σβΠϯɺϑΥϯτɺΞΠίϯͳͲελΠϧϑΝΠϧ
Ͱઃఆ͢Δ
ɾϕΫλʔλΠϧ ɹʢMapbox Vector Tileʣ ɾελΠϧϑΝΠϧ ɹʢMapbox Styleʣ ɾεϓϥΠτϑΝΠϧ ɾϑΥϯτϑΝΠϧ
ɾϕΫλʔλΠϧ ɹʢMapbox Vector Tileʣ ɾελΠϧϑΝΠϧ ɹʢMapbox Styleʣ ɾεϓϥΠτϑΝΠϧ ɾϑΥϯτϑΝΠϧ
ϕΫλʔλΠϧ ʢMapbox Vector Tileʣ ɾMapbox͕ఆΊͨϕΫλʔλΠϧͷΦʔϓ ϯͳ༷ ɾProtocol Buffers ܗࣜ ɾGeometryͷ૬ର࠲ඪΛΤϯίʔυͨ͠
ͷͱଐੑใͷू·Γ
sample MBZFST\ OBNFYYYY GFBUVSFT\ UBHT UBHT UZQF10-:(0/ HFPNFUSZ HFPNFUSZ ʜ
^ LFZTDPEF WBMVFT\ JOU@WBMVF ^ WFSTJPO ^ ʜ Geometryͷ ૬ର࠲ඪ ଐੑใ
ɾϕΫλʔλΠϧ ɹʢMapbox Vector Tileʣ ɾελΠϧϑΝΠϧ ɹʢMapbox Styleʣ ɾεϓϥΠτϑΝΠϧ ɾϑΥϯτϑΝΠϧ
ελΠϧϑΝΠϧ ʢMapbox Styleʣ ɾਤͷσβΠϯΛܾΊΔϑΝΠϧ ɾjsonܗࣜ ɾϚϐΦϯͰ MVT Styler Λͬͯɺ࡞/ ฤूΛߦ͍ͬͯΔ
ʜ MBZFST< \ JETBNQMF
UZQFpMM TPVSDFTBNQMF TPVSDFMBZFSTBNQMF pMUFS< DPEF > QBJOU\ pMMDPMPSCF ^ ^ > ʜ sample
શGUIͷϕΫλʔλΠϧελΠϧΤσΟλ MVT Styler
MVT Styler ɾϦΞϧλΠϜͰσβΠϯͷมߋ ͕֬ೝͰ͖Δ ɾγϯϓϧͳػೳͰɺײతʹૢ ࡞Ͱ͖Δ ɾਤ্ͰϨΠϠʔΛ֬ೝͰ͖Δ ͷͰศར ɾϚϐΦϯͰΧελϚΠζͯ͠ɺ ϑΝΠϧग़ྗ
/ ը૾ग़ྗͳͲͷػ ೳΛՃ͍ͯ͠Δ
ɾϕΫλʔλΠϧ ɹʢMapbox Vector Tileʣ ɾελΠϧϑΝΠϧ ɹʢMapbox Styleʣ ɾεϓϥΠτϑΝΠϧ ɾϑΥϯτϑΝΠϧ
εϓϥΠτϑΝΠϧ ɾਤ্ͷΞΠίϯΛ·ͱΊͨεϓϥΠτϑΝΠϧ ɾpngϑΝΠϧͱjsonϑΝΠϧͰߏ͞ΕΔ ɾMVT Styler Ͱ࡞Ͱ͖Δ
\lTBNQMFTWH\XJEUI IFJHIU Y Z QJYFM3BUJP^ lTBNQMFTWH\XJEUI IFJHIU
Y Z QJYFM3BUJP^ ʜ KTPO QOH sample
ɾϕΫλʔλΠϧ ɹʢMapbox Vector Tileʣ ɾελΠϧϑΝΠϧ ɹʢMapbox Styleʣ ɾεϓϥΠτϑΝΠϧ ɾϑΥϯτϑΝΠϧ
ϑΥϯτϑΝΠϧ ɾϑΥϯτϑΝΠϧʢttfͳͲʣ͔ΒglyphΛ 256୯ҐͰׂͯͦ͠ΕΛpbfԽͨ͠ͷ ɹttfϑΝΠϧ ɹ→ 0-255.pbf, 256-511.pbf ... 256ݸ ɾMVT
Styler Ͱ࡞Ͱ͖Δ
ϚϐΦϯͷ ϕΫλʔλΠϧͷ ੜ/৴ͷ͘͠Έ
ϨϯμϦϯά ɹਤσβΠϯ λΠϧੜ σʔλ ४උ ϑΝΠϧ ετϨʔδ 4IBQF pMF %#
1PTUHSFT 1PTU(*4 ετϨʔδ ΫϥΠΞϯτ ੜ༻ αʔό ϕΫλʔλΠϧ ʢQCG .75 4UZMFS εϓϥΠτ ϑΝΠϧ ʢQOH KTPO ϑΥϯτ ϑΝΠϧ ʢQCG ελΠϧ ϑΝΠϧ ʢKTPO ४උɾੜ 24࣌ؒ
ϥϘαΠτ BSVLV ಉ͡ϕΫλʔλΠϧΛ ͍ͬͯΔ
ϚϐΦϯͷʮඒ͍͠ʯʮ໎Θͳ͍ʯਤ ελΠϧϑΝΠϧɿ25000ߦҎ্ ϨΠϠʔɿ691
ϕΫλʔλΠϧͷ ͭ͘Γ͔ͨ
ਤʢࠃجຊใʣͷαϯϓϧσʔλ ͔ΒϦΞϧλΠϜͰϕΫλʔλΠϧΛੜ 4IBQF pMF %# 1PTUHSFT 1PTU(*4 ελΠϧ ϑΝΠϧ
ʢKTPO SQLͰϦΞϧλΠϜʹ ϕΫλʔλΠϧΛੜ
ࣄલʹؔΛ࡞ map.tile_to_box(bigint, bigint, integer, integer) ɹλΠϧใ͔ΒBoundingBoxΛٻΊΔ map.pixel_at_zoom(integer) ɹͦͷζʔϜʹ࠷దͳΛٻΊΔ ɹST_SimplifyST_SnapToGridͰར༻ map.safe_intersection(geometry,
geometry) ɹηʔϑςΟͳST_Intersectionɻ ɹST_IntersectionͰException͕ൃੜͨ͠߹ ɹਫ਼ΛԼ͛ͯST_IntersectionΛߦ͏
ಓ࿏ΛϕΫλʔλΠϧԽ͢Δαϯϓϧ 4&-&$5 SEDUH 45@"T(FP+40/ 45@5SBOTGPSN 45@4JNQMJGZ
[email protected]
45@$PMMFDU HFPN NBQQJYFM@BU@[PPN \[^ "4HFPN@HFPKTPO '30. 4&-&$5 SEDUH 45@%VNQ NBQTBGF@JOUFSTFDUJPO HFPN NBQUJMF@UP@CPY \Y^ \Z^ \[^ HFPNHFPN '30. SEDM 8)&3& HFPNNBQUJMF@UP@CPY \Y^ \Z^ \[^ B(3061#:BSEDUH αΠζΛ͑ΔͨΊʹϥΠϯΛܨ ͛ͯؒҾ͘ ରͷλΠϧʹશʹऩΊΔͨΊ λΠϧ֎ʹΈग़ͨ͠෦ΛΧοτ ରͷλΠϧʹؚ·ΕΔ geometryͷΈΛநग़
ਤ
ղઆ http://qiita.com/honjo/items/ 8ea61f5a9c1bbaa669c0 ιʔείʔυ https://github.com/mapion/simple- vectorizer ͥͻ͓ͨΊ͍ͩ͘͠͞ʂ
ࠓޙͷల
ɾMapbox Vector Tile σϑΝΫτελϯ μʔυʹͳΓͭͭ͋ΔΦʔϓϯͳ༷ ɾMapbox Vector TileʹରԠͨ͠πʔϧ ଟ͋͘Γɺ͜Ε͔Β૿͍͑ͯ͘ͱࢥΘΕΔ ex)
Mapzen, Klokan Technologies, MVT Styler, Maputnik etc… ͍ΖΜͳՄೳੑ͕͕ͬͨʂ
ϚϐΦϯͰ ɾਤͷ৴ ɾਤAPIͷఏڙ ɾਤSDKͷఏڙ ɾਤσβΠϯπʔϧͷఏڙ ɾਤ৴γεςϜͷఏڙ ͳͲͷGIS։ൃࢧԉαʔϏεΛߏதʂʂʂ
৽αʔϏεͷλʔήοτ ɹҐஔใΛ׆༻͍ͨ͠શͯͷਓ ɹҐஔใΛఏڙ͍ͨ͠શͯͷਓ ͭ·Γ͜͜ʹ͍Δօ͞ΜͰ͢ʂ
ޤ͏͝ظʂʂ
ࢀߟURL ɹ˙ϚϐΦϯϕΫλʔ IUUQTNBQJPOHJUIVCJPNBQJPOWFDUPS ˙BSVLV IUUQTXXXBSVLVUPKQ ˙ܙํϚϐΦϯ J04൛ IUUQTJUVOFTBQQMFDPNKQBQQܙํϚϐΦϯJE NU
˙.BQCPY(-/BUJWF IUUQTHJUIVCDPNNBQCPYNBQCPYHMOBUJWF ˙.BQCPY(-+4 IUUQTHJUIVCDPNNBQCPYNBQCPYHMKT ˙.BQCPYVOJUZTEL IUUQTHJUIVCDPNNBQCPYNBQCPYVOJUZTEL ˙.BQCPY7FDUPS5JMF4QFDJpDBUJPO IUUQTXXXNBQCPYDPNWFDUPSUJMFTTQFDJpDBUJPO ˙.BQCPY4UZMF4QFDJpDBUJPO IUUQTXXXNBQCPYDPNNBQCPYHMKTTUZMFTQFD ˙.754UZMFS IUUQTTQVUOJLNBQTHJUIVCJPNWUTUZMFS ˙εϓϥΠτϑΝΠϧΛ࡞Δπʔϧ IUUQTHJUIVCDPNNBQCPYTQSJUF[FSP IUUQTHJUIVCDPNNBQCPYTQSJUF[FSPDMJ ˙ϑΥϯτϑΝΠϧΛ࡞Δπʔϧ IUUQTHJUIVCDPNNBQCPYOPEFGPOUOJL ˙ࠃใʢߦ۠Ҭσʔλɺమಓσʔλʣ͔ΒϕΫλʔλΠϧΛ࡞ͬͨαϯϓϧ IUUQTNZHTJIFSPLVBQQDPNɹ
͓ΘΓ