如何在RealityKit中显示3D地图?

问题描述 投票:0回答:1

是否有现有的库或第三方工具可以在给定任意坐标的情况下在 RealityKit 中渲染类似的内容?

我尝试在 RealityView 中添加具有

.realistic
高程的 MapKit,但它呈现为平坦的表面。

Map(
    initialPosition: .camera(
      MapCamera(centerCoordinate: someCoordinate, distance: 2000, heading: 0, pitch: 45))
)
.mapStyle(.standard(elevation: .realistic))

swiftui mapkit realitykit visionos
1个回答
0
投票

在visionOS 1.1中,Apple MapKit的地图无法渲染为真实的3D对象(即使打开了真实高程)。地图只能在平面 2D 图层上显示伪 3D 高程,与 SceneKit 的 3D 场景在 VisionOS 中渲染为 2D 视图的方式相同。

import SwiftUI
import RealityKit
import MapKit

@main struct YourApp : App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .windowStyle(.volumetric)
        .defaultSize(width: 0.5, height: 0.5, depth: 0.5, in: .meters)
    }
}

struct ContentView : View {
    let map = Map(initialPosition:
            .camera(MapCamera(centerCoordinate: .init(latitude: 38.897957, 
                                                     longitude: -77.036560), 
                                      distance: 2000, heading: 0, pitch: 45))
    )
    var body: some View {
        map
            .mapStyle(.standard(elevation: .realistic))
            .mask(Circle())
            .rotation3DEffect(.degrees(90), axis: .x)
            .frame(depth: 900, alignment: .center)
        
        RealityView { content in
            let cylinder = ModelEntity(mesh: .generateCylinder(height: 0.05, 
                                                               radius: 0.14))
            cylinder.position += [0.0, 0.22, 0.08]
            content.add(cylinder)
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.