flutter - Flutter Mapbox 如何显示我的汽车的当前位置
问题描述
我有一个颤振项目,旨在在 Mapbox 中显示我的汽车的当前位置。我使用“mapbox_gl (0.1.0)”包并在 MapboxMap 小部件中使用 MapboxMapController 的 addSymbol 函数显示我的汽车的位置。我的 MapboxMap 小部件位于 StreamBuilder 中,我从 Firebase 实时数据库中读取了我的汽车的位置。问题是当我从数据库更改我的汽车的位置时,当前位置没有显示出来。此外,当我单击热重载按钮时,位置也不会改变。
这是我的代码:
StreamBuilder(
stream: FirebaseDatabase.instance
.reference()
.child("Vehicle")
.onValue,
builder: (context, snapShot) {
if (snapShot.hasData) {
print(snapShot.data.snapshot.value.toString());
Map data = snapShot.data.snapshot.value;
List item = [];
data.forEach(
(index, data) => item.add({"key":index, ...data}));
return MapboxMap(
accessToken: token,
initialCameraPosition: CameraPosition(
zoom: 15,
target: LatLng(38.470353, 27.076155),
),
onMapCreated:
(MapboxMapController controller) async {
final result = await acquireCurrentLocation();
//this line moves camera to my current location
await controller.moveCamera(
CameraUpdate.newLatLng(result),
);
await controller.addCircle(
CircleOptions(
circleRadius: 8.0,
circleColor: '#006992',
circleOpacity: 0.8,
geometry: result,
draggable: false,
),
);
await controller.addSymbol(SymbolOptions(
geometry: LatLng(item[0]['location']['latitude'], item[0]['location']['longitude']),
iconSize: 0.5,
iconImage: getIconImage(double.parse(item[0]['battery_percent'])),
draggable: false,
));
await controller.addSymbol(
SymbolOptions(
geometry: LatLng(item[1]['location']['latitude'], item[1]['location']['longitude']),
draggable: false,
iconSize: 0.5,
iconImage: getIconImage(double.parse(item[1]['battery_percent'])),
),
);
});
}
if (snapShot.hasError) {
return Text("Error");
} else {
return Center(child: CircularProgressIndicator());
}
});
为什么热重载和数据库更改不会影响地图。除非我重新运行应用程序,否则显示我的汽车位置的符号会留在同一个地方吗?我应该怎么办?
解决方案
推荐阅读
- go - golang嵌套切片中删除元素的奇怪行为
- sql - 如何根据教师ID检索学生数据
- java - 无法到达的 catch 块:InvalidFormatException 的无法到达的 catch 块
- java - 为什么 CollectionUtils.subtract 会产生 Casting 警告?
- python - 使用python工具的pip安装问题
- reactjs - 在 ChoiceGroup 中动态获取选项时如何更改选项样式?
- angular - 角度 7 路由到相同的组件但不同的参数不起作用
- python - Python 相当于 Ruby 的 .find
- postgresql - SQL DB中动态排序查询性能优化设计模式
- php - PHP测验数组随机显示