Flutter:如何使用新的 Marker API 将标记添加到 Google 地图?

2023-12-19

    mapController.addMarker(
  MarkerOptions(
    position: LatLng(37.4219999, -122.0862462),
  ),
);

我在 a 中看到过这个代码片段博客文章 https://medium.com/flutter-community/exploring-google-maps-in-flutter-8a86d3783d24,我正在尝试向 Google 地图添加标记。

未为类“GoogleMapController”定义方法“addMarker”。

我认为图书馆已经改变了,我想知道这样做的新方法是什么,我查了一下控制器.dart https://github.com/flutter/plugins/blob/master/packages/google_maps_flutter/lib/src/controller.dart and API参考 https://pub.dartlang.org/documentation/google_maps_flutter/latest/但无法弄清楚。

我很高兴看到一些有关它的教程和博客文章,请随时分享。


是的,谷歌地图 API 已更改,标记 API 是基于小部件的,不再基于控制器。

By 变更日志.md https://pub.dartlang.org/packages/google_maps_flutter#030

“重大更改。将 Marker API 更改为基于小部件,它是基于控制器。还更改了示例应用程序以说明相同的情况。”

我复制了一些代码github应用程序示例 https://github.com/flutter/plugins/blob/master/packages/google_maps_flutter/google_maps_flutter/example/lib/place_marker.dart我认为对你很重要

Map<MarkerId, Marker> markers = <MarkerId, Marker>{}; // CLASS MEMBER, MAP OF MARKS

void _add() {
    var markerIdVal = MyWayToGenerateId();
    final MarkerId markerId = MarkerId(markerIdVal);

    // creating a new MARKER
    final Marker marker = Marker(
      markerId: markerId,
      position: LatLng(
        center.latitude + sin(_markerIdCounter * pi / 6.0) / 20.0,
        center.longitude + cos(_markerIdCounter * pi / 6.0) / 20.0,
      ),
      infoWindow: InfoWindow(title: markerIdVal, snippet: '*'),
      onTap: () {
        _onMarkerTapped(markerId);
      },
    );

    setState(() {
      // adding a new marker to map
      markers[markerId] = marker;
    });
}

GoogleMap(
              onMapCreated: _onMapCreated,
              initialCameraPosition: const CameraPosition(
                target: LatLng(-33.852, 151.211),
                zoom: 11.0,
              ),
              // TODO(iskakaushik): Remove this when collection literals makes it to stable.
              // https://github.com/flutter/flutter/issues/28312
              // ignore: prefer_collection_literals
              markers: Set<Marker>.of(markers.values), // YOUR MARKS IN MAP
)

