3D城市模型COLLADA数据格式详解
1. 概述
本文档基于3D城市模型COLLADA数据规范(v1.8),结合旧金山(San Francisco)实际数据集,详细说明该数据格式的组织结构、文件命名规范、数据内容及使用方法。
1.1 数据源
- 数据标准 :
COLLADA1.4.1 - 城市: 美国加利福尼亚州旧金山
1.2 数据特点
- 基于瓦片(Tile)的城市3D模型数据
- 包含建筑物、地形、道路、水体等城市要素
- 支持多细节层次(
LOD):LOW、STANDARD、HIGH - 使用
PNG纹理贴图 - 采用横轴墨卡托(Transverse Mercator)投影坐标系统
2. 目录结构
SAN_FRANCISCO/
├── CM_USA_CA_SAN_FRANCISCO_XXX_YYY_B2.DAE # 边界元数据文件
├── CM_USA_CA_SAN_FRANCISCO_XXX_YYY_M.DAE # 主模型数据文件
├── 3D_LANDMARKS/ # 地标建筑目录
│ ├── [建筑名称]/
│ │ ├── LOW/ # 低细节模型
│ │ │ ├── [建筑名称]_L.DAE
│ │ │ └── [建筑名称]_L.PNG
│ │ └── STANDARD/ # 标准细节模型
│ │ ├── [建筑名称]_S.DAE
│ │ └── [建筑名称]_S.PNG
├── ASSETS/ # 辅助资产文件
│ ├── CM_USA_CA_SAN_FRANCISCO.csgis # 压缩的GIS元数据(zlib格式)
│ ├── CM_USA_CA_SAN_FRANCISCO.dbf # Shapefile数据库文件(dBASE格式)
│ ├── CM_USA_CA_SAN_FRANCISCO.plorg # 压缩的数据组织信息(zlib格式)
│ ├── CM_USA_CA_SAN_FRANCISCO.prj # 投影坐标系统定义(WKT格式)
│ ├── CM_USA_CA_SAN_FRANCISCO.shp # Shapefile几何数据(ESRI格式)
│ └── CM_USA_CA_SAN_FRANCISCO.shx # Shapefile索引文件
└── TEXTURES/ # 纹理资源目录
└── HERE/
├── HIGH/ # 高质量纹理
├── LOW/ # 低质量纹理
└── STANDARD/ # 标准质量纹理
└── DAY/
├── ARROWS/ # 道路箭头标识
├── BUILDINGS/ # 建筑纹理
│ ├── B2/ # 二维建筑纹理(238张)
│ ├── B3/ # 三维建筑纹理(100张)
│ └── COMMON/ # 通用纹理(屋顶等)
└── OTHER/ # 其他纹理(地形、道路等)
3. 文件命名规范
3.1 瓦片文件命名
格式 : CM_[国家]_[州]_[城市]_XXX_YYY_[类型].DAE
示例 : CM_USA_CA_SAN_FRANCISCO_000_000_M.DAE
字段说明:
CM: City Model(城市模型)USA: 国家代码(美国)CA: 州代码(加利福尼亚)SAN_FRANCISCO: 城市名称XXX: 瓦片X索引(3位数字,从000开始)YYY: 瓦片Y索引(3位数字,从000开始)类型:B2: 二维边界数据文件M: Main(主模型数据文件)S: Spline(样条曲线文件,如道路中心线)
3.2 瓦片网格系统
数据采用规则网格瓦片组织:
- 瓦片尺寸: 400m × 400m
- 索引方式: XXX(列)× YYY(行)
- 覆盖范围: 旧金山数据集包含约8×16的瓦片网格
示例瓦片索引:
000_000 | 001_000 | 002_000 | ...
000_001 | 001_001 | 002_001 | ...
000_002 | 001_002 | 002_002 | ...
...
3.3 地标建筑命名
格式 : [国家]_[州]_[城市]_[建筑名称]
示例:
USA_CA_SANFRANCISCO_TRANSAMERICAPYRAMID(泛美金字塔大厦)USA_CA_SANFRANCISCO_COITTOWER(科伊特塔)USA_CA_SANFRANCISCO_FERRYBUILDING(渡轮大厦)
细节层次后缀:
_L.DAE: Low(低细节)_S.DAE: Standard(标准细节)
4. 文件类型详解
4.1 B2文件(Building文件)
用途: 存储建筑物的边界信息和元数据
内容:
- 瓦片基本信息(瓦片ID、尺寸)
- 最小边界矩形(MBR)
- 投影坐标系统定义
- 地理坐标系统参数
示例 : CM_USA_CA_SAN_FRANCISCO_000_000_B2.DAE
xml
<visual_content_metadata
tile_id="000_000"
tile_width="400"
tile_height="400"
spline_curve_file="CM_USA_CA_SAN_FRANCISCO_000_000_S.DAE"
dtm_integrated="false"/>
<minimum_bounding_rectangle
XMax="-3635.11768"
XMin="-4035.11768"
YMax="-2799.99976"
YMin="-3199.99976"/>
4.2 M文件(主模型文件)
用途: 包含瓦片内的所有3D几何模型和场景数据
内容:
- 地形(TERRAIN)
- 道路(ROAD, feature_type: 9999999)
- 水体(WATER, feature_type: 507116)
- 人行横道(PEDESTRIAN_CROSSWALK)
- 转向箭头标识(TURN_ARROW_DECAL)
- 植被覆盖(Grass, Park, feature_type: 900150)
- 其他地物
特点:
- 包含完整的COLLADA库(images、effects、materials、geometries、visual_scenes)
- 文件大小从几KB(空旷区域)到数MB(密集城区)
- 包含纹理引用和材质定义
4.3 ASSETS文件(辅助资产文件)
ASSETS 目录包含城市模型的辅助元数据和空间索引文件:
4.3.1 投影坐标系统文件
| 文件 | 格式 | 说明 |
|---|---|---|
.prj |
WKT文本 | 投影坐标系统定义(Well-Known Text格式) |
示例内容(CM_USA_CA_SAN_FRANCISCO.prj):
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
此文件定义了数据集使用的地理坐标系统(WGS 84)。
4.3.2 Shapefile 文件组
| 文件 | 格式 | 说明 |
|---|---|---|
.shp |
ESRI Shapefile | 存储几何图形(点、线、面) |
.shx |
Shapefile索引 | 加速空间查询的索引文件 |
.dbf |
dBASE III+ | 属性数据表 |
用途: 存储城市模型的边界多边形(Polygon)和相关属性。
注意: 旧金山数据集中的 Shapefile 仅包含 1 条记录,表示整个城市模型的外边界范围。
5. COLLADA文件结构
5.1 基本结构
xml
<?xml version="1.0" encoding="UTF-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>...</asset> <!-- 元数据 -->
<library_images>...</library_images> <!-- 图像库 -->
<library_effects>...</library_effects> <!-- 效果库 -->
<library_materials>...</library_materials> <!-- 材质库 -->
<library_geometries>...</library_geometries> <!-- 几何库 -->
<library_visual_scenes>...</library_visual_scenes> <!-- 场景库 -->
<scene>...</scene> <!-- 场景实例 -->
<extra>...</extra> <!-- 扩展信息 -->
</COLLADA>
5.2 Asset节点(元数据)
xml
<asset>
<contributor>
<author>HERE</author>
<copyright>Copyright 2022 HERE</copyright>
</contributor>
<created>2022-04-08T23:49:00.0Z</created>
<modified>2022-04-08T23:49:00.0Z</modified>
<revision>1.4.1</revision>
<unit/>
<up_axis>Z_UP</up_axis> <!-- Z轴向上 -->
</asset>
关键字段:
author: 数据提供商(HERE)created/modified: 创建和修改时间(UTC格式)up_axis: 坐标系统上方向(Z_UP表示Z轴向上)unit: 长度单位(米)
5.3 Library_images(图像库)
定义所有纹理图像资源:
xml
<library_images>
<image id="file-terrain_grass_color" name="file-terrain_grass_color">
<init_from>./TEXTURES/HERE/HIGH/DAY/OTHER/USA_L_GRASS-COLOUR_5.PNG</init_from>
</image>
<image id="file-roads_street_solid" name="file-roads_street_solid">
<init_from>./TEXTURES/HERE/HIGH/DAY/OTHER/USA_R_STREET-SOLID.PNG</init_from>
</image>
<!-- 更多图像... -->
</library_images>
纹理路径格式 : ./TEXTURES/HERE/[质量]/DAY/[类别]/[文件名].PNG
5.4 Library_effects(效果库)
定义材质的视觉效果(着色模型、纹理采样等):
xml
<effect id="terrain_grass_color-fx">
<profile_COMMON>
<newparam sid="file-terrain_grass_color-surface">
<surface type="2D">
<init_from>file-terrain_grass_color</init_from>
<format>A8R8G8B8</format> <!-- 32位ARGB格式 -->
</surface>
</newparam>
<newparam sid="file-terrain_grass_color-sampler">
<sampler2D>
<source>file-terrain_grass_color-surface</source>
<wrap_s>WRAP</wrap_s> <!-- 水平环绕 -->
<wrap_t>WRAP</wrap_t> <!-- 垂直环绕 -->
<minfilter>LINEAR_MIPMAP_LINEAR</minfilter>
<magfilter>LINEAR</magfilter>
</sampler2D>
</newparam>
<technique sid="common">
<lambert> <!-- Lambert着色模型 -->
<emission><color>0 0 0 1</color></emission>
<ambient><color>1 1 1 1</color></ambient>
<diffuse>
<texture texture="file-terrain_grass_color-sampler" texcoord="TEX0"/>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
着色模型: 使用Lambert漫反射模型
5.5 Library_materials(材质库)
关联效果到材质:
xml
<library_materials>
<material id="terrain_grass_color" name="terrain_grass_color">
<instance_effect url="#terrain_grass_color-fx"/>
</material>
</library_materials>
5.6 Library_geometries(几何库)
定义3D几何数据(顶点、法线、纹理坐标、面):
xml
<geometry id="MESH_TERRAIN" name="MESH_TERRAIN">
<mesh>
<!-- 顶点位置数组 -->
<source id="MESH_TERRAIN-positions">
<float_array id="MESH_TERRAIN-positions-array" count="12">
-4035.11768 -3199.99976 0
-3635.11768 -3199.99976 0
-3635.11768 -2799.99976 0
-4035.11768 -2799.99976 0
</float_array>
<technique_common>
<accessor count="4" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<!-- 法线数组 -->
<source id="MESH_TERRAIN-normals">
<float_array id="MESH_TERRAIN-normals-array" count="12">
0 0 1 0 0 1 0 0 1 0 0 1
</float_array>
<technique_common>
<accessor count="4" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<!-- 纹理坐标数组 -->
<source id="MESH_TERRAIN-texcoords">
<float_array id="MESH_TERRAIN-texcoords-array" count="12">
-403.51178 -318.999969
-363.51178 -318.999969
-363.51178 -278.999969
-403.51178 -278.999969
-403.51178 -278.999969
-363.51178 -318.999969
</float_array>
<technique_common>
<accessor count="6" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<!-- 顶点定义 -->
<vertices id="MESH_TERRAIN-vertices">
<input semantic="POSITION" source="#MESH_TERRAIN-positions"/>
</vertices>
<!-- 三角形面 -->
<triangles count="2" material="SubMesh0">
<input offset="0" semantic="VERTEX" source="#MESH_TERRAIN-vertices"/>
<input offset="0" semantic="NORMAL" source="#MESH_TERRAIN-normals"/>
<input offset="1" semantic="TEXCOORD" source="#MESH_TERRAIN-texcoords" set="0"/>
<p>3 3 0 0 1 1 2 2 3 3 1 1</p>
</triangles>
</mesh>
</geometry>
数据组织:
positions: XYZ顶点坐标(单位:米)normals: 法线向量(单位向量)texcoords: 纹理UV坐标(S, T)triangles: 三角形索引(支持多重索引)
5.7 Library_visual_scenes(场景库)
组织场景中的节点和几何实例:
xml
<library_visual_scenes>
<visual_scene id="VisualScene" name="VisualScene">
<node id="TERRAIN" name="TERRAIN">
<instance_geometry url="#MESH_TERRAIN">
<bind_material>
<technique_common>
<instance_material symbol="SubMesh0" target="#terrain_grass_color">
<bind_vertex_input semantic="TEX0" input_semantic="TEXCOORD" input_set="0"/>
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<extra>
<technique profile="VISUALS">
<feature_type type="TERRAIN"/>
<coverage_info outside_coverage_area="true"/>
</technique>
</extra>
</node>
</visual_scene>
</library_visual_scenes>
节点类型(通过node id和feature_type识别):
TERRAIN: 地形WATER_[ID]: 水体(feature_type: 507116)ROAD_[ID]: 道路(feature_type: 9999999)PEDESTRIAN_CROSSWALK: 人行横道TURN_ARROW_DECAL: 转向箭头标识
5.8 Extra节点(扩展信息)
包含HERE特有的元数据:
xml
<extra>
<technique profile="VISUALS">
<visual_content_metadata
tile_id="000_000"
tile_width="400"
tile_height="400"
spline_curve_file="CM_USA_CA_SAN_FRANCISCO_000_000_S.DAE"
dtm_integrated="false"/>
<minimum_bounding_rectangle
XMax="-3635.11768"
XMin="-4035.11768"
YMax="-2799.99976"
YMin="-3199.99976"/>
<projection_coordinate_system name="PA_Projection_Coordinate_System">
<geographic_coordinate_system name="GCS_North_American_1983">
<datum name="D_North_American_1983">
<spheroid name="GRS_1980"
semi_major_axis="6378137"
semi_minor_axis="6356752.314245179"/>
</datum>
<prime_meridian name="Greenwich" longitude_value="0"/>
<unit name="Degree" conversion_factor="0.01745329251994328"/>
</geographic_coordinate_system>
<projection name="Transverse_Mercator" unit="Metres" unit_conversion_factor="1">
<parameter name="SCALE_FACTOR" value="1"/>
<parameter name="X_FALSE" value="0"/>
<parameter name="Y_FALSE" value="0"/>
<parameter name="CENTRAL_MERIDIAN" value="-122.4061349773356"/>
<parameter name="LATITUDE_OF_ORIGIN" value="37.78819876292745"/>
</projection>
</projection_coordinate_system>
</technique>
</extra>
6. 坐标系统
6.1 投影坐标系统
类型: 横轴墨卡托投影(Transverse Mercator)
参数:
- 中央子午线 (CENTRAL_MERIDIAN): -122.4061349773356°(旧金山中心经度)
- 原点纬度 (LATITUDE_OF_ORIGIN): 37.78819876292745°(旧金山中心纬度)
- 比例因子 (SCALE_FACTOR): 1
- 东伪偏移 (X_FALSE): 0
- 北伪偏移 (Y_FALSE): 0
- 单位: 米(Metres)
6.2 地理坐标系统
基准 : NAD83(North American Datum 1983)
椭球: GRS 1980
- 长半轴: 6378137 m
- 短半轴: 6356752.314245179 m
6.3 坐标转换
瓦片内的坐标为局部笛卡尔坐标系(米),原点位于投影中心:
- X轴: 向东为正
- Y轴: 向北为正
- Z轴: 向上为正
坐标范围示例 (瓦片 000_000):
- X: [-4035.11768, -3635.11768] (400m宽)
- Y: [-3199.99976, -2799.99976] (400m高)
- Z: 0 及以上(地面和建筑高度)
7. 纹理资源
7.1 纹理目录结构
TEXTURES/HERE/
├── HIGH/ # 高质量纹理
├── LOW/ # 低质量纹理
└── STANDARD/ # 标准质量纹理
└── DAY/
├── ARROWS/ # 道路箭头标识纹理
├── BUILDINGS/ # 建筑纹理
│ ├── B2/ # 2.5D建筑纹理(238个)
│ ├── B3/ # 3D建筑纹理(100个)
│ └── COMMON/ # 通用建筑纹理(18个,主要是屋顶)
└── OTHER/ # 其他纹理
7.2 纹理命名规范
地形纹理 (Terrain, 前缀: USA_L_):
USA_L_GRASS-COLOUR_5.PNG: 草地USA_L_PARK-COLOUR_5.PNG: 公园USA_L_WATER-COLOUR_5.PNG: 水体USA_L_WOODLAND-COLOUR_5.PNG: 林地USA_L_BEACH-COLOUR_5.PNG: 海滩USA_L_CONCRETE-COLOUR_5.PNG: 混凝土USA_L_GOLF-COLOUR_5.PNG: 高尔夫球场USA_L_HOSPITAL-COLOUR_5.PNG: 医院USA_L_CEMETERY-COLOUR_5.PNG: 墓地USA_L_MLU-COLOUR_5.PNG: 混合土地利用
道路纹理 (Road, 前缀: USA_R_):
USA_R_STREET-SOLID.PNG: 道路实线USA_R_STREET-DASHED.PNG: 道路虚线USA_R_STREET-UNMARKED.PNG: 道路无标线USA_R_STREET-STOPLINE.PNG: 停止线USA_R_STREET-CROSSWALK.PNG: 人行横道线USA_R_STREET-LANE-FILLER.PNG: 车道填充USA_R_STREET-INNER-SHOULDER_2.PNG: 内侧路肩USA_R_STREET-RAMP-SOLID.PNG: 匝道实线USA_R_HIGHWAY-*.PNG: 高速公路纹理(同上)USA_R_WALKWAY-*.PNG: 人行道纹理USA_R_CONCRETE.PNG: 混凝土路面USA_T_RAILROAD.PNG: 铁路
箭头纹理 (Arrow, 前缀: ARROW_USA_):
ARROW_USA_STRAIGHT.PNG: 直行ARROW_USA_RIGHT.PNG: 右转ARROW_USA_STRAIGHTRIGHT.PNG: 直行或右转ARROW_USA_RIGHTLEFT.PNG: 左转或右转ARROW_USA_STRAIGHTRIGHTLEFT.PNG: 直行、左转或右转ARROW_USA_UTURN.PNG: 掉头
屋顶纹理 (Roof, 前缀: ROOF_):
ROOF_001_RSG.PNG~ROOF_029_RTB.PNG: 各种屋顶纹理- 命名中间字母含义: R=Roof, S/T/U/Z=类型代码, G/B/R/W=颜色代码
7.3 纹理格式
- 格式: PNG (Portable Network Graphics)
- 色彩模式: ARGB(32位,包含透明通道)
- 分辨率: 根据质量等级不同(HIGH > STANDARD > LOW)
8. 特征类型(Feature Types)
8.1 常见特征类型代码
| 代码 | 名称 | 说明 |
|---|---|---|
| TERRAIN | 地形 | 自然地表,包括草地、公园等 |
| 507116 | 水体 | 河流、湖泊、海洋等水域 |
| 900150 | 公园/草地 | 特定植被覆盖区域 |
| 9999999 | 道路 | 街道、高速公路等道路面 |
| PEDESTRIAN_CROSSWALK | 人行横道 | 斑马线 |
| TURN_ARROW_DECAL | 转向箭头 | 道路转向指示标识 |
8.2 特征属性
每个几何节点的 <extra> 部分包含特征元数据:
xml
<extra>
<technique profile="VISUALS">
<face_PVID>715616466</face_PVID> <!-- 面ID -->
<feature_type type="507116"/> <!-- 特征类型 -->
<coverage_info outside_coverage_area="true"/> <!-- 覆盖信息 -->
</technique>
</extra>
9. 3D地标建筑
9.1 地标结构
地标建筑单独存放在 3D_LANDMARKS/ 目录,每个地标包含:
- 目录: 以建筑名称命名
- 细节层次 :
LOW/: 低细节模型(用于远距离显示)STANDARD/: 标准细节模型(用于中近距离显示)
- 文件 :
.DAE: COLLADA模型文件.PNG: 建筑专用纹理(通常包含建筑立面贴图)
9.2 旧金山地标建筑列表(部分)
著名建筑:
- 泛美金字塔 (TRANSAMERICAPYRAMID)
- 旧金山市政厅 (CITYHALL)
- 渡轮大厦 (FERRYBUILDING)
- 科伊特塔 (COITTOWER)
- 美国银行大厦 (BANKOFAMERICA)
- 销售力量大厦 (SALESFORCTOWR) - 旧金山最高建筑
- 金门剧院 (GRACECATHEDRAL)
- 旧金山现代艺术博物馆 (MUSEUM_MART)
- 39号码头 (PIER39)
- 甲骨文球场 (ORACLE_PARK)
酒店与商业:
- 希尔顿酒店 (HILTON)
- 凯悦酒店 (HYATT)
- 万豪酒店 (MARRIOTT)
- 圣弗朗西斯酒店 (STFRANCIS)
- 马克霍普金斯酒店 (MARKHOPKINS)
- 梅西百货 (MACYS)
会议中心:
- 莫斯康会议中心 (MOSCONE / MOSCONE_NORTH)
- 儿童博物馆 (CHLDRNSMUSAUM)
9.3 地标模型特点
- 独立坐标系: 地标模型通常使用独立的本地坐标系
- 高精度: 比普通瓦片建筑具有更高的几何和纹理精度
- 专用纹理: 每个地标有自己的纹理文件(非共享纹理)
- 多部分模型: 大型建筑可能分为多个部分(PART1, PART2等)
9.4 地标位置信息与POI数据
根据 HERE COLLADA 数据规范(XSD Schema),完整的地标建筑数据集应该包含:
9.4.1 标准数据组成
-
POI 数据库(Points of Interest)
- 格式: SQLite 或其他结构化数据库
- 内容 :
POI_PVID→ 地理坐标(经度、纬度、高度)- 建筑朝向(orientation/rotation)
- 建筑元数据(名称、类型、楼层等)
- 用途: 提供地标建筑的全局定位信息
-
地标 DAE 文件中的 POI_PVID 引用
- 位置 :
<extra><technique profile="VISUALS">节点中 - 格式:
xml<extra> <technique profile="VISUALS"> <aggr_feature_PVID PVID="12345"> <POI_PVID>67890</POI_PVID> <!-- 关联的POI永久版本ID --> </aggr_feature_PVID> </technique> </extra>- 用途: 将地标模型与 POI 数据库中的位置信息关联
- 位置 :
10. 数据使用指南
10.1 数据加载流程
- 确定视口范围: 计算需要显示的地理区域
- 计算瓦片索引: 根据坐标范围确定需要加载的瓦片
- 加载M文件: 解析COLLADA文件,读取地形数据
- 加载B2文件: 解析COLLADA文件,读取建筑数据
- 加载纹理: 根据材质引用加载对应的PNG纹理
- 加载地标: 如果视口包含地标建筑,加载对应的LOD模型
- 构建场景: 将几何、材质、纹理组装成渲染场景
10.2 瓦片索引计算
假设已知投影坐标 (X, Y):
瓦片列索引 XXX = floor((X - X_origin) / tile_width)
瓦片行索引 YYY = floor((Y - Y_origin) / tile_height)
其中:
X_origin,Y_origin: 瓦片网格原点tile_width= 400mtile_height= 400m
10.3 LOD选择策略
根据相机距离选择合适的细节层次:
| 距离范围 | 纹理质量 | 地标LOD | 备注 |
|---|---|---|---|
| > 5000m | LOW | 不加载 | 远景 |
| 1000-5000m | LOW | LOW | 中远景 |
| 500-1000m | STANDARD | LOW | 中景 |
| 100-500m | STANDARD | STANDARD | 近景 |
| < 100m | HIGH | STANDARD | 特写 |
10.4 内存优化建议
- 按需加载: 只加载可见瓦片
- 卸载机制: 及时卸载视口外的瓦片
- 纹理共享: 多个瓦片共享TEXTURES目录中的纹理
- 压缩纹理: 运行时可将PNG转换为GPU压缩格式(DXT、ETC等)
- 几何简化: 根据距离动态简化网格
10.5 坐标转换
投影坐标 → 经纬度 :
使用逆横轴墨卡托变换(需要投影参数)
经纬度 → 投影坐标 :
使用正横轴墨卡托变换
局部坐标 → 世界坐标 :
直接使用瓦片内的坐标(已是米制)
11. 数据质量说明
11.1 几何精度
- 位置精度: 约1米
- 高度精度: 约0.1米
- 瓦片对齐: 相邻瓦片边界可能存在微小间隙或重叠
11.2 覆盖范围
- 地形: 100%覆盖
- 道路: 主要道路完整覆盖
- 建筑: 城市中心区密集,郊区稀疏
- 地标: 精选著名建筑
12. 常见问题
12.1 为什么有些瓦片的M文件很小?
这些瓦片可能位于水域、公园等开阔区域,只包含简单的地形平面。
12.2 如何确定一个瓦片是否包含建筑?
解析M文件,查找 feature_type 不为 TERRAIN 的节点。
12.3 纹理路径中的 "./TEXTURES" 如何解析?
相对于DAE文件所在目录,指向同级的 TEXTURES 目录。
12.4 dtm_integrated="false" 是什么意思?
表示数字地形模型(DTM)未集成到此文件中,地形高度为独立数据。
12.5 为什么坐标是负数?
这是投影坐标系的特点,原点在投影中心(旧金山市中心),负值表示在原点西侧和南侧。
12.6 如何处理跨瓦片的建筑?
大型建筑可能跨越多个瓦片,需要同时加载相邻瓦片并合并显示。
12.7 S文件(Spline)在哪里?
样条曲线文件可能单独提供或不包含在此数据集中,主要用于道路中心线等矢量数据。
13. 技术支持与参考
13.1 相关标准
- COLLADA 1.4.1 规范: https://www.khronos.org/collada/
- NAD83 坐标系: https://epsg.io/4269
- 横轴墨卡托投影: https://epsg.io/9807
13.2 工具推荐
- COLLADA查看器: Blender, Autodesk Maya, FBX Converter
- GIS软件: QGIS, ArcGIS(用于坐标转换)
- 3D渲染引擎: Unity, Unreal Engine, Three.js, Cesium
- C++ 格式读取库 : assimp
13.3 HERE地图平台
- 官网: https://www.here.com/
- 开发者文档: https://developer.here.com/
14. 基于 Assimp 实现的 Viewer
