fl_amap 3.4.0 copy "fl_amap: ^3.4.0" to clipboard
fl_amap: ^3.4.0 copied to clipboard

AMap location plugin for flutter, supports single positioning and continuous positioning

example/lib/main.dart

import 'package:example/coordinate_converter_page.dart';
import 'package:example/geo_fence_page.dart';
import 'package:example/loaction_page.dart';
import 'package:fl_amap/fl_amap.dart';
import 'package:fl_extended/fl_extended.dart';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MaterialApp(
      navigatorKey: FlExtended().navigatorKey,
      scaffoldMessengerKey: FlExtended().scaffoldMessengerKey,
      debugShowCheckedModeBanner: false,
      title: 'FlAMap',
      home: Scaffold(
          appBar: AppBar(title: const Text('高德地图')), body: const App())));
}

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

  @override
  State<App> createState() => _AppState();
}

class _AppState extends State<App> {
  bool isInit = false;

  void setKey() async {
    isInit = await setAMapKey(
        iosKey: '7d3261c06027bdc87aca547c99ad5b2f',
        // iosKey: 'e0e98395277890e48caa0c4bed423ead',
        androidKey: '77418e726d0eefc0ac79a8619b5f4d97',
        isAgree: true,
        isContains: true,
        isShow: true);
    showToast('高德地图ApiKey设置$isInit');
  }

  @override
  Widget build(BuildContext context) {
    return Universal(
        width: double.infinity,
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          ElevatedText(onPressed: setKey, text: '设置高德key'),
          ElevatedText(
              onPressed: () {
                if (!isInit) {
                  showToast('请先设置高德key');
                  return;
                }
                push(const AMapLocationPage());
              },
              text: '高德定位功能'),
          ElevatedText(
              onPressed: () {
                if (!isInit) {
                  showToast('请先设置高德key');
                  return;
                }
                push(const AMapGeoFencePage());
              },
              text: '高德地理围栏功能'),
          ElevatedText(
              onPressed: () {
                push(const CoordinateConverterPage());
              },
              text: '坐标转换器'),
        ]);
  }
}

class ElevatedText extends StatelessWidget {
  const ElevatedText({super.key, required this.text, required this.onPressed});

  final String text;
  final VoidCallback onPressed;

  @override
  Widget build(BuildContext context) =>
      ElevatedButton(onPressed: onPressed, child: Text(text));
}

Future<bool> getPermission(Permission permission) async {
  final PermissionStatus status = await permission.request();
  if (!status.isGranted) {
    await openAppSettings();
    return await permission.request().isGranted;
  }
  return status.isGranted;
}
8
likes
150
points
200
downloads

Publisher

unverified uploader

Weekly Downloads

AMap location plugin for flutter, supports single positioning and continuous positioning

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on fl_amap