mapbox / mapbox/mapbox-maps-flutter
CameraViewportState initial position is jumping
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Dart
- Sterne
- 380
- Forks
- 204
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
When initially loading a map that uses `CameraViewportState`, the map is briefly centering to a different center than configured.
This behavior is different to when using `CameraOptions`, where the `onCameraChangeListener` is also fired twice, but both with the same center.
```
MapWidget(
key: ValueKey("mapWidget"),
viewport: CameraViewportState(
center: Point(coordinates: Position(-117.918976, 33.812092)),
bearing: currentCity.bearing,
pitch: 0,
zoom: 18),
onCameraChangeListener: (cameraChangedEventData) =>
print(cameraChangedEventData.cameraState.center.toJson()),
),
```
Output for `onCameraChangeListener`:
```
{type: Point, bbox: null, coordinates: [-9.999999999999972, 29.999999999999964]}
{type: Point, bbox: null, coordinates: [-117.918976, 33.812092000000014]}
```
When configuring both, `viewport ` and `cameraOptions`, it first centers to the position from `cameraOptions` and then to the position of `viewport`. Maybe there is some unwanted default/calculation when using `viewport` alone?
```
MapWidget(
key: ValueKey("mapWidget"),
viewport: CameraViewportState(
center: Point(coordinates: Position(-117.918976, 33.812092)),
bearing: currentCity.bearing,
pitch: 0,
zoom: 18),
cameraOptions: CameraOptions(
center: Point(coordinates: Position(-100.918976, 33.812092)),
zoom: 18,
),
onCameraChangeListener: (cameraChangedEventData) =>
print(cameraChangedEventData.cameraState.center.toJson()),
),
```
Output for `onCameraChangeListener`:
```
{type: Point, bbox: null, coordinates: [-100.918976, 33.812092000000035]}
{type: Point, bbox: null, coordinates: [-117.918976, 33.812092000000014]}
```
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das anfängliche Laden mit MapWidget unter Verwendung von CameraViewportState und onCameraChangeListener zu reproduzieren, und vergleiche es dann mit CameraOptions und der im Bericht gezeigten kombinierten Konfiguration. Als erledigt gilt die Aufgabe, wenn die anfängliche Kamera nicht kurzzeitig zu einem unbeabsichtigten Zentrum springt und die gemeldeten Kameraänderungsereignisse konsistente Zentren haben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- dart, flutter
- Bereich
- mobile-dev
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100