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
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
190
新規事業のアプリ、Flutterで作ってます〜U-ROUTEのポイ活対応編〜 OCEM#3
mapion
0
220
ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3
mapion
0
210
ONE COMPATH/ワンコンパス Company Deck For Engineer(会社紹介資料)
mapion
0
7.7k
ONE COMPATHの地図の開発技術~入門編~ OCEM #2
mapion
0
220
脱レガシー! Aurora PostgreSQLに移行してみた OCEM #2
mapion
1
940
エンジニアなので「技術」で仕事を効率化してみた ~Slack連携でチームの生産性が向上~ OCEM#2
mapion
0
220
20221112_FOSS4G2022Online.pdf
mapion
0
1.7k
ONE COMPATH/ワンコンパス Company Deck(会社資料)
mapion
0
370
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
4
4.7k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
120
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
160
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
370
Context Engineeringの取り組み
nutslove
0
260
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
1.7k
月間数億レコードのアクセスログ基盤を無停止・低コストでAWS移行せよ!アプリケーションエンジニアのSREチャレンジ💪
miyamu
0
770
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
2
1.9k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
180
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
110
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Docker and Python
trallard
47
3.7k
Everyday Curiosity
cassininazir
0
130
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
First, design no harm
axbom
PRO
2
1.1k
A designer walks into a library…
pauljervisheath
210
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
290
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Paper Plane (Part 1)
katiecoart
PRO
0
4k
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ɹ
͓ΘΓ