Flutter中如何修改Google Maps定位图标并移除定位精度蓝色阴影
Flutter Google Maps 定位图标自定义及精度阴影移除方案
你观察到的蓝色外圈为定位精度范围标识,代表当前定位结果的可信区域,定位精度越低该区域半径越大。针对你的两个需求可参考以下方案实现:
移除蓝色精度阴影
- 通用跨平台方案:直接关闭官方默认定位图层,自行绘制定位标记即可完全消除精度阴影,无需额外编写原生端代码:
将GoogleMap组件的myLocationEnabled参数设置为false,关闭自带的定位UI展示
配合geolocator等定位库实时监听设备位置,在地图的markers属性中添加自定义Marker代替默认定位图标,默认生成的精度圈会同步消失 - 若不想自定义定位图标,可修改原生端配置单独隐藏精度圈:
Android端:在GoogleMap实例中自定义MyLocationStyle,将精度圈的描边宽度设为0、填充色设为透明即可
iOS端:对GMSMapView实例的myLocationAccuracyCircle属性设置hidden = YES即可
自定义定位图标
- 采用上述关闭默认定位图层自行绘制Marker的方案即可实现完全自定义,步骤如下:
- 提前准备自定义定位图标资源,在
pubspec.yaml中完成资源路径声明 - 初始化阶段将资源图片转换为BitmapDescriptor对象:
final customLocIcon = await BitmapDescriptor.fromAssetImage( const ImageConfiguration(size: Size(48, 48)), 'assets/imgs/custom_location.png' );- 每次获取到最新定位坐标后,创建Marker实例并将上述
customLocIcon赋值给icon属性,添加到地图的Markers列表中即可展示自定义定位图标
- 提前准备自定义定位图标资源,在
内容的提问来源于stack exchange,提问作者NinFudj
相关产品推荐
相关产品推荐

