flutter - 颤振:谷歌地图颤振:如何动态改变圆半径?
问题描述
我想根据用户输入的值动态更改圆半径。我怎样才能做到这一点?googleMapController 不提供一种简单的方法来动态更改圆圈和标记配置吗?
这是我的代码:
...
List _items = [];
GoogleMapController _mapController;
Set<Circle> _circles = HashSet<Circle>();
Set<Marker> _markers = HashSet<Marker>();
@override
void initState() {
super.initState();
this._loadItems().then((value) {
this._createCircles(60000);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
alignment: Alignment.topCenter,
children: <Widget>[
GoogleMap(
circles: _circles,
initialCameraPosition: CameraPosition(
target: LatLng(47,45),
zoom: 6,
),
markers: _markers,
myLocationButtonEnabled: false,
onMapCreated: _onMapCreated,
zoomControlsEnabled: false,
),
],
),
);
}
void _createCircles(double radius) {
_items.forEach((item) {
setState(() {
_circles.add(
Circle(
circleId: CircleId(item.id),
center: LatLng(item.lat, item.long),
radius: radius,
strokeWidth: 1,
),
);
});
});
}
Future<void> _loadItems() async {
var jsonString = await rootBundle.loadString('assets/data.json');
setState(() {
_items = itemsFromJson(jsonString);
});
}
void _onMapCreated(GoogleMapController controller) {
_mapController = controller;
}
...
我正在使用google_maps_flutter。每次用户更改值时生成所有圆圈不会使半径更改平滑。我怎样才能做到这一点?
解决方案
推荐阅读
- android - retrofit2 与协程与否,有什么区别?
- selenium - 如何在守夜人中设置诱惑报告?
- python - 根据用户调用的行从 .txt 文件中的行打印结果
- sql - 无法获取 TO DATE Oracle 上的记录
- c# - 如果在与应用程序相同的驱动器上,FileSystemWatcher 不适用于设置为驱动器根目录的路径
- python - 更改 AWS Lambda python 时区
- java - JTable Row Filter 基于表模型行整数列表
- php - 由于样式表被 Google Bot 阻止,加载页面是否有错误?
- android-studio - 当队友克隆它时,你如何将代码从 Android Studio 共享到 GitHub 而不丢失它的 gradle 和功能?
- sql-server - 使用 Select 的子查询