iTwinjs GeoLocation
原文链接
iTwin GeoLocationhttps://www.itwinjs.org/learning/geolocation/
iModel 的地理定位属性会直接影响其坐标转换方式:
非地理定位(Not GeoLocated)
如果 iModel 没有地理定位,其 IModel.ecefLocation 属性为 undefined,无法进行地理坐标转换。
线性地理定位(Linear GeoLocation)
对于工厂、建筑、变电站或园区等结构的 iModel,z 轴通常表示高于地面或其他基准点的高度。此时,Z=0 表示一个无限平面,不考虑地球曲率(即 z 方向的线不一定指向地球中心)。这类 iModel 只适用于较小区域(通常几公里),地球曲率影响可以忽略。笛卡尔坐标 {x,y,z} 到大地坐标 {lat,long,height} 的转换通过某一点的线性变换实现。此类 iModel 会有 ECEF 位置,但没有地理坐标系统(GCS),只能通过线性变换进行坐标转换。Bentley Open Building Designer、OpenPlant、Revit 等应用会生成线性地理定位的 iModel。
投影地理定位(Projected GeoLocation)
对于基于测绘数据创建的 iModel,z 轴通常表示高于地表(如海平面、地形、椭球面等)的高度。因此,iModel 中的 Z=0 平面投影为地球椭球面,z 方向的线始终指向地球中心(椭球质心)。笛卡尔坐标 {x,y,z} 到大地坐标 {lat,long,height} 的转换通过非线性投影实现,相关描述以地理坐标系统(GCS)形式存储在 iModel 中。Bentley Map、OpenRoads、Civil 3D、GIS 等应用会生成投影地理定位的 iModel。此类 iModel 会有有效的 ECEF 位置和地理坐标系统(GCS),但这种近似在远离项目中心时误差会增大,尤其当项目范围超过 2 公里时,误差可能较大。
实际中的应用
黑色是不规则的一块区域,测绘的员工拿到GIS信息,给测绘局,测绘局给局部坐标,然后设计院根据局部坐标出图
上面的项目整体就是只有一个地理坐标基准点,其余的都在同一个局部坐标系中(用于偏移和旋转)