颤振谷歌地图。展现风格。我怎样才能得到这个工作?

Posted

技术标签:

【中文标题】颤振谷歌地图。展现风格。我怎样才能得到这个工作?【英文标题】:Flutter Google Maps. Displaying style. How can I get this working? 【发布时间】:2020-11-07 07:39:35 【问题描述】:

由于 Google maps API 更改为基于 Widget 以及 Flutter 的某种更改,我收到以下错误:

Error: The method 'setMapStyle' isn't defined for the class 'GoogleMapController'.

我正在尝试从 .json 或 .txt 为我的地图加载自定义样式。这是我的代码:

    SizedBox(
      width: MediaQuery.of(context)
          .size
          .width, // or use fixed size like 200
      height: 250,
      child: GoogleMap(
        onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: _center,
          zoom: 11.0,
        ),
      ),
    ),

关于创建和样式:

  void _onMapCreated(GoogleMapController controller) async 
    Completer<GoogleMapController> _controller = Completer();
    mapController = controller;
    _setStyle(controller);
  

  void _setStyle(GoogleMapController controller) async 
    String value = await DefaultAssetBundle.of(context)
        .loadString('assets/map_style.text');
    controller.setMapStyle(value);
  

有人知道如何解决这个问题吗? :/

【问题讨论】:

如果您更新了包,功能可能已更改或已重命名 【参考方案1】:

我用过这个方法,效果不错。

onMapCreated: (GoogleMapController controller) 
              controller.setMapStyle(Utils.mapStyles);

我将 stylr 保存在 dart 文件中

  class Utils 
  static String mapStyles = '''[
  
    "elementType": "geometry",
    "stylers": [
      
        "color": "#f5f5f5"
      
    ]
  ,
  
    "elementType": "labels.icon",
    "stylers": [
      
        "visibility": "off"
      
    ]
  ,
  
    "elementType": "labels.text.fill",
    "stylers": [
      
        "color": "#616161"
      
    ]
  ,
  .......
]''';

【讨论】:

这已编译但与地图没有明显不同。 o_o 会尝试插入我的 .json 我的问题可能是我的孩子的所有东西都在一个尺寸不足的按钮中吗?编辑:我的意思是大小的盒子。 我不这么认为...尝试将设置样式移动到第一个函数,而不是让两个函数更改控制器 你是对的!我不得不删除宽度:MediaQuery.off(context).size.width.... WTF。真令人沮丧。我不敢相信这两天把我搞砸了。非常感谢!

以上是关于颤振谷歌地图。展现风格。我怎样才能得到这个工作?的主要内容,如果未能解决你的问题,请参考以下文章

在发布模式下颤振谷歌地图不起作用

颤振谷歌地图和火力基地不能一起工作

是否可以在颤振应用程序中缓存谷歌地图?

我的颤振资产图像没有被用作谷歌地图的标记图标

尝试使用谷歌地图时查找已停用小部件的祖先是不安全的

居中所有标记和折线谷歌地图插件颤振适合屏幕