当前位置: 首页 > 知识库问答 >
问题:

google_maps_flutter-自定义标记图标:无法启用我的位置层,因为没有授予位置权限

慕河
2023-03-14

我正在使用google_maps_flutter,想使用自定义标记图标(基于一个类别,我想使用不同的图标)。

Android清单.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>

pubspec.yamlgoogle_maps_flutter:^1.0.6

Maps_view.dart

HashMap bitmaps = new HashMap<String, BitmapDescriptor>();

@override
  void initState() {
    super.initState();
    _createBitMaps();
  }

  void _createBitMaps() {
    List<String> cats = categories; // List of categories
    // Based on the category, I want to choose a different asset. The name of the asset and the name of the category are for this reason the same. 
    for (String cat in cats) {
      BitmapDescriptor.fromAssetImage(
        ImageConfiguration(size: Size(48, 48)), 'lib/assets/categorie_icons_location/' + cat + '.png').then((onValue) {
          setState(() => bitmaps[cat] = onValue);
        }
      );
    }
  }
...
_markers.add(
                       Marker(
                         markerId: MarkerId('_' + docs[i]['title'] + '_' + docs[i]['latitude'] + '_' + docs[i]['longitude']),
                         position: LatLng(double.parse(docs[i]['latitude']), double.parse(docs[i]['longitude'])),
                         // Use custom icon based on 'category' (from a firebase document) 
                         icon: bitmaps[docs[i]['category']],
                         infoWindow: InfoWindow(
                           title: docs[i]['title'],
                           snippet: docs[i]['street'],
                           onTap: () {}
                         )
                       )
                     );

启动应用程序时出现以下错误:无法启用MyLocation层,因为未授予位置权限

只要我用自定义图标注释代码,我的应用程序就会完美运行。

共有2个答案

甄霖
2023-03-14

我的日志中有相同的错误消息。在一些混乱之后,我得到了一个不同的错误:

com.google.maps.api.android.lib6.common.apiexception.b:无法解码图像。提供的图像必须是位图

我在pubspec.yaml中添加了一个资产节:

assets:
    - assets/

现在这两个错误都已修复。请参阅添加资产和图像

“混乱”主要涉及异步函数的排序和调用,以获取我的标记位置和fromAssetImage(),包括await/. then和在initState()和Widget Build()之间更改异步函数。我怀疑执行顺序会影响调用的实际异常。

冯阳云
2023-03-14

您可能使用了错误的Android Manifest.xml。请查看以下答案:

https://stackoverflow.com/a/67121766/11708327

 类似资料:
  • 位置授权 产品简介 通过用户授权获取用户当前地理位置信息。 位置授权截图 开放标准 1、所有入驻小程序的企业都可以使用; 2、用户信息属于用户个人隐私,请开发者妥善使用,如若发现违规情节平台保留收回接口使用权限的权利。 jd.getLocation(OBJECT) 获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用;调用时,唤起地理位置授权框。 OBJECT 参数说明: 参数 类型 必填

  • 我可以使用XPath//form//input[@type='radio']或name=gender属性来定位收音机,但是,我不知道如何定位收音机的标签,因为它们没有任何label标记。 我尝试了getText(),但返回为NULL。感谢您关于如何定位标签的建议和选择。

  • 我正在使用Pygame制作一个简单的游戏。我已经将Pygame显示屏嵌入到Tkinter窗口中。 现在,当我执行这个-时,它会打印位置,但当我移动鼠标时,它不会打印更新后的鼠标位置。它仍然会打印上一个鼠标位置,除非我单击显示器。 在将Pyplay显示嵌入到Tkinter窗口之前,同一程序不会发生这种情况。所以,事件系统似乎工作不正常。 有人建议,您可以检测Tkinter中的事件,然后将它们转发给P

  • 问题内容: 我只是在学习CSS的定位。基于我发现有用的文章,我开始玩转。 使用以下代码,我无法理解为什么绝对灰盒div不在其相对父级之外。我希望灰色框位于容器的左上角。 在以下情况下,也无法理解为什么灰色框不在左上角,而是在橙色框留下的空白处之后移动。我刚刚将灰色框移到了容器div中的第二位。 我发现的所有详细文档(例如MDN)和教程仅演示了2-3个框的非常简单的示例。 问题答案: 为了正确理解这

  • 所以我正在尝试使用、和发送一封电子邮件,并在邮件末尾添加一个取消订阅的可点击链接。这是我的方法 我可以成功发送电子邮件,但由于某种原因,在我的邮件正文中< code>unsubscribe没有显示为超链接,而是纯文本,在chrome浏览器的inspect元素中检查时,它显示如下< code >

  • 我正在开发一个应用程序,它需要AndroidMarshmallow的位置权限。我遵循了实现它所需的所有步骤(函数调用)。当我运行应用程序时,它会弹出一个请求用户权限的框。当我选择是时,它会显示另一个弹出窗口,上面写着“检测到屏幕覆盖”,并将我带到显示应用程序列表的设置屏幕。在那里,我取消选中所有应用程序,然后按后退按钮返回我的应用程序。当调用回调时,我可以看到权限未被授予。它一直在发生。 为什么它