如何在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
相关产品推荐
相关产品推荐

