Самый надежный способ получить карту мира облаков точек - это сканировать всю область несколько раз, используя устройство Apple с ARKit
, и сохранять ее как отображающие мир данные в локальном хранилище.
Для Постоянный опыт AR вы можете сохранить отсканированную карту мира:
func writeWorldMap(_ worldMap: ARWorldMap, to url: URL) throws {
let data = try NSKeyedArchiver.archivedData(withRootObject: worldMap,
requiringSecureCoding: true)
try data.write(to: url)
}
и затем извлечь ее, когда вам нужно:
func loadWorldMap(from url: URL) throws -> ARWorldMap {
let mapData = try Data(contentsOf: url)
guard let worldMap = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self,
from: mapData) else {
throw ARError(.invalidWorldMap)
}
return worldMap
}
В дополнение к этому у вас естьиспользовать печатный / окрашенный визуальный контент (он же на основе предварительно обученных моделей ML для каркасов CoreML
и Vision
) для определения точного положения пользователя на карте мира (для этой цели вы можете использовать дорожные знаки,как на картинке ниже).