我正在生成一些 GeoJSON 文档,但不确定如何正确地将 bbox 添加到几何图形中。
我是否需要创建一个要素对象来添加 bbox(示例 1),或者我可以在几何体本身中执行此操作(示例 2)吗?
GeoSON 规范 ( https://www.rfc-editor.org/rfc/rfc7946#appendix-A ) 仅提供了特征类型 GeoJSON 对象中的 bbox 示例,但是验证器接受插入 bbox 的两种模式。
示例 1:在此示例中,bbox 是特征类型的 GeoJSON 对象的元素。
{
"type": "Feature",
"properties": {"id": 1, "Linha": null},
"bbox": [-48.573569106948469, -27.837770518544438, -48.417446881093412, -27.381161181879751],
"geometry": {
"type": "LineString",
"coordinates": [
[-48.417446881093412, -27.381161181879751],
[-48.573569106948469, -27.837770518544438]
]
}
}
Run Code Online (Sandbox Code Playgroud)
示例 2:在另一个示例中,bbox 直接包含在具有几何图形 (LineString) 的 GeoJSON 对象中。
{
"type": "LineString",
"bbox": [-48.573569106948469, -27.837770518544438, -48.417446881093412, -27.381161181879751],
"coordinates": [
[-48.417446881093412, -27.381161181879751],
[-48.573569106948469, -27.837770518544438]
]
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的问题,你是对的,规范中的示例不完整。从标准来看,GeoJSON Object的定义:
GeoJSON 对象
GeoJSON 对象表示几何、要素或要素集合。
- GeoJSON 对象是一个 JSON 对象。
- GeoJSON 对象有一个名为“type”的成员。成员的值必须是 GeoJSON 类型之一。
- GeoJSON 对象可以有一个“bbox”成员,其值必须是一个边界框数组(参见第 5 节)。
然后,从边界框部分:
GeoJSON 对象可以有一个名为“bbox”的成员,以包含有关其几何、特征或特征集合的坐标范围的信息。
这就是验证器接受您的两个示例的原因。它们都是具有边界框的有效 geojson 对象。
为了帮助在我自己的项目中验证这一点,我开发了一组名为jest-geojson 的匹配器,它扩展了 Jest 测试框架,以便更轻松地评估 GeoJSON。包括边界框评估。
| 归档时间: |
|
| 查看次数: |
4259 次 |
| 最近记录: |