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);
        },
      ),