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

如何在Python中将文本文件中字符串格式的多边形坐标转为浮点型嵌套列表

处理coordinates.txt并生成GeoJSON Polygon的方法

核心思路

逐行解析文件中的JSON数据,将字符串格式的bounds转换为浮点型嵌套列表,再处理成GeoJSON Polygon要求的闭合线性环,最终完成对象实例化。

代码实现

先导入所需依赖模块:

import json
import ast
from geojson import Polygon

读取文件并处理的完整代码:

with open('coordinates.txt', 'r', encoding='utf-8') as f:
    for line in f:
        # 解析单行JSON数据
        line_data = json.loads(line.strip())
        # 将bounds字符串转为Python列表
        raw_bounds = ast.literal_eval(line_data['bounds'])
        # 统一转为浮点型嵌套列表
        float_bounds = [[float(lon), float(lat)] for lon, lat in raw_bounds]
        # 保证坐标环闭合(GeoJSON Polygon要求首尾坐标一致)
        if float_bounds[0] != float_bounds[-1]:
            float_bounds.append(float_bounds[0])
        # 实例化Polygon对象
        polygon = Polygon([float_bounds])
        # 后续操作示例:打印结果
        print(f"ID {line_data['id']} 的Polygon: {polygon}")

关键说明

  • 用ast.literal_eval解析bounds字符串:比直接使用eval更安全,仅处理Python字面量结构,规避恶意代码执行风险。
  • 强制转浮点型:确保坐标数据类型符合GeoJSON规范,避免整数类型引发的潜在兼容性问题。
  • 闭合线性环:GeoJSON的Polygon要求构成面的坐标环必须首尾重合,因此需要检查并补充坐标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:40:33