| @@ -0,0 +1,238 @@ | |||
| # 地图 API 🌎 | |||
| 构建地球表面的地形和图片,展现地球表面的真实状态 | |||
| ## DC.ImageryLayerFactory | |||
| > 地图工厂, 用于创建各类地图瓦片 | |||
| ### example | |||
| ```js | |||
| let baseLayer = DC.ImageryLayerFactory.createAmapImageryLayer({ | |||
| style: 'img', | |||
| }) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| name: '地图', | |||
| iconUrl: '../preview.png', | |||
| }) | |||
| ``` | |||
| ### static methods | |||
| - **_createAmapImageryLayer(options)_** | |||
| 创建高德地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createBaiduImageryLayer(options)_** | |||
| 创建百度地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createGoogleImageryLayer(options)_** | |||
| 创建谷歌地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createTdtImageryLayer(options)_** | |||
| 创建天地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createTencentImageryLayer(options)_** | |||
| 创建腾讯地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createArcGisImageryLayer(options)_** | |||
| 创建 Arcgis 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [ArcGis](http://resource.dvgis.cn/cesium-docs/ArcGisMapServerImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createSingleTileImageryLayer(options)_** | |||
| 创建单图片地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [Single](http://resource.dvgis.cn/cesium-docs/SingleTileImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createWMSImageryLayer(options)_** | |||
| 创建 WMS 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [WMS](http://resource.dvgis.cn/cesium-docs/WebMapServiceImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createWMTSImageryLayer(options)_** | |||
| 创建 WMTS 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [WMTS](http://resource.dvgis.cn/cesium-docs/WebMapTileServiceImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createXYZImageryLayer(options)_** | |||
| 创建 X/Y/Z 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [X/Y/Z](http://resource.dvgis.cn/cesium-docs/UrlTemplateImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createCoordImageryLayer(options)_** | |||
| 创建坐标系地图 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createGridImageryLayer(options)_** | |||
| 创建网格地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [Grid](http://resource.dvgis.cn/cesium-docs/GridImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createMapboxImageryLayer(options)_** | |||
| 创建 Mapbox 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [Mapbox](http://resource.dvgis.cn/cesium-docs/MapboxImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createMapboxStyleImageryLayer(options)_** | |||
| 创建 Mapbox 样式地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [Mapbox Style](http://resource.dvgis.cn/cesium-docs/MapboxStyleImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>` | |||
| - **_createTMSImageryLayer(options)_** | |||
| 创建 TMS 地图 | |||
| - 参数 | |||
| - `{Object} options`:属性,详情参考 [TMS](http://resource.dvgis.cn/cesium-docs/TileMapServiceImageryProvider.html#.ConstructorOptions) | |||
| - 返回值 `Promise<baseLayer>l` | |||
| - **_createImageryLayer(type, options)_** | |||
| 根据类型创建地图 | |||
| - 参数 | |||
| - `{String} type`:类型,参考:DC.ImageryType | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<baseLayer>` | |||
| ```json | |||
| //属性参数(可选) | |||
| { | |||
| "url": "", //地址:arcgis/wmts/xyx/single 有效 | |||
| "style": "img", //样式:img、elec、ter。百度:normal、middlenight、dark,腾讯:img,1、4 | |||
| "key": "", //认证,仅天地图有效 | |||
| "subdomains": [], | |||
| "crs":"WGS84",// 坐标系: WGS84 、BD09 、GCJ02,仅百度、高德有效 | |||
| "protocol":null,// http、https | |||
| "tilingScheme":null, // 瓦片切片模式:GeographicTilingScheme , WebMercatorTilingScheme | |||
| "rectangle": { | |||
| "west": 0, | |||
| "south": 0, | |||
| "east": 0, | |||
| "north": | |||
| } // 瓦片范围,有west,south,east,north 单位为: 弧度,使用经纬度时需将转为弧度 | |||
| } | |||
| ``` | |||
| ## DC.TerrainFactory | |||
| > 地形工厂, 用于创建地形 | |||
| ### example | |||
| ```js | |||
| let terrain = DC.TerrainFactory.createUrlTerrain({ | |||
| url: '****/***', | |||
| }) | |||
| viewer.addTerrain(terrain) | |||
| ``` | |||
| ### static methods | |||
| - **_createEllipsoidTerrain()_** | |||
| 创建默认地形 | |||
| returns `Promise<terrain>` | |||
| - **_createUrlTerrain(options)_** | |||
| 根据 url 创建地形 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<terrain>` | |||
| - **_createGoogleTerrain(options)_** | |||
| 创建谷歌地形 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<terrain>` | |||
| - **_createArcgisTerrain(options)_** | |||
| 创建 Arcgis 地形 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<terrain>` | |||
| - **_createVRTerrain(options)_** | |||
| 创建 VR 地形 | |||
| - 参数 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<terrain>` | |||
| - **_createTerrain(type,options)_** | |||
| 根据类型创建地形 | |||
| - 参数 | |||
| - `{String} type`:类型,参考:DC.TerrainType | |||
| - `{Object} options`:属性 | |||
| - 返回值 `Promise<terrain>` | |||
| ```json | |||
| //属性参数(可选) | |||
| { | |||
| "url": "" // 服务地址 | |||
| } | |||
| ``` | |||
| @@ -0,0 +1,178 @@ | |||
| # 工具 API 🌎 | |||
| 三维场景中的辅助工具,方便在场景中进行各种标绘、测量、位置编辑 | |||
| ## DC.Plot | |||
| > 标绘类 | |||
| ### example | |||
| ```js | |||
| let plot = new DC.Plot(viewer, {}) | |||
| plot.draw(DC.OverlayType.POINT, (overlay) => {}, {}) | |||
| ``` | |||
| ### creation | |||
| - **_constructor(viewer,[options])_** | |||
| 构造函数 | |||
| - 参数 | |||
| - `{Viewer} viewer`:场景 | |||
| - `{Object} options`:属性 | |||
| - 返回值 `plot` | |||
| ```json | |||
| //属性参数(可选) | |||
| { | |||
| "icon_center": "**.png", // 自定义的中心点图标 | |||
| "icon_anchor": "**.png", //自定义的锚点图标 | |||
| "icon_midAnchor": "**.png", //自定义的中心锚点图标 | |||
| "icon_size": [12, 12],//自定义的中心锚点大小 | |||
| "clampToModel":false // 点位是否获取模型表面坐标 | |||
| } | |||
| ``` | |||
| ### methods | |||
| - **_draw(type,callback,[style],[clampToModel])_** | |||
| 标绘 | |||
| - 参数 | |||
| - `{String} type`:覆盖物类型,参照 [OverlayType](../base/#overlaytype) | |||
| - `{Function} callback`:标绘完成的回调函数,参数为覆盖物 | |||
| - `{Object} style`:标绘的覆盖物样式设置 | |||
| - `{Boolean} clampToModel`:点位是否获取模型表面坐标 | |||
| - 返回值 `this` | |||
| - **_edit(overlay,callback,[clampToModel])_** | |||
| 编辑 | |||
| - 参数 | |||
| - `{Overlay} overlay`:覆盖物 | |||
| - `{Function} callback`:编辑完成的回调函数,参数为覆盖物 | |||
| - `{Boolean} clampToModel`:点位是否获取模型表面坐标 | |||
| - 返回值 `this` | |||
| - **_stop()_** | |||
| 停止 | |||
| - 返回值 `this` | |||
| ## DC.Measure | |||
| > 三维空间分析 | |||
| ### example | |||
| ```js | |||
| let measure = new DC.Measure(viewer) | |||
| ``` | |||
| ### creation | |||
| - **_constructor(viewer)_** | |||
| 构造函数 | |||
| - 参数 | |||
| - `{Viewer} viewer`:场景 | |||
| - 返回值 `measure` | |||
| ### methods | |||
| - **_angle([options])_** | |||
| 角度 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_area([options])_** | |||
| 面积 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_areaSurface([options])_** | |||
| 表面面积 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_distance([options])_** | |||
| 距离 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_distanceSurface([options])_** | |||
| 表面距离 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_heading([options])_** | |||
| 偏航角 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_height([options])_** | |||
| 高度 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_triangleHeight([options])_** | |||
| 三角测量 | |||
| - 参数 | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| - **_activate(type,[options])_** | |||
| 根据类型分析 | |||
| - 参数 | |||
| - `{String} type`:分析类型,参考 `DC.MeasureType`, | |||
| - `{Object} options`:配置 | |||
| - 返回值 `this` | |||
| ```json | |||
| //属性参数(可选) | |||
| { | |||
| "icon_center": "**.png", // 自定义的中心点图标 | |||
| "icon_anchor": "**.png", //自定义的锚点图标 | |||
| "icon_midAnchor": "**.png", //自定义的中心锚点图标 | |||
| "icon_size": [12, 12], //自定义的中心锚点大小 | |||
| "clampToModel": false //点位是否获取模型表面坐标 | |||
| } | |||
| ``` | |||
| - **_deactivate()_** | |||
| 释放空间分析 | |||
| - 返回值 `this` | |||
| @@ -0,0 +1,89 @@ | |||
| # 技术扩展 | |||
| ## WebGL | |||
| WebGL 是一种 JavaScript API,用于在不使用插件的情况下在任何兼容的网页浏览器中呈现交互式 2D 和 3D 图形。WebGL 完全集成到浏览器的所有网页标准中,可将影像处理和效果的 GPU 加速使用方式当做网页 Canvas 的一部分。WebGL 元素可以加入其他 HTML 元素之中并与网页或网页背景的其他部分混合。WebGL 程序由 JavaScript 编写的句柄和 OpenGL Shading Language( **`GLSL`** )编写的着色器代码组成。 | |||
| ## 三维数据格式 | |||
| **`glb/gltf`** | |||
| GLTF 代表 Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为 Web 上的 3D 对象标准。它由 OpenGL 和 Vulkan 背后的 3D 图形标准组织 Khronos 所定义,这使得 GLTF 基本上成为 3D 模型的 JPG 格式:Web 导出的通用标准。 | |||
| **`OSGB`** | |||
| 倾斜摄影三维模型数据的组织方式一般是二进制存贮的、带有嵌入式链接纹理数据(.jpg)的 OSGB 格式。Open Scene Gragh Binary 是 OSGB 的全称,这里的 Binary 是二进制的意思。此类数据文件碎、数量多、高级别金字塔文件大等特点难以形成高效、标准的网络发布方案,从而无法实现不同地域、不同部门之间数据共享。 | |||
| **`3d-tiles`** | |||
| 3D Tiles 是用于流式传输大规模异构 3D 地理空间数据集的开放规范。3D Tiles 数据可以通过 shp、osgb(倾斜摄影)、3dmax 等数据生成。 | |||
| **`GeoJson`** | |||
| GeoJSON 是一种对各种地理数据结构进行编码的格式,基于 Javascript 对象表示法的地理空间信息数据交换格式。GeoJSON 对象可以表示几何、特征或者特征集合。GeoJSON 支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON 里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 | |||
| **`kml/czml`** | |||
| KML/CZML 是一个 JSON 格式的数据,描述 time-dynamic(时间、动态)图形场景,它描述了线、点、广告牌(标记)、模型、和其他图形原语,并指定他们如何随时间变化。 | |||
| :::tip | |||
| 数据转换可借助于 [CesiumLab](http://www.cesiumlab.com) 或者其他一些转换工具。[查看大图](http://dc.dvgis.cn/examples/assets/images/base/data_transform.png) | |||
| ::: | |||
| <img src="http://dc.dvgis.cn/examples/assets/images/base/data_transform.png" style="width:100%;height:500px"> | |||
| ## 三维坐标 | |||
| **`世界坐标(Cartesian3)`** | |||
| 笛卡尔坐标,以椭球中心为原点的空间直角坐标系中的一个点的坐标。 | |||
| **`地理坐标(Cartographic)`** | |||
| 地理坐标系,坐标原点在椭球的质心。 | |||
| 经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。东正西负。 | |||
| 纬度 :参考椭球面上某点的法线与赤道平面的夹角。北正南负。 | |||
| **`地理坐标(Position)`** | |||
| 地理坐标系,坐标原点在椭球的质心。`DC扩展` | |||
| 经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。东正西负。 | |||
| 纬度 :参考椭球面上某点的法线与赤道平面的夹角。北正南负。 | |||
| 高度 :和地球表面的距离 | |||
| **`屏幕坐标(Cartesian2)`** | |||
| 浏览器窗口坐标或者鼠标事件中 windowPosition | |||
| :::tip | |||
| 框架中可以使用 `DC.T` 进行各类坐标的转换 | |||
| ::: | |||
| ## 地理坐标系 | |||
| `WGS84` | |||
| 一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的 Z 轴指向 BIH (国际时间服务机构)1984.O 定义的协议地球极(CTP)方向,X 轴指向 BIH 1984.0 的零子午面和 CTP 赤道的交点,Y 轴与 Z 轴、X 轴垂直构成右手坐标系,称为 1984 年世界大地坐标系统。 | |||
| `CGCS2000` | |||
| 2000 中国大地坐标系(China Geodetic Coordinate System 2000,CGCS2000),又称之为 2000 国家大地坐标系,是中国新一代大地坐标系,21 世纪初已在中国正式实施。其与 `WGS84` 相差不大,国内天地图就是采用该坐标系。 | |||
| `GCJ02` | |||
| GCJ-02 是由中国国家测绘局(G 表示 Guojia 国家,C 表示 Cehui 测绘,J 表示 Ju 局)制订的地理信息系统的坐标系统。它其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被大家称为“火星坐标系统”。 | |||
| `BD09` | |||
| BD09 经纬度投影属于百度坐标系,它是在标准经纬度的基础上进行 GCJ-02 加偏之后,再加上百度自身的加偏算法,也就是在标准经纬度的基础之上进行了两次加偏。 | |||
| [参考](http://www.rivermap.cn/docs/show-1829.html) | |||
| :::tip | |||
| 框架中可以使用 `DC.CoordTransform` 进行各类坐标系的转换 | |||
| ::: | |||
| **** | |||