Das*_*tha 5 google-maps flutter flutter-dependencies
使用Google Maps for Flutter我在地图上的不同位置放置了一些标记。我的 Flutter 应用程序上有一个单独的 RaisingButton,仅当其中一个或多个标记当前在地图上可见时,我才需要显示该按钮。
如何才能实现这一目标?我为 Google Maps API 找到了一个有点类似的解决方案,但我需要在 Flutter 上使用 google_maps_flutter。
小智 6
LatLngBounds有一个特定的方法,称为which 与\'scontains()一起工作。GoogleMapControllergetVisibleRegion()
来自官方文档:
\n\ncontains(LatLng point) \xe2\x86\x92 bool\nReturns whether this rectangle contains the given LatLng.\nRun Code Online (Sandbox Code Playgroud)\n\nCompleter<GoogleMapController> _controller = Completer();\n\nstatic final CameraPosition _positionCenter = CameraPosition(\n target: LatLng(40.730610, -73.935242),\n zoom: 3.5,\n);\n\nFuture<LatLngBounds> _getVisibleRegion() async {\n final GoogleMapController controller = await _controller.future;\n final LatLngBounds bounds = await controller.getVisibleRegion();\n return bounds;\n}\n\n@override\nWidget build(BuildContext context) {\n void checkMarkers() async {\n LatLngBounds bounds = await _getVisibleRegion();\n Set<Marker> markers = Set<Marker>.of(markers.values);\n\n markers.forEach((marker) {\n print(\'Position: ${ marker.position } - Contains: ${ bounds.contains(marker.position) }\');\n });\n }\n\n return GoogleMap(\n mapType: MapType.normal,\n markers: Set<Marker>.of(markers.values),\n initialCameraPosition: _positionCenter,\n onCameraIdle: () {\n checkMarkers();\n },\n onMapCreated: (GoogleMapController controller) async {\n _controller.complete(controller);\n checkMarkers();\n },\n );\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |