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

Flutter如何从API返回的JSON数组中提取所有经纬度数据

Flutter 提取API响应中经纬度的实现方法

方式1:快速提取(无需定义数据模型,适合临时处理场景)

直接操作解析后的动态列表即可,代码如下:

import 'dart:convert';

// 假设apiResponseStr是你调用接口拿到的JSON字符串
List<dynamic> pollList = jsonDecode(apiResponseStr);

// 提取所有经纬度存入新列表
List<Map<String, double>> coordinates = pollList.map((item) {
  return {
    'lat': (item['Lat'] as num).toDouble(),
    'long': (item['Long'] as num).toDouble(),
  };
}).toList();

后续直接遍历coordinates就能拿到所有纬度和经度值。

方式2:规范解析(定义数据模型,推荐生产环境使用)

先创建对应字段的Dart模型,避免后续逻辑出现类型异常,也方便扩展其他字段的处理:

第一步:定义Poll数据模型

class Poll {
  final String pollId;
  final double long;
  final double lat;
  final double speed;
  final bool isGPSAvailable;
  final String status;
  final bool ign;
  final double distance;
  final double direction;

  Poll({
    required this.pollId,
    required this.long,
    required this.lat,
    required this.speed,
    required this.isGPSAvailable,
    required this.status,
    required this.ign,
    required this.distance,
    required this.direction,
  });

  factory Poll.fromJson(Map<String, dynamic> json) {
    return Poll(
      pollId: json['PollId'] as String,
      long: (json['Long'] as num).toDouble(),
      lat: (json['Lat'] as num).toDouble(),
      speed: (json['Speed'] as num).toDouble(),
      isGPSAvailable: json['IsGPSAvailable'] as bool,
      status: json['Status'] as String,
      ign: json['Ign'] as bool,
      distance: (json['Distance'] as num).toDouble(),
      direction: (json['Direction'] as num).toDouble(),
    );
  }
}

第二步:解析并提取经纬度

import 'dart:convert';

// 把JSON字符串解析为Poll对象列表
List<dynamic> jsonList = jsonDecode(apiResponseStr);
List<Poll> pollList = jsonList.map((json) => Poll.fromJson(json)).toList();

// 提取经纬度
List<Map<String, double>> coordinates = pollList.map((poll) {
  return {
    'lat': poll.lat,
    'long': poll.long,
  };
}).toList();

注意点

  • 代码中用num转double是为了兼容接口返回整数类型的数值,避免类型强转报错。
  • 如果你用的地图SDK有自带的坐标类(比如百度地图、高德地图的LatLng类),可以直接把经纬度塞到对应类里,不用自己存Map。

内容的提问来源于stack exchange,提问作者Hasnain Saeed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:36:04