R语言使用geojsonR读取.geojson文件报错如何解决
R读取GeoJSON文件报错原因及解决办法
报错原因分析
- 第一个报错(
geojsonR::FROM_geojson触发文件名过长错误):
小写开头的FROM_geojson函数设计用途是解析GeoJSON格式字符串,而非读取本地磁盘文件。你传入的本地文件路径会被函数当成超长字符串尝试解析,因此触发文件名转换错误。 - 第二个报错(
geojsonR::FROM_GeoJson提示无效GeoJSON几何对象):
大写开头的FROM_GeoJson函数对GeoJSON格式的合规性要求极为严格,你使用的RadNETZ-BW的GeoJSON文件属于业务部门输出的非标准格式,存在几何结构或属性字段不符合RFC 7946规范的情况,无法通过该包的格式校验。
解决方法
推荐使用R空间数据处理的主流工具sf包读取该文件,sf包基于GDAL开发,对各类非标准空间数据格式兼容性远高于geojsonR,操作也更适配常规空间分析 workflow。
- 先安装并加载
sf包:
install.packages("sf") library(sf)
- 直接读取GeoJSON文件:
# 替换为你自己的文件路径,路径报错可优先换成绝对路径测试 radnetz_data <- st_read("../Sonstiges/RadNETZ.geojson")
- 若仍存在格式相关报错,可添加GDAL参数关闭限制、适配大文件或非标准格式:
# 解除GeoJSON单对象大小限制,适配大体积业务GeoJSON文件 radnetz_data <- st_read("../Sonstiges/RadNETZ.geojson", options = "OGR_GEOJSON_MAX_OBJ_SIZE=0") # 若后续使用中提示几何无效,可运行以下代码修复几何结构 radnetz_data_valid <- st_make_valid(radnetz_data)
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

