Flutter坐标转换插件coordtransform_dart的使用

Flutter坐标转换插件coordtransform_dart的使用

插件简介

coordtransform_dart 是一个用于在不同坐标系统之间进行转换的 Dart 和 Flutter 插件。它支持以下坐标系统的相互转换:

  • 百度坐标(BD09)
  • 国测局坐标(火星坐标,GCJ02)
  • WGS84 坐标系

该插件是对 ipcjs/coordtransform 的 Dart/Flutter 版本。

其他版本实现

使用示例

示例代码

以下是一个简单的示例,展示了如何将 WGS84 坐标转换为 GCJ02 坐标。

import 'package:coordtransform_dart/coordtransform_dart.dart';

void main() {
  // 定义一个 WGS84 坐标
  const inLngLat = [118.3013077, 32.2719040];

  // 调用 CoordinateTransformUtil 类的方法进行坐标转换
  final outLngLat = CoordinateTransformUtil.wgs84ToGcj02(
    inLngLat[0], // 经度
    inLngLat[1]  // 纬度
  );

  // 输出转换后的坐标
  print('$inLngLat -> $outLngLat');
}

运行结果

运行上述代码后,控制台输出如下:

[118.3013077, 32.271904] -> [118.3013077, 32.271904]

更多关于Flutter坐标转换插件coordtransform_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter坐标转换插件coordtransform_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用Flutter坐标转换插件coordtransform_dart的代码示例。这个插件通常用于在中国地区进行地理坐标转换,比如将GPS坐标(WGS-84)转换为火星坐标(GCJ-02)或者百度坐标(BD-09)。

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

dependencies:
  flutter:
    sdk: flutter
  coordtransform_dart: ^x.y.z  # 请替换为最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下方式使用这个插件进行坐标转换:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('坐标转换示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: () {
                  // 示例GPS坐标(WGS-84)
                  double lng = 116.404; // 经度
                  double lat = 39.915;  // 纬度

                  // 创建坐标转换对象
                  var coordTransform = CoordTransform();

                  // 转换为火星坐标(GCJ-02)
                  var gcj02 = coordTransform.wgs84ToGcj02(lng, lat);
                  print('GCJ-02: $gcj02');

                  // 转换为百度坐标(BD-09)
                  var bd09 = coordTransform.gcj02ToBd09(gcj02.lng!, gcj02.lat!);
                  print('BD-09: $bd09');
                },
                child: Text('进行坐标转换'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. 导入coordtransform_dart包。
  2. 创建一个Flutter应用,并在主页面上放置一个按钮。
  3. 当按钮被点击时,我们定义了一个示例GPS坐标(WGS-84)。
  4. 使用CoordTransform对象进行坐标转换:
    • 首先,将WGS-84坐标转换为GCJ-02坐标。
    • 然后,将GCJ-02坐标转换为BD-09坐标。
  5. 打印转换后的坐标到控制台。

注意:在实际应用中,你可能需要将转换后的坐标显示在UI上,而不是仅仅打印到控制台。这只是一个简单的示例来演示如何使用coordtransform_dart插件进行坐标转换。

回到顶部