Flutter地图应用插件map_apptimus的使用

Flutter 地图应用插件 map_apptimus 的使用

Map Apptimus

Map Apptimus 是一个 Flutter 包,用于在您的 Flutter 应用程序中集成地图和搜索功能。

开始使用

前提条件

在使用此包之前,您需要从 Google Cloud 控制台获取一个 Google API 密钥以进行地图集成。

安装

将以下依赖项添加到您的 pubspec.yaml 文件中:

dependencies:
  map_apptimus: ^0.0.1

运行 flutter pub get 来安装该包。

Android 配置

在您的 android/app/build.gradle 文件中,确保有以下配置:

android {
    ...
    compileSdkVersion 33
    defaultConfig {
        ...
        minSdkVersion 21
        ...
    }
    ...
}

添加权限

在您的 AndroidManifest.xml 文件中,添加以下权限:

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

添加 Google API 密钥

同样,在 AndroidManifest.xml 文件中添加您的 Google API 密钥:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="Your_api_key" />

使用

简单的地图集成应用

首先,创建一个简单的地图集成应用。在 main.dart 文件中,使用以下代码:

import 'package:flutter/material.dart';
import 'package:map_apptimus/map_apptimus.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '地图演示',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: MapScreen(
        searchfunction: true,       // 启用搜索功能
        straightDistance: true,     // 启用直线距离计算
        routeDistance: true,        // 启用路线距离计算
        showRoute: true,            // 显示路线
        userkey: 'your_api_key',    // 替换为您的 Google API 密钥
      ),
    );
  }
}

简单的 Google 搜索功能

接下来,实现一个简单的 Google 搜索功能。在 main.dart 文件中,使用以下代码:

import 'package:flutter/material.dart';
import 'package:map_apptimus/map_apptimus.dart';

class SearchService {
  void searchbar(TextEditingController searchController, Function onItemClicked, {required String userkey}) {
    // 实现搜索逻辑
  }
}

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '地图演示',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  [@override](/user/override)
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  final TextEditingController searchController = TextEditingController();
  final SearchService searchservice = SearchService();

  void onItemClicked(String item) {
    // 处理搜索结果点击事件
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('搜索功能'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Column(
          children: [
            TextField(
              controller: searchController,
              decoration: InputDecoration(hintText: '搜索地点'),
            ),
            ElevatedButton(
              onPressed: () {
                searchservice.searchbar(searchController, onItemClicked, userkey: 'your_api_key');
              },
              child: Text('搜索'),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter地图应用插件map_apptimus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter地图应用插件map_apptimus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


map_apptimus 是一个 Flutter 插件,用于在应用中集成地图功能。以下是如何使用 map_apptimus 插件的基本步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 map_apptimus 依赖。

dependencies:
  flutter:
    sdk: flutter
  map_apptimus: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 map_apptimus 包。

import 'package:map_apptimus/map_apptimus.dart';

3. 使用 MapApptimus 组件

在你的应用中,你可以使用 MapApptimus 组件来显示地图。

class MyMapScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Map Apptimus Example'),
      ),
      body: MapApptimus(
        initialCameraPosition: CameraPosition(
          target: LatLng(37.7749, -122.4194), // 初始地图中心位置 (旧金山)
          zoom: 12.0, // 初始缩放级别
        ),
        onMapCreated: (MapApptimusController controller) {
          // 当地图创建时调用
          // 你可以使用 controller 来操作地图
        },
      ),
    );
  }
}

4. 使用 MapApptimusController

MapApptimusController 提供了多种方法来控制地图,例如移动相机、添加标记等。

onMapCreated: (MapApptimusController controller) {
  // 添加标记
  controller.addMarker(
    MarkerOptions(
      position: LatLng(37.7749, -122.4194),
      title: 'San Francisco',
    ),
  );

  // 移动相机到新位置
  controller.moveCamera(
    CameraUpdate.newLatLngZoom(LatLng(34.0522, -118.2437), 10.0),
  );
},

5. 处理地图事件

你可以监听地图上的各种事件,例如点击、长按等。

onMapCreated: (MapApptimusController controller) {
  controller.onMapClick.listen((LatLng position) {
    print('Map clicked at $position');
  });

  controller.onMapLongClick.listen((LatLng position) {
    print('Map long clicked at $position');
  });
},
回到顶部