Flutter + Google Maps:如何去除系统标记?
Flutter + Google Maps: how to remove system markers?
我正在开发一个 flutter 应用程序,尝试使用官方插件添加 Google 地图,但是,有大量系统标记我不知道如何删除。
标记来自 Google 自己的数据库,但我们真的不需要那些额外的信息,它们给我们的用户带来了问题,因为用户认为标记来自我们自己的应用程序!大用户体验问题。
我在 class GoogleMap
中找不到开关或类似的东西。
有什么想法吗?谢谢!
这可以通过将自定义 google 地图样式应用到您的 google 地图来实现。
创建自定义 google 地图样式。使用 this 工具生成 map_style.json
并将其保存在您的资产文件夹中。 (确保它也在 pubspec.yaml 中被引用)。
//this is the function to load custom map style json
void changeMapMode(GoogleMapController mapController) {
getJsonFile("assets/map_style.json")
.then((value) => setMapStyle(value, mapController));
}
//helper function
void setMapStyle(String mapStyle, GoogleMapController mapController) {
mapController.setMapStyle(mapStyle);
}
//helper function
Future<String> getJsonFile(String path) async {
ByteData byte = await rootBundle.load(path);
var list = byte.buffer.asUint8List(byte.offsetInBytes,byte.lengthInBytes);
return utf8.decode(list);
}
在您的 google 地图小部件中像这样实现它:
GoogleMap(
...
onMapCreated: (GoogleMapController c) {
yourMapController = c;
changeMapMode(yourMapController);
},
),
我正在开发一个 flutter 应用程序,尝试使用官方插件添加 Google 地图,但是,有大量系统标记我不知道如何删除。
标记来自 Google 自己的数据库,但我们真的不需要那些额外的信息,它们给我们的用户带来了问题,因为用户认为标记来自我们自己的应用程序!大用户体验问题。
我在 class GoogleMap
中找不到开关或类似的东西。
有什么想法吗?谢谢!
这可以通过将自定义 google 地图样式应用到您的 google 地图来实现。
创建自定义 google 地图样式。使用 this 工具生成 map_style.json
并将其保存在您的资产文件夹中。 (确保它也在 pubspec.yaml 中被引用)。
//this is the function to load custom map style json
void changeMapMode(GoogleMapController mapController) {
getJsonFile("assets/map_style.json")
.then((value) => setMapStyle(value, mapController));
}
//helper function
void setMapStyle(String mapStyle, GoogleMapController mapController) {
mapController.setMapStyle(mapStyle);
}
//helper function
Future<String> getJsonFile(String path) async {
ByteData byte = await rootBundle.load(path);
var list = byte.buffer.asUint8List(byte.offsetInBytes,byte.lengthInBytes);
return utf8.decode(list);
}
在您的 google 地图小部件中像这样实现它:
GoogleMap(
...
onMapCreated: (GoogleMapController c) {
yourMapController = c;
changeMapMode(yourMapController);
},
),