Hello!
I am using the ArcGIS SDK for Swift to display a 3D scene like this:
struct MySceneView: View {
@StateObject private var vm = MySceneViewModel()
var body: some View {
SceneView(scene: vm.scene)
}
}
@MainActor
final class MySceneViewModel: ObservableObject {
@Published var scene = Scene(basemapStyle: .arcGISTopographic)
init() {
let camera = Camera(
latitude: 37.752,
longitude: -122.431,
altitude: 800,
heading: 0,
pitch: 0,
roll: 0
)
scene.initialViewpoint = .init(
boundingGeometry: camera.location,
rotation: 0,
camera: camera
)
}
}
While the scene itself renders correctly, the font sizes of the labels on the base map are too small, making them difficult to read. This issue also occurs when I add a vector layer to the scene; both the labels and icons appear undersized.
I suspect that the problem is happening because the SceneView is rendering the base map at a 1x scale. On Retina displays, where the pixel density is 2x or 3x, this results in smaller visual elements. Is there a way to adjust the scale or resolution of the SceneView so that the elements become more readable on high-density displays?
Thank you!
Thanks for reporting this issue.
The root cause is that the labels base layer in our scene is rasterized, not kept as vector as in a map (like in other competitor 3D maps). I've passed this feedback to our team and will let you know what we're gonna do to fix this.
Thanks! I'll be curious to know what you guys come up with.
We have logged an issue for this. It indeed looks like a problem with our DPI conversion. Will keep you posted when we make the fix.