Flutter中国地图展示插件mapofchina的使用

Flutter中国地图展示插件mapofchina的使用

本文将介绍如何在Flutter项目中使用mapofchina插件来展示中国地图,并实现省份颜色设置、点击事件响应等功能。


功能特点

该插件支持绘制中国地图,并提供了以下功能:

  • 支持设置省份的颜色。
  • 可以响应点击事件并显示提示信息。
  • 支持地图的缩放和交互。

image.png


使用步骤

1. 添加依赖

pubspec.yaml文件中添加mapofchina插件的依赖:

dependencies:
  flutter:
    sdk: flutter

  mapofchina: ^0.0.4  

然后执行以下命令安装依赖:

flutter pub get

2. 导入相关包

在需要使用地图的文件中导入以下包:

import 'package:mapofchina/map/china_map.dart';
import 'package:mapofchina/map/data.dart';

3. 创建地图组件

创建一个简单的Flutter页面,展示中国地图。以下是完整的代码示例:

import 'package:flutter/material.dart';
import 'package:mapofchina/map/china_map.dart';
import 'package:mapofchina/map/data.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeWidget(),
    );
  }
}

class HomeWidget extends StatefulWidget {
  const HomeWidget({Key? key}) : super(key: key);

  [@override](/user/override)
  State<HomeWidget> createState() => _HomeWidgetState();
}

class _HomeWidgetState extends State<HomeWidget> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("中国地图"),
      ),
      body: Center(
        child: MapWidget(
          // 默认的提示语
          defaultToast: "北京 棒棒的",
          // 自定义省份信息,或使用 helper 工具生成
          cityItems: generatedCityItemsHelper((cityName) => CityItem(
                cityName: cityName,
                cityColor: _randomColor(), // 随机生成颜色
                isSelected: cityName == "山西" ? true : false, // 设置默认选中的省份
              )),
          // 省份被点击时的回调
          clickCallback: (cityName) {
            return "$cityName baby"; // 更新提示语
          },
          selectedStorkeColor: const Color(0xFF8BFDF0), // 选中省份的边框颜色
          background: const Color(0xFFF2F2F2), // 地图背景颜色
        ),
      ),
    );
  }

  /// 随机生成颜色
  Color _randomColor() {
    var index = Random().nextInt(3); // 随机生成 0, 1, 2
    if (index == 0) return Colors.green; // 浅色
    if (index == 1) return Colors.orange; // 中等色
    if (index == 2) return Colors.red; // 深色
    return Colors.grey; // 默认返回灰色
  }
}

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

1 回复

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


在Flutter中展示中国地图,可以使用mapofchina插件。这个插件提供了一个简单的方式来展示中国地图,并且支持一些基本的交互功能。以下是使用mapofchina插件的步骤:

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加mapofchina插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  mapofchina: ^0.1.0  # 请检查最新版本

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

2. 导入插件

在你的Dart文件中导入mapofchina插件:

import 'package:mapofchina/mapofchina.dart';

3. 使用MapOfChina组件

你可以在你的Widget树中使用MapOfChina组件来展示中国地图。以下是一个简单的示例:

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

class ChinaMapPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('中国地图'),
      ),
      body: Center(
        child: MapOfChina(
          width: 300,  // 设置地图宽度
          height: 300, // 设置地图高度
          onRegionTap: (regionId) {
            // 处理区域点击事件
            print('点击了区域: $regionId');
          },
        ),
      ),
    );
  }
}

4. 处理区域点击事件

MapOfChina组件提供了一个onRegionTap回调函数,当用户点击地图上的某个区域时,这个回调函数会被触发,并返回被点击区域的regionId。你可以根据regionId来执行一些自定义的操作。

5. 自定义地图样式

MapOfChina组件还允许你自定义地图的样式,例如颜色、边框等。你可以通过传递MapOfChinaStyle对象来设置这些样式:

MapOfChina(
  width: 300,
  height: 300,
  style: MapOfChinaStyle(
    fillColor: Colors.blue,  // 填充颜色
    strokeColor: Colors.black, // 边框颜色
    strokeWidth: 1.0, // 边框宽度
  ),
  onRegionTap: (regionId) {
    print('点击了区域: $regionId');
  },
);
回到顶部