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
120
新規事業のアプリ、Flutterで作ってます〜U-ROUTEのポイ活対応編〜 OCEM#3
mapion
0
130
ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3
mapion
0
140
ONE COMPATH/ワンコンパス Company Deck For Engineer(会社紹介資料)
mapion
0
4.8k
ONE COMPATHの地図の開発技術~入門編~ OCEM #2
mapion
0
190
脱レガシー! Aurora PostgreSQLに移行してみた OCEM #2
mapion
1
680
エンジニアなので「技術」で仕事を効率化してみた ~Slack連携でチームの生産性が向上~ OCEM#2
mapion
0
170
20221112_FOSS4G2022Online.pdf
mapion
0
1.4k
ONE COMPATH/ワンコンパス Company Deck(会社資料)
mapion
0
300
Other Decks in Technology
See All in Technology
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
120
事業継続を支える自動テストの考え方
tsuemura
0
300
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.1k
20250208_OpenAIDeepResearchがやばいという話
doradora09
PRO
0
170
プロセス改善による品質向上事例
tomasagi
1
1.6k
『AWS Distinguished Engineerに学ぶ リトライの技術』 #ARC403/Marc Brooker on Try again: The tools and techniques behind resilient systems
quiver
0
130
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
120
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
開発者が自律的に AWS Security Hub findings に 対応する仕組みと AWS re:Invent 2024 登壇体験談 / Developers autonomously report AWS Security Hub findings Corresponding mechanism and AWS re:Invent 2024 presentation experience
kaminashi
0
190
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
16
6.5k
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
12
4.5k
データの品質が低いと何が困るのか
kzykmyzw
6
1k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Become a Pro
speakerdeck
PRO
26
5.1k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
We Have a Design System, Now What?
morganepeng
51
7.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
310
Producing Creativity
orderedlist
PRO
343
39k
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ɹ
͓ΘΓ