google-maps - Flutter:如何使用新的 Marker API 向 Google Maps 添加标记?

标签 google-maps flutter

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

我在 blog post 中看到了这个代码片段,并且我正在尝试向 Google map 添加标记。

The method 'addMarker' isn't defined for the class 'GoogleMapController'.

我认为图书馆已经改变,我想知道这样做的新方法是什么,我在 controller.dart 中查找了和 api reference但想不通。

我很高兴看到一些关于它的教程和博客文章,不要犹豫分享。

最佳答案

是的,谷歌地图 API 发生了变化,标记 API 是基于小部件的,不再基于 Controller 。

作者 CHANGELOG.md

“重大变化。将标记 API 更改为基于小部件,它是基于 Controller 的。还更改了示例应用程序以解决相同问题。”

我从 github app example 复制了一些代码我认为对你很重要

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 .有更新到新的 API。

关于google-maps - Flutter:如何使用新的 Marker API 向 Google Maps 添加标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55000043/

相关文章:

android - 将我的位置标记显示在所有其他标记之上

javascript - Google Maps API 中的 GDirections.loadFromWaypoints 后触发事件

flutter - 如何在访问新数据之前清除 FutureBuilder 中的 snapshot.data

flutter - 如何在 onesignal 通知上打开特定页面单击 flutter?

ios - 如何将本地框架添加到 iOS 的 Flutter 插件中

scroll - 如何确保步进器标题不会在点击时消失?

android - 如何在 com.google.android.libraries.places :places: 中设置语言限制

api - 在google maps api中为邮政编码区域着色?

javascript - 单击后退按钮重新加载上一页

xamarin - 移动跨平台相机帧提取