首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在flutter中删除google地图中的特定标记?

在Flutter中删除Google地图中的特定标记,可以通过以下步骤实现:

  1. 导入google_maps_flutter包:在Flutter项目的pubspec.yaml文件中添加google_maps_flutter依赖,并运行flutter packages get命令来导入包。
  2. 创建Google地图:在Flutter页面中,使用GoogleMap组件创建一个Google地图,并设置初始位置和缩放级别。
  3. 添加标记:使用Marker组件在地图上添加标记。每个标记都有一个唯一的标识符,可以使用这个标识符来删除特定的标记。
  4. 保存标记引用:在添加标记时,将每个标记的引用保存到一个列表中,以便后续删除使用。
  5. 删除标记:当需要删除特定标记时,使用标记的引用调用Marker.remove()方法来删除标记。

以下是一个示例代码,演示如何在Flutter中删除Google地图中的特定标记:

代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class MapScreen extends StatefulWidget {
  @override
  _MapScreenState createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  GoogleMapController mapController;
  List<Marker> markers = [];

  void _onMapCreated(GoogleMapController controller) {
    mapController = controller;
  }

  void _addMarker(LatLng position) {
    final marker = Marker(
      markerId: MarkerId(position.toString()),
      position: position,
    );
    markers.add(marker);
    mapController.addMarker(marker);
  }

  void _removeMarker(Marker marker) {
    markers.remove(marker);
    mapController.removeMarker(marker.markerId);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Google Map'),
      ),
      body: GoogleMap(
        onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: LatLng(37.42796133580664, -122.085749655962),
          zoom: 10,
        ),
        markers: Set<Marker>.from(markers),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 添加一个新标记
          _addMarker(LatLng(37.43296265331129, -122.08832357078792));
        },
        child: Icon(Icons.add),
      ),
    );
  }
}

在上面的示例中,我们创建了一个MapScreen小部件,其中包含一个Google地图和一个浮动操作按钮。通过点击浮动操作按钮,可以在地图上添加一个新的标记。要删除特定的标记,可以调用_removeMarker方法,并传递要删除的标记对象。

请注意,这只是一个简单的示例,实际应用中可能需要更复杂的逻辑来管理标记和与地图交互的其他功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百零三)地图与定位SDK

国内常用的地图SDK就是百度和高德了,二者的用法大同小异,可按照官网上的开发指南一步步来。下面是我在集成地图SDK时遇到的问题说明: 1、点击基本地图功能选项,不能打开地图,弹出“key验证出错!请在AndroidManifest.xml文件中检查key设置的”的红色字提示。查看日志提示“galaxy lib host missing meta-data,make sure you know the right way to integrate galaxy” 该问题是因为key值对应的签名与app打包用的签名不一致。app在开发时与发布时有两个不同的签名,开发时用的是ADT默认签名,查看默认签名的SHA1值可依次选择“Window”->“Preferences”->“Android”->“Build  SHA1 fingerprint”。app发布时的签名是密钥文件的签名,查看发布签名的SHA1值可依次选择“File”->“Export”->“Export Android Application”->“Next”后选择密钥文件并输入密码与app输出路径->在“Certificate fingerprints”下查看SHA1值。 2、百度地图SDK3.6及以上版本找不到overlayutil包。 这是因为新版SDK的jar包不再包含这部分源码,得到官方demo的src目录下获取源码加入到开发者自己的工程中,源码路径为:BaiduMap_AndroidMapSDK_v3.7.1_Sample\BaiduMapsApiDemo\src\com\baidu\mapapi 3、在一个工程中同时包含了百度地图和高德地图的sdk,编译时报错“Found duplicate file for APK: assets/lineDashTexture.png”。 这是因为百度和高德的sdk,其jar包存在同名文件“assets/lineDashTexture.png”,所以无法通过编译。即百度sdk与高德sdk是互斥的,不能同时存在于同个工程中,必须分开来使用。

01
领券