我建议你看看示例应用程序here https://github.com/flutter/plugins/blob/master/packages/google_maps_flutter/google_maps_flutter/example/lib/place_marker.dart。已更新为新的 API。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter:如何使用新的 Marker API 将标记添加到 Google 地图? 的相关文章

  • 如何在 Flutter 中恢复上次路由

    我正在开发 Flutter 应用程序 但遇到了问题 在我的 main dart 中 我设置了一个名为 FirstScreen 的主路由 然后用户可以转到 LoginScreen 登录帐户 因此 如果我按主页按钮 然后尝试重新打开应用程序 出
  • 在 Flutter 中渲染小部件之前,如何等待异步函数完成执行

    On my main dart文件中 我想检查用户是否已登录 以便将他定向到适当的屏幕 我正在使用 SharedPrefence 来存储 Firebase 中的用户详细信息 如何告诉我的函数等到 SharedPreference 异步函数完
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • Cloud Functions,删除Firestore SubCollections,是否需要AdminToken?

    我正在尝试构建可调用的云函数 当用户删除帖子时 它也会尝试删除评论 这是帖子的子集合 所以我看到了这个例子并像文档示例一样实现 const admin require firebase admin const firebase tools
  • Infowindow 仅适用于 1 条路线,不适用于 google 地图中的其他 3 条路线

    我在谷歌地图上总共有 5 个位置 我已经为此设置了标记 并在标记之间添加了路线路径 在这条路径之间我添加了信息窗口 但它仅适用于 1 条路线 不适用于其他 3 条路线 任何人都可以帮忙吗我为什么它不适用于其他 3 条路线 而且在关闭该信息窗
  • 查找文本的确切边界

    我需要知道一段文本的确切边界 相当于获取文本边界 https developer android com reference android graphics Paint html对于安卓 我意识到这在某种程度上与 Flutter 的设计背
  • Flutter:如何在flutter中指定设备id?

    如何在flutter run中选择设备id 请使用 d 标志指定设备 或使用 d all 对所有设备进行操作 iPhone 6 54XXXXXX35130ebefd38f ios iOS 10 3 3 iPhone 7 Plus BA8CX
  • Google 地图 v3 自定义标记图标无法保持其在地图上的位置

    使用 Google 地图 v3 进行开发 由于某种原因 我的自定义标记图标 更改 了它在放大时的位置 看起来它有某种 填充 属性 不会随着缩放而改变 这意味着它在最大缩放 18 上的位置是正确的 但是如果我更改缩放值 它会 移动 一点到顶部
  • 从 Flutter 中删除底部导航栏上的默认内边距或边距

    这是问题的图片 它是底部导航栏上的默认填充吗 如果是 我该如何删除它 正如您在下面的代码中看到的 我在 BottomNavigationBarItem 内部有一个容器和一个图标 但图标和栏之间有一个空格 return Scaffold bo
  • 从 Google 位置历史记录下载 KML 数据的当前 URL?

    我需要在一段时间内以kml格式下载google位置历史数据 截至 2015 年 8 月 26 日 以下格式的 URL 均有效 https maps google com locationhistory b 0 kml startTime s
  • 将 TextField 下划线颜色更改为渐变

    我可以更改轮廓颜色TextField s使用以下代码将颜色更改为纯色 TextField decoration InputDecoration focusedBorder UnderlineInputBorder borderSide Bo
  • 如何在MaterialApp主题中设置fontSize的MediaQuery textScaleFactor

    我想在 MaterialApp 主题内设置 MediaQuery 以便在用户更改设置时 FontSize 尊重用户设置 我尝试创建最终的curlScale MediaQuery of context textScaleFactor 并相应地
  • Flutter:什么时候应该使用工厂构造函数?

    https flutter dev docs cookbook networking fetch data https flutter dev docs cookbook networking fetch data 在上一页的最后一个 完整
  • Google 地图服务地点的 Python 客户端无法传递 Page_Token

    我正在尝试使用 Google 地图服务的 Python 客户端来使用 Places API 提取地点列表 这是 GitHub 页面 https github com googlemaps google maps services pytho
  • Flutter包读取自己的资产

    我有一个带有 assets 文件夹的模块 该文件夹与我的 pubspec yaml 文件位于同一目录中 在我的资产文件夹中 有 test txt 和 simpleObject json flutter assets assets test
  • get.put 和 get.lazyput 之间的区别

    我是新来的Getx的依赖注入 有人可以向我解释一下它的好处吗 Get put and Get lazyPut 并告诉我它们有什么区别 简短回答 Get put 会放立即地 Get lazyPut 会放在什么时候你需要它
  • Google 地图地理编码 API 为有效地址生成 ZERO_RESULTS

    我们使用 google API 进行地理编码 我们成功对大约 10K 个地址进行了地理编码 由于某种原因 API 对以下地址返回 地理编码错误 状态 ZERO RESULTS 我们尝试了几次 但仅对于这些地址 我们仍然收到相同的 ZERO
  • 如何阻止地址自动填充谷歌地点

    所以我在我的表单上有一个谷歌地图自动完成功能 当它到达一个位置时 它会占据该位置并格式化它 以便所有正确的信息都进入表单上的不同输入 我遇到的问题是在 place changed 事件触发自动完成填充输入之前 我想阻止最初的人口 而是填充我
  • 类型“Null”不是类型“Widget”的子类型

    我正在编写一个关于 flutter 的代码 以便在 android ios 和 web 上使用 Google 登录 但我第一时间就遇到了这个错误 我在 Android 模拟器上运行它来检查它是否正常工作 我现在还没有将其设置为网络 在模拟器

随机推荐

  • 如何在 TestCafe 中等待元素消失?

    当我需要等待元素变得可见时 我可以简单地将选择器作为函数调用 如下所示 await element with visibilityCheck true 但我怎样才能等待一个元素消失呢 要等待元素消失 您可以使用我们内置的断言等待机制 请参见
  • 找到将小数转换为整数的公共乘数的算法

    我有一个可能最多有 8 位小数的数字数组 我需要找到可以将它们相乘的最小公共数 以便它们都是整数 我需要这个 以便所有原始数字都可以乘以相同的比例 并由仅处理整数的密封系统进行处理 然后我可以检索结果并将它们除以公共乘数以获得相对结果 目前
  • geom_text 在所有方面写入所有数据

    我将 ggplot 与facet grid 一起使用 我想在每个方面指示每个方面的观察数量 我遵循许多网站上提供的示例 但是当我让它写任何东西时 它会在所有四个图上将所有四个观察数字写在彼此之上 这里是 geom text 图层命令 geo
  • macOS SwiftUI 表超过 10 列?

    我尝试添加 Group 技巧以在 Table 视图中获取超过 10 个元素 但是无法编译 就像有超过 10 个元素没有组一样 var body some View Table viewModel tableArrayOfStructs so
  • Mysql 连接器花费 50% 的时间在 com.mysql.jdbc.util.ReadAheadInputStream.fill()

    我正在分析使用 Spring Hibernate 和 mysql java connector 的应用程序 VisualVM显示超过50 的CPU时间花费在com myql jdbc utils ReadAheadInputStream f
  • Android sqlite 多线程

    我正在编写一个 Android 应用程序 使用sqlite 有多种活动和一项服务 我从多个线程使用数据库 它完美地工作在Android 2 X 但是一旦我运行它Android 3 X它总是抛出这个错误并且Force Close 05 04
  • 将自定义方法集成到 LINQ to Entities 查询中

    我有一个自定义方法 可以对一组数据执行一些计算 private int GetPercentages int OriginalValue int TotalValue var newValue int Math Round decimal
  • 刷新Core Data数据库的正确方法

    我的应用程序经过设置 以便在首次使用时 它会从基于 Web 的 xml 源下载所需的数据 用户还可以选择通过设置定期刷新数据 当他们这样做时 我想删除现有数据库 然后通过我用于第一次加载的代码重新创建它 我读到 简单地删除数据库并不是执行此
  • Android 中的 MD5 哈希

    我有一个简单的 Android 客户端 需要与一个简单的 C HTTP 侦听器 对话 我想通过在 POST 请求中传递用户名 密码来提供基本级别的身份验证 MD5 哈希在 C 中是微不足道的 并且为我的需求提供了足够的安全性 但我似乎无法找
  • 从ggplot2中提取颜色信息?

    使用保存在名为的文件中的虚拟代码foo txt COG station1 station2 station3 station4 station5 COG000Z 0 019393497 0 183122497 0 089911227 0 2
  • 如何在 ASP.NET Core 中使用区域

    我如何使用Area在 ASP NET Core 中 我有一个需要管理部分的应用程序 该部分要求将其视图放置在该区域中 所有以以下开头的请求Admin 需要重定向到该区域 为了在 ASP NET Core 应用程序中包含区域 首先我们需要在S
  • Angular2升级到RC6,找不到traceur

    升级到后RC6 出现以下错误 zone js 101 GET http localhost traceur 404 Not Found zone js 484 Unhandled Promise rejection Error XHR er
  • 为什么我的正则表达式中存在多个捕获组会使我的应用程序崩溃?

    无论正则表达式是什么 gt 1 个捕获组都会导致此代码崩溃并出现以下错误 由于未捕获的异常 NSRangeException 而终止应用程序 原因 NSCFString substringWithRange 范围 9223372036854
  • 如何仅从 JdbcTemplate queryForList 返回 String 对象?

    默认情况下 queryForList 返回每个 for 作为Map
  • 索引越界错误

    我正在开发一个程序 将保存的小部件重新创建回边界面板 当我创建它们时 我还尝试将值放入 ArrayList 中 这样如果我想更新并保存打开的项目 我应该能够通过从 ArrayList 获取值来完成此操作 代码如下所示 for int i 0
  • MySQL 在一对多关系匹配多个条件的查询中遇到困难

    我有两张表 大致如下 products product attributes id name id product id attribute value 1 product 1 1 1 size big 2 product 2 2 1 co
  • iOS 定时器在后台运行

    我的应用程序需要定期调用一个方法 即使应用程序已置于后台 也应执行此调用 应用程序可以处于后台的时间是未定义的 应用程序可以从后台恢复到任何时间 我有一个类来管理计时器 protocol TimerDelegate
  • 更正所有出现的拼写错误单词

    有没有快速重复拼写更正的方法 例如 更改每次出现的teh to the使用后 set spell z 纠正第一次出现的情况 After making the first correction with z e g teh to the us
  • 通过向量 [i] 进行线性搜索会产生 0 毫秒响应,而向量.at(i) 会产生时间

    我必须补充一点 我调用线性搜索 15 000 次 每次迭代我查找的最低范围最多为 50 000 次 因此 这意味着第一次迭代有 15 000 50 000 次查找 这应该需要比 0ms 更长的时间 我有这个基本的线性搜索 bool line
  • Flutter:如何使用新的 Marker API 将标记添加到 Google 地图?

    mapController addMarker MarkerOptions position LatLng 37 4219999 122 0862462 我在 a 中看到过这个代码片段博客文章 https medium com flutte