当前位置: 首页 > 知识库问答 >
问题:

如何使用python-Geojson从python转储格式化GeoJSON文件?

聂煜
2023-03-14

我正在尝试使用python和python geojson创建一个features数组。我附加了一些功能,例如带有工作坐标的多边形。但是,当我转储时,geoJson文件中没有缩进。所有数据都在一行上,mapbox不接受数据。

F

features = []
poly = Polygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38, 57.322)]])


features.append(Polygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38, 57.322)]]))
features.append(Feature(geometry=poly, properties={"country": "Spain"}))


feature_collection = FeatureCollection(features)

with open('myfile.geojson', 'w') as f:
   dump(feature_collection,f)
f.close()

这就是输出的样子。它应该缩进,而不是像那样聚集。

{“类型”:“特征集合”,“特征”:[{“类型”:“多边形”,“坐标”:[[[2.38,57.322],[23.194,-20.28],-120.43,19.15],[2.38,57.322]]},{“几何”:{“类型”:“多边形”,“坐标”:[[2.38,57.322],[23.194,-20.28],-120.43,19.15],[2.38,57.322]}],类型:{“特征”,“属性”:{“国家”:“西班牙”}}

共有2个答案

严高峻
2023-03-14

备份一下,有三种类型的GeoJSON对象:

  1. 几何学
  2. 功能
  3. 特色收藏

特征包括几何体特征集合包括一个或多个特征。您不能直接将几何图形放入功能集合,但是,它必须是功能

在您分享的示例中,您的FeatureCollection包括一个Feature和一个Geometry(在本例中是一个Polygon)。在将其添加到FeatureCollection之前,您需要将该Polygon转换为Feature

不确定您是否打算拥有两个相同的多边形,但您的示例需要如下所示才能输出有效的GeoJSON:

features = []
poly1 = Polygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38, 57.322)]])
poly2 = Polygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38, 57.322)]])

features.append(Feature(geometry=poly1, properties={"country": "Spain"}))
features.append(Feature(geometry=poly2))

feature_collection = FeatureCollection(features)

with open('myfile.geojson', 'w') as f:
   dump(feature_collection,f)
f.close()

压痕在这里不重要。

关于GeoJSON规范,您可以在https://www.rfc-editor.org/rfc/rfc7946.

卢和昶
2023-03-14

将'indent'参数添加到dump()调用:

with open('myfile.geojson', 'w') as f:
   dump(feature_collection, f, indent=4)

然而,奇怪的是,一段代码不接受所有在一行上的JSON。它同样有效,合法。这是代码中的一个bug。使用“缩进”参数通常只是为了便于阅读。

 类似资料:
  • 问题内容: 我有一个名为“ imposm3_restaurant”的简单表,其列为[id,name,geometry],我想将这些数据转换为geoJSON,我正在使用此功能 结果是这样的: 它没有当前的几何图形,您知道功能上有什么问题吗:我使用的是Postgres 9.3和PostGIS 2.2 问题答案: 您的输出是有效的geojson文件,但是使用投影EPSG:3857投影了几何。 您可以在大

  • 例如,我有一个geojson文件,其特性如下所示。 {类型:FeatureCollection,working_width:20,特征": [ { "类型:特征,几何:{类型:点,坐标:[28.4766, 12.5645456 ] } } ] 如何将属性添加到上述文件中,如下所示。 {“类型”:“FeatureCollection”,“working_width”:20,“features”:[{

  • GeoJSON 是一个编码各种地理数据结构的格式。一个GeoJSON对象可以代表一个几何,一个特性,或一组特性。GeoJSON 支持以下几何类型: 点,LineString,多边形,多点,MultiLineString,多个多边形,GeometryCollection。GeoJSON(包含一 个几何特征对象和额外的属性和特性集合代表一个列表的功能。

  • 本文向大家介绍Python中GeoJson和bokeh-1的使用讲解,包括了Python中GeoJson和bokeh-1的使用讲解的使用技巧和注意事项,需要的朋友参考一下 GeoJson 文档 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。如果你想了解更多相关内容请查看下面相关链接

  • 问题内容: 我使用第3方工具输出Unicode格式的文件。但是,我更喜欢使用ASCII。该工具没有设置来更改文件格式。 使用Python转换整个文件格式的最佳方法是什么? 问题答案: 您可以仅使用函数就可以轻松地转换文件,但是如果没有与ASCII直接对应的Unicode字符,就会遇到问题。 该博客推荐该模块,该模块似乎可以粗略地转换字符而无需直接对应的ASCII值,例如 通常转换为 这是非常错误的

  • 我第一次使用geoJSON。我用它在地图上显示点和多边形。 我有以下内容:59个地图点(大致),5个建筑工地(多边形)和32个建筑(多边形),我需要在我的GeoJSON文件中。 我不确定我是否需要创建多个JSON文件,或者它们是否都存在于一个文件中。如果可能的话,我需要将它们分成3组:在单个JSON文件中映射点、构造和建筑物。 我在文档(geojson.org)中注意到有一个全局类型,它们使用“F