Skip to content

Report camera fov and apply paddings - #35

Merged
wf9a5m75 merged 5 commits into
developfrom
feat/camera-paddings
Nov 12, 2026
Merged

wf9a5m75 merged 5 commits into
developfrom
feat/camera-paddings

Conversation

@wf9a5m75

Copy link
Copy Markdown
Contributor

Summary

This provider now

  • reports MapCameraPosition.fov for its engine, and
  • honours MapCameraPosition.paddings on move / animate: the target lands at the centre of the padded area, and the camera read back reports the target with the same paddings.

Depends on the core feat/camera-paddings PR (and, where noted, the provider's tilt fix PR).

2D fov 0; 3D fov 45 (the SDK's horizontal fov converted to vertical); paddings emulated. Stacked on the fix/arcgis-tilt-camera PR.

Commits

  • Read the tilted ArcGIS camera back at the screen center
  • Apply camera paddings and report fov on ArcGIS
  • Merge remote-tracking branch 'origin/develop' into fix/arcgis-tilt-camera
  • Merge remote-tracking branch 'origin/develop' into feat/camera-paddings
  • Merge branch 'fix/arcgis-tilt-camera' into feat/camera-paddings

3D: Camera holds the eye position. Under tilt the eye sits behind the
point being looked at, so returning it as MapCameraPosition.position put
the read-back 3 to 6 km short of the target at tilt 30 to 60. The read
now returns the point at the screen center (screen-center unproject,
falling back to eye + altitude * tan(pitch) along the heading).

2D: the read-back unprojected the inner MapView's size, which is twice
the frame when the tilt emulation is on, so the center landed far away
and the corners failed. It now uses the outer view's size. A tilt-only
change also never reached the state because the Viewpoint did not
change; it is emitted after the move now. The Viewpoint center was drawn
half an attribution bar above the view center (25.5px on TB520FU), which
read back 45m off; the center is now shifted so the position lands at
the view center.
3D: SceneView has no insets, so paddings are emulated by moving the
look-at point and undone on read. fov is read from SceneView: its
fieldOfView is horizontal (29.3 portrait, 68.0 landscape on TB520FU),
converted to vertical (45 in both, matching the measured 45.2-45.4).

2D: setViewInsets is not used because under the tilt emulation the
inner MapView is twice the frame and rotated, so insets do not match
on-screen padding. Paddings are emulated on the outer view with fov 0
(the tilt is drawn without perspective).
@wf9a5m75
wf9a5m75 merged commit 18117fe into develop Nov 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant