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

在Go语言中解析GeoJSON要素集,如何获取要素列表?

解决方法

你解析的应该是FeatureCollection类型的GeoJSON,geojson.Parse返回的通用Object只是顶层接口,需要先判断具体类型并做类型断言,才能拿到要素列表。

直接上代码:

// 断言解析结果为FeatureCollection
fc, ok := obj.(*geojson.FeatureCollection)
if !ok {
    return nil, fmt.Errorf("输入的GeoJSON不是FeatureCollection类型")
}

// fc.Features就是你要的要素列表,类型是[]*geojson.Feature
features := fc.Features

// 遍历要素做后续处理的示例
for _, feat := range features {
    // 获取要素属性
    props := feat.Properties
    // 获取要素几何信息
    geom := feat.Geometry
    // 这里写你的业务逻辑...
}

另外提个小优化:从Go 1.16开始ioutil.ReadAll已经被废弃,用os.ReadFile可以直接一步读取文件,简化你的读取代码:

data, err := os.ReadFile("filename.json")
if err != nil {
    return nil, err
}

obj, err := geojson.Parse(string(data), geojson.DefaultParseOptions)
if err != nil {
    return nil, err
}

// 接着做上面的类型断言和要素处理

注意:如果你的GeoJSON不是标准的FeatureCollection,而是单个Feature,那直接断言为*geojson.Feature就行;要是不符合GeoJSON规范的格式,那得先调整输入文件或者解析逻辑,但绝大多数区域要素集都是用FeatureCollection组织的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:25:18