Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AR mode in Yahoo! MAP
Search
totomo
March 16, 2018
Technology
0
2.2k
AR mode in Yahoo! MAP
Talk about AR mode in Yahoo! MAP which is implemented by using ARKit.
totomo
March 16, 2018
Tweet
Share
More Decks by totomo
See All by totomo
Yahoo! MAPにおけるARの活用事例 - FOSS4G Tokai 2018 -
totomo1217
1
570
ARKit + CoreLocation - Bonfire iOS #4 -
totomo1217
5
1.6k
ARKit + CoreLocation
totomo1217
1
610
ARKit - Nagoya iOS Meetup -
totomo1217
0
170
Other Decks in Technology
See All in Technology
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
Identity Management for Agentic AI 解説
fujie
0
450
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
490
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
130
Microsoft Agent Frameworkの可観測性
tomokusaba
1
100
AI との良い付き合い方を僕らは誰も知らない
asei
0
230
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.7k
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
350
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
110
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
230
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
120
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
320
Featured
See All Featured
Bash Introduction
62gerente
615
210k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The agentic SEO stack - context over prompts
schlessera
0
560
Are puppies a ranking factor?
jonoalderson
0
2.4k
How to Talk to Developers About Accessibility
jct
1
84
sira's awesome portfolio website redesign presentation
elsirapls
0
89
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
580
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Docker and Python
trallard
47
3.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.7k
Transcript
20183݄16 1 Kenta Tokumoto AR mode in Yahoo! MAP
Outline • ࣗݾհ • ARϞʔυʹ͍ͭͯ • ARKit + CoreLocation •
ΦϒδΣΫτͷஔํ๏ʹ͍ͭͯ 2
3 About me ,FOUB5PLVNPUP 5XJUUFSUPUPNP (JUIVCUPUPNP 2JJUBUPUPNP
ೖࣾ ."1ͷJ04 8FC"1*։ൃ୲ 8&# %#13&447PM:BIPP."1ͷαʔ Ϗεվળʹ͍ͭͯJ04 8FC"1*ͷ෦Λࣥච͠· ͨ͠
AR mode? 4
Team 5 Product Manager Designer Engineer
ARKit • iOS 11Ҏ߱Ͱ͑ΔARػೳΛ࣮͢Δͷʹศ རͳFramework • AR modePosition TrackingΛඞཁͱ͢ΔͨΊ A9νοϓ͕ࡌ͞ΕͨͷΈαϙʔτ
• Android → ARCore 6
ARKit + CoreLocation
ARKit+CoreLocation 8 • ARConfiguration.worldAlignment.gravit yAndHeadingΛࢦఆ͢Δ • ݪͷҐஔใͱARKitʹΑΓߏங͞Ε ͨੈքۭؒͷݪ૬ޓมՄೳ AR ࣮ۭؒ
N N (x n , z n ) (lat n , lon n )
ARKit+CoreLocation 9 (0, 0) d [m] (x 1 , z
1 ) (lat 0 , lon 0 ) d [m] (lat 1 , lon 1 )
SCNNodeͷஔ • ϧʔτϥΠϯ (SCNPlane) • ൘ (3D) • ͚Μ͘͞+ΰʔϧϐϯ(3D) •
(SCNPlane) 10
ϧʔτϥΠϯ 11
ϧʔτϥΠϯ 12 position eulerAngles.y
൘ 13
൘ 14 position
൘ 15 position
൘ 16 position • ϚʔδϯΛઃ͚ͯݟ͍͢ํʹճస • ౦ͲͪΒʹஔ͢Δ͔ɺਐߦํ ͱ࣍ͷํͱͷ͔ࠩΒஅ͍ͯ͠Δ
17
18 position
19 position • ARSCNView͔ΒऔΕΔ pointOfViewͷpositionΛऔಘ • ݱࡏҐஔͷ࠲ඪΛͱʹҠಈڑ ͱ֯Λܭࢉ •
ϥϯμϜͰग़͢Α͏ʹ materialʹઃఆ͍ͯ͠ΔUIImageΛ ಈతʹઃఆ͍ͯ͠Δ
͚Μ͘͞+ΰʔϧϐϯ 20 position SCNBillboardConstrain t
LocationInfoProvider 21 public protocol LocationInfoProvidable { func location(completion: @escaping (CLLocation?)->())
func nearbyRoutePoint(from origin: SCNVector3) -> SCNVector3? weak var delegate: LocationInfoProviderDelegate? { get set } } protocol LocationInfoProviderDelegate: class { func locationInfoProvider(_ provider: LocationInfoProvidable, requestUpdateHeading heading: CLHeading) func ;ocationInfoProvider(_ provider: LocationInfoProvidable, requestUpdateLocation location: CLLocation, oldLocation: CLLocation?) }
LocationInfoProvider 22 locationInfoProvider.location { [weak self] location in guard let
origin = location else { self?.displayError() return } self?.addNodes(origin: origin) }
େྔͷSCNNodeͷՃ 23 func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
// 5ͭͣͭՃ͢Δ } self.navigationView.worldNode.addScheduledNodes(quantity: 5) func addObjects(origin: CLLocation) { self.navigationView.origin = origin let routeLineNodes = routeNodes(withCoordinates: self.coordinates) self.navigationView.scheduleNodes(routeLineNodes, priority: .high) } // ARSCNViewDelegate
ଞʹ… 24 • GPSɺిࢠίϯύεɺΧϝϥͷҐஔΛར ༻ۭͨؒ͠Ґஔิਖ਼ • ARϞʔυͰఆٛ͢Δۭؒͷׂํ๏ • SCNPlaneͷͭͳ͗ͷิਖ਼ ͳͲͳͲ
Fin