Slide 28
Slide 28 text
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
ۭؒิਖ਼
28
extension ARRouteNavigationViewController: ARLocationInfoProviderDelegate {
public func arLocationInfoProvider(_ provider: ARLocationInfoProvidable,
requestUpdateLocation location: CLLocation, oldLocation: CLLocation?) {
guard let origin = navigationView.origin,
let currentPosition = navigationView.pointOfView?.worldPosition else {
return
}
ɹɹɹɹɹ// GPS͔Βܭࢉͨ͠ARۭؒʹ͓͚Δ࠲ඪ
ɹɹɹɹɹlet gpsPosition = location.coordinate.relativeVector3(to: origin.coordinate) +
ɹɹɹɹɹ navigationView.worldNode.correctableNode.worldPosition
ɹɹɹɹɹ// GPSͷޡࠩΛ͑ͯͣΕ͍ͯͳ͍߹Կ͠ͳ͍
ɹɹɹɹɹguard idealPosition.length(between: currentPosition) > location.horizontalAccuracy else {
ɹɹ return
ɹɹɹɹɹ}
ɹɹɹɹɹ// ޡࠩΛܭࢉ
ɹɹɹɹɹlet positionDifference = gpsPosition – currentPosition
ɹɹɹɹɹ// ิਖ਼
ɹɹɹɹɹnavigationView.worldNode.correctableNode.worldPosition -= SCNVector3(positionDifference.x, 0, positionDifference.z)
}
}