用户使用 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 |
building/house/department
Polygon/MultiPolygon | 既有 building 属性又有 name 属性,则在三维城市中会出现该建筑的 3D 模型,且建筑外立面颜色闪耀,代表建筑灯光 |
未命名建筑 (其他建筑) | building: true, height: number |
building/house/department
Polygon/MultiPolygon | 没有 building 属性,则在三维城市中不会出现该建筑的 3D 模型 只有 building 属性没有 name 属性,则在三维城市中,该建筑的名称不能被识别到,被纳入其他建筑中,色彩也相较于有名称的建筑更加暗淡 |
命名道路 (主要道路) | name: string, road: true |
road/highway/lane/street
LineString/MultiLineString | 既有 road 属性又有 name 属性,则在三维城市中显示该道路,且道路自带流光效果,表示人流车流 |
未命名道路 (其他道路) | road: true |
road/highway/lane/street
LineString/MultiLineString | 没有 road 属性,则在三维城市中不会显示该道路 只有 road 属性没有 name 属性,则在三维城市中,该街道的名称不能被识别到,被归入其它街道,街道色泽也更暗淡些 |
草地 | grass: true |
grass/green/vegetation/park/leisure
Polygon/MultiPolygon | |
水系 | water: true |
water/river/lake/natural
Polygon/MultiPolygon | |
bbox:calder | null | ['geometry'] 中"type"的value: Polygon/MultiPolygon/LineString/MultiLineString | 特殊属性: 一些效果依赖于建筑范围,有时,我们希望手动修改这个范围。 也可以用此方法建立空场景,配合自定义模型使用。 添加一个 Polygon 并作为第一个 feature,添加特殊属性: "calder:bbox": true 此时场景范围(bbox)以此 Polygon 为准 示例:
|
geojson 数据标准样式如下图所示:
点击下载示例文件:简单geojson示例.zip