mapbox / mapbox/mapbox-maps-flutter
`cameraForCoordinatesPadding` does not zoom map to exactly wrap coordinates provided
Nessuno ha ancora preso questa issue.
- Lingua principale
- Dart
- Stelle
- 380
- Fork
- 204
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Reproduction Code
import 'package:flutter/material.dart';
import 'package:mapbox_maps_flutter/mapbox_maps_flutter.dart';
class Test extends StatefulWidget {
const Test({Key? key}) : super(key: key);
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
_onMapCreated(MapboxMap mapboxMap) async {
final latlngList = [
[31.23208, 121.38376],
[31.23207, 121.38375],
[31.23205, 121.38375],
[31.23204, 121.38374],
[31.23203, 121.38373],
[31.23202, 121.38372],
[31.232, 121.38372],
[31.23199, 121.38371],
[31.23198, 121.3837],
[31.23197, 121.3837]
];
final coordinates = latlngList
.map((e) =>
Point(coordinates: Position(e[1].toDouble(), e[0].toDouble())))
.toList();
final options = await mapboxMap.cameraForCoordinatesPadding(
coordinates,
CameraOptions(),
MbxEdgeInsets(top: 0, right: 0, bottom: 0, left: 0),
1000,
null,
);
await mapboxMap.setCamera(options);
final polylineAnnotationManager =
await mapboxMap.annotations.createPolylineAnnotationManager();
final positions = latlngList
.map((e) => Position(e[1].toDouble(), e[0].toDouble()))
.toList();
polylineAnnotationManager.create(PolylineAnnotationOptions(
geometry: LineString(coordinates: positions)));
}
@override
Widget build(BuildContext context) {
return Container(
child: MapWidget(
key: const ValueKey("mapbox"),
onMapCreated: _onMapCreated,
styleUri: MapboxStyles.LIGHT,
),
);
}
}
Environment
mapbox_maps_flutter: ^2.1.0
flutter doctor output:
Flutter (Channel stable, 3.22.2, on macOS 14.0 23A344 darwin-arm64, locale zh-Hans-CN)
What is actually happening?
What is expected?
I thought the map would zoom to the rectangle like below:
Is this expected? Or is there any way to achieve what I want?
Thank you
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con la riproduzione Dart fornita, concentrandoti sulla chiamata a mapboxMap.cameraForCoordinatesPadding e sulla successiva chiamata a setCamera. Verifica se ci si aspetta che la camera restituita adatti queste coordinate molto ravvicinate con un padding pari a zero; il lavoro è completato quando è disponibile una risposta documentata oppure una correzione o soluzione alternativa riproducibile.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- dart, flutter
- Ambito
- mobile-dev
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100