You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中将Geopoint转换为LatLng?附转换示例

将Geopoint格式坐标转换为Flutter LatLng格式

输入输出示例

  • 输入:[Geopoint -1.0255003501604503/119.48473403405048]
  • 目标输出:LatLng[-1.0255003501604503, 119.48473403405048](或可直接用于Flutter地图的LatLng实例)

实现方案

以下是可直接复用的Dart代码,适配Flutter项目:

import 'package:google_maps_flutter/google_maps_flutter.dart';

// 转换为可直接使用的LatLng实例
LatLng convertGeopointToLatLng(String geopoint) {
  // 剔除字符串首尾的无效前缀后缀
  final cleanedCoords = geopoint.replaceAll(RegExp(r'^\[Geopoint |\]$'), '');
  // 按斜杠分割纬度与经度
  final coordParts = cleanedCoords.split('/');
  
  if (coordParts.length != 2) {
    throw const FormatException('Geopoint格式不符合要求');
  }
  
  return LatLng(double.parse(coordParts[0]), double.parse(coordParts[1]));
}

// 转换为指定格式的字符串
String convertGeopointToLatLngString(String geopoint) {
  final latLng = convertGeopointToLatLng(geopoint);
  return 'LatLng[${latLng.latitude}, ${latLng.longitude}]';
}

// 使用示例
void main() {
  const input = '[Geopoint -1.0255003501604503/119.48473403405048]';
  final latLngInstance = convertGeopointToLatLng(input);
  final formattedString = convertGeopointToLatLngString(input);
  
  print(latLngInstance); // 输出: LatLng(-1.0255003501604503, 119.48473403405048)
  print(formattedString); // 输出: LatLng[-1.0255003501604503, 119.48473403405048]
}

关键说明

  • 若需要用于地图组件的LatLng对象,直接调用convertGeopointToLatLng方法
  • 若仅需匹配示例的字符串格式,调用convertGeopointToLatLngString方法
  • 代码包含基础格式校验,输入不符合规则时会抛出异常提示

内容的提问来源于stack exchange,提问作者Afan Ray Maa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:55:24