历史版本4 :三维城市geojson文件说明 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

用户使用 FVS三维城市组件 构建三维城市场景时,需要上传正确的 geojson 文件,本文即主要介绍 geojson 文件应包含的一些属性及其定义。

目录:

geojson简介编辑

geojson 是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON,FineReport内置的中国-area.json也是其中一种)的地理空间信息数据交换格式。
geojson 对象可以表示几何、特征或者特征集合。

geojson 支持点、线、面、多点、多线、多面等集合类型。

geojson属性检测规则编辑

FVS 插件 V1.16.1 及之后的版本,新增对 geojson 数据文件的检测机制,减少不必要的错误解析消耗;同时也能让正确部分的数据可以根据用户的选择是否继续生成,使得流程可以继续部分执行下去,减少阻塞点。

基本规则如下:

规则说明
规则1:Json 格式判断

判断是否为可编译 Json 文件。若是,则继续执行数据结构校验;若不是,则提示「geojson文件无法编译」,需重新选择文件上传

规则2:地物类型属性完整性检测每个 feature 中是否存在 building,road,grass ,water,calder:bbox 等关键地物类型判断属性字段
规则3:feature 的 geometry 属性的合规性一个 feature 中的 building,road,grass ,water,calder:bbox 等类型,需要与其 geometry 属性一 一对应,例如 building 的 geometry 为 Polygon,而不能是 line
规则4:feature 的坐标数据结构的合规性

检测每一个 feature 的坐标数据结构是否符合规范,例如坐标值需要为数组类型的 coordinates

规则5:多边形类型的首尾坐标一致性building,road,grass ,water,calder 的类型为多边形类型,需要检测其首尾坐标值是否一致,从而才能判断其生成的三维模型是否闭合

注:若数据检测均不合规,则无法生成场景,需重新上传文件;若数据检测部分不合规,则可选择是否使用合规数据继续生成场景。

geojson属性标准编辑

 FVS三维城市组件 可自动识别的 geojson 属性包括:

注:下表中 geometry 表示几何属性,Polygon 和 MultiPolygon 表示二维曲面,LineString 和 MultiLineString 表示一维曲线。

类型
属性

feature 特征

示例

命名建筑

(主要建筑)

name: string,

building: true,

height: number 

  • 建筑 key:

building/house/department

  • ['geometry'] 中"type"的value:

Polygon/MultiPolygon

既有 building 属性又有 name 属性,则在三维城市中会出现该建筑的 3D 模型,且建筑外立面颜色闪耀,代表建筑灯光

e465cefe97e5c216c63124109e851631.jpg

未命名建筑

(其他建筑)

building: true,

height: number

  • 建筑 key:

building/house/department

  • ['geometry'] 中"type"的value:

Polygon/MultiPolygon

没有 building 属性,则在三维城市中不会出现该建筑的 3D 模型

只有 building 属性没有 name 属性,则在三维城市中,该建筑的名称不能被识别到,被纳入其他建筑中,色彩也相较于有名称的建筑更加暗淡

Snag_4a07e78f.png

命名道路

(主要道路)

name: string,

road: true

  • 道路 key:

road/highway/lane/street

  • ['geometry'] 中"type"的value:

LineString/MultiLineString


既有 road 属性又有 name 属性,则在三维城市中显示该道路,且道路自带流光效果,表示人流车流

53115281b61f9b5d66197ee3c1f5368a.jpg

未命名道路

(其他道路)

road: true
  • 道路 key:

road/highway/lane/street

  • ['geometry'] 中"type"的value:

LineString/MultiLineString

没有 road 属性,则在三维城市中不会显示该道路

只有 road 属性没有 name 属性,则在三维城市中,该街道的名称不能被识别到,被归入其它街道,街道色泽也更暗淡些

31a3cb9b1485e74a2868ae3cb0d085f9.jpg

草地grass: true
  • 草地 key:

grass/green/vegetation/park/leisure

  • ['geometry'] 中"type"的value:

Polygon/MultiPolygon

e2d71cdb625747762d2707948e284625.jpg
水系water: true
  • 水系 key:

water/river/lake/natural

  • ['geometry'] 中"type"的value:

Polygon/MultiPolygon

7160c6009c18ffafe14d28d88cdbe413.jpg
bbox:caldernull

['geometry'] 中"type"的value:

Polygon/MultiPolygon/LineString/MultiLineString

特殊属性:

一些效果依赖于建筑范围,有时,我们希望手动修改这个范围。

也可以用此方法建立空场景,配合自定义模型使用。

添加一个 Polygon 并作为第一个 feature,添加特殊属性:

"calder:bbox": true

此时场景范围(bbox)以此 Polygon 为准

示例:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "calder:bbox": true
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [[109,34],[109.1,34],[109.1,34.1],[109,34.1],[109,34]]
        ]
      }
    }
  ]
}