You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

overlay-primitive.md 17KB

пре 2 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  1. # 图元要素 🌎
  2. ## DC.PointPrimitive
  3. > 点位图元,继承于[Overlay](./overlay-vector#dc-overlay)
  4. ### example
  5. ```js
  6. let position = new DC.Position(120, 20)
  7. let point = new DC.PointPrimitive(position)
  8. point.setStyle({
  9. pixelSize: 10,
  10. })
  11. ```
  12. ### creation
  13. - **_constructor(position)_**
  14. 构造函数
  15. - 参数
  16. - `{Position|Number|String|Object} position`:坐标
  17. - 返回值 `point`
  18. ### properties
  19. - `{Position|Number|String|Object} position`:坐标
  20. ### methods
  21. - **_setStyle(style)_**
  22. 设置样式
  23. - 参数
  24. - `{Object} style`:样式,详情参考:[PointGraphics](http://resource.dvgis.cn/cesium-docs/PointGraphics.html)
  25. - 返回值 `this`
  26. ```json
  27. // 样式参数(可选)
  28. {
  29. "pixelSize": 1, //像素大小
  30. "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  31. "color": DC.Color.WHITE, //颜色
  32. "outlineColor": DC.Color.WHITE, //边框颜色
  33. "outlineWidth": 0, //边框大小,
  34. "scaleByDistance": {
  35. "near": 0, //最近距离
  36. "nearValue": 0, //最近距离值
  37. "far": 1, //最远距离值
  38. "farValue": 0 //最远距离值
  39. }, //根据距离设置比例
  40. "translucencyByDistance": {
  41. "near": 0, //最近距离
  42. "nearValue": 0, //最近距离值
  43. "far": 1, //最远距离值
  44. "farValue": 0 //最远距离值
  45. }, //根据距离设置透明度
  46. "distanceDisplayCondition": {
  47. "near": 0, //最近距离
  48. "far": Number.MAX_VALUE //最远距离
  49. }, //根据距离设置可见
  50. "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
  51. }
  52. ```
  53. ## DC.BillboardPrimitive
  54. > 图标图元,继承于[Overlay](./overlay-vector#dc-overlay)
  55. ### example
  56. ```js
  57. let position = new DC.Position(120, 20)
  58. let billboard = new DC.BillboardPrimitive(position, '***/**.png')
  59. billboard.size = [20, 20]
  60. ```
  61. ### creation
  62. - **_constructor(position,icon)_**
  63. 构造函数
  64. - 参数
  65. - `{Position|Number|String|Object} position`:坐标
  66. - `{String} icon`:图标地址
  67. - 返回值 `billboard`
  68. ### properties
  69. - `{Position} position`:坐标
  70. - `{String} icon`:图标地址
  71. - `{Array<Number>} size`:图标大小
  72. ### methods
  73. - **_setStyle(style)_**
  74. 设置样式
  75. - 参数
  76. - `{Object} style`:样式,详情参考:[Billboard](http://resource.dvgis.cn/cesium-docs/Billboard.html)
  77. - 返回值 `this`
  78. ```json
  79. // 样式参数(可选)
  80. {
  81. "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  82. "scale": 1, //比例
  83. "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  84. "rotation": 0, //旋转角度
  85. "translucencyByDistance": {
  86. "near": 0, //最近距离
  87. "nearValue": 0, //最近距离值
  88. "far": 1, //最远距离值
  89. "farValue": 0 //最远距离值
  90. }, //根据距离设置透明度
  91. "scaleByDistance": {
  92. "near": 0, //最近距离
  93. "nearValue": 0, //最近距离值
  94. "far": 1, //最远距离值
  95. "farValue": 0 //最远距离值
  96. }, //根据距离设置比例
  97. "distanceDisplayCondition": {
  98. "near": 0, //最近距离
  99. "far": Number.MAX_VALUE //最远距离
  100. }, //根据距离设置可见
  101. "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
  102. }
  103. ```
  104. ## DC.BounceBillboardPrimitive
  105. > 跳动图标图元,继承于[BillboardPrimitive](#dc-billboardprimitive)
  106. ### example
  107. ```js
  108. let position = new DC.Position(120, 20)
  109. let billboard = new DC.BounceBillboardPrimitive(position, '***/**.png')
  110. billboard.size = [20, 20]
  111. ```
  112. ### creation
  113. - **_constructor(position,icon)_**
  114. 构造函数
  115. - 参数
  116. - `{Position|Number|String|Object} position`:坐标
  117. - `{String} icon`:图标地址
  118. - 返回值 `billboard`
  119. ### methods
  120. - **_setStyle(style)_**
  121. 设置样式
  122. - 参数
  123. - `{Object} style`:样式,详情参考:[Billboard](http://resource.dvgis.cn/cesium-docs/Billboard.html)
  124. - 返回值 `this`
  125. ```json
  126. // 样式参数(可选)
  127. {
  128. "maxOffsetY": 10, //垂直方向最大平移量
  129. "offsetAmount": 0.1 //垂直方向每帧平移量
  130. // 其他样式参考 BillboardPrimitive 样式
  131. }
  132. ```
  133. ## DC.LabelPrimitive
  134. > 标签图元,继承于[Overlay](./overlay-vector#dc-overlay)
  135. ### example
  136. ```js
  137. let position = new DC.Position(120, 20)
  138. let Label = new DC.LabelPrimitive(position, 'test')
  139. ```
  140. ### creation
  141. - **_constructor(position,text)_**
  142. 构造函数
  143. - 参数
  144. - `{Position|Number|String|Object} position`:坐标
  145. - `{String} text`:文本
  146. - 返回值 `label`
  147. ### properties
  148. - `{Position|Number|String|Object} position`:坐标
  149. - `{String} text`:文本
  150. ### methods
  151. - **_setStyle(style)_**
  152. 设置样式
  153. - 参数
  154. - `{Object} style`:样式,详情参考:[Label](http://resource.dvgis.cn/cesium-docs/Label.html)
  155. - 返回值 `this`
  156. ```json
  157. // 样式参数(可选)
  158. {
  159. "font": "30px sans-serif", // CSS 字体设置
  160. "scale": 1, //比例
  161. "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  162. "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  163. "showBackground": false, //是否显示背景
  164. "backgroundColor": DC.Color.BLACK, //背景颜色
  165. "backgroundPadding": { "x": 0, "y": 0 }, //背景间隙
  166. "fillColor": DC.Color.BLACK, //文字颜色
  167. "outlineColor": DC.Color.WHITE, //边框颜色
  168. "outlineWidth": 0, //边框大小,
  169. "scaleByDistance": {
  170. "near": 0, //最近距离
  171. "nearValue": 0, //最近距离值
  172. "far": 1, //最远距离值
  173. "farValue": 0 //最远距离值
  174. }, //根据距离设置比例
  175. "translucencyByDistance": {
  176. "near": 0, //最近距离
  177. "nearValue": 0, //最近距离值
  178. "far": 1, //最远距离值
  179. "farValue": 0 //最远距离值
  180. }, //根据距离设置透明度
  181. "distanceDisplayCondition": {
  182. "near": 0, //最近距离
  183. "far": Number.MAX_VALUE //最远距离
  184. }, //根据距离设置可见
  185. "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
  186. }
  187. ```
  188. ## DC.BounceLabelPrimitive
  189. > 跳动文本图元,继承于[LabelPrimitive](#dc-labelprimitive)
  190. ### example
  191. ```js
  192. let position = new DC.Position(120, 20)
  193. let label = new DC.BounceLabelPrimitive(position, 'test')
  194. ```
  195. ### creation
  196. - **_constructor(position,text)_**
  197. 构造函数
  198. - 参数
  199. - `{Position|Number|String|Object} position`:坐标
  200. - `{String} text`:文本
  201. - 返回值 `label`
  202. ### methods
  203. - **_setStyle(style)_**
  204. 设置样式
  205. - 参数
  206. - `{Object} style`:样式,详情参考:[Label](http://resource.dvgis.cn/cesium-docs/Label.html)
  207. - 返回值 `this`
  208. ```json
  209. // 样式参数(可选)
  210. {
  211. "maxOffsetY": 10, //垂直方向最大平移量
  212. "offsetAmount": 0.1 //垂直方向每帧平移量
  213. // 其他样式参考 LabelPrimitive 样式
  214. }
  215. ```
  216. ## DC.PolylinePrimitive
  217. > 线图元,继承于[Overlay](./overlay-vector#dc-overlay)
  218. ### example
  219. ```js
  220. let polyline = new DC.PolylinePrimitive('120,20;120,30')
  221. polyline.setStyle({
  222. width: 10,
  223. })
  224. ```
  225. ### creation
  226. - **_constructor(positions)_**
  227. 构造函数
  228. - 参数
  229. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  230. - 返回值 `polyline`
  231. ### properties
  232. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  233. - `{Position} center`:中心点 **_`readonly`_**
  234. - `{Number} distance`:距离,单位:米 **_`readonly`_**
  235. ### methods
  236. - **_setStyle(style)_**
  237. 设置样式
  238. - 参数
  239. - `{Object} style`:样式,详情参考:[Polyline](http://resource.dvgis.cn/cesium-docs/Polyline.html)
  240. - 返回值 `this`
  241. ```json
  242. // 样式参数(可选)
  243. {
  244. "width": 1, //线宽
  245. "material": DC.Color.WHITE, //材质
  246. "clampToGround": false, //是否贴地
  247. "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  248. "distanceDisplayCondition": {
  249. "near": 0, //最近距离
  250. "far": Number.MAX_VALUE //最远距离
  251. }, //根据距离设置可见
  252. "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  253. "zIndex": 0 //层级
  254. }
  255. ```
  256. ## DC.TrailLinePrimitive
  257. > 轨迹线图元,继承于[Overlay](./overlay-vector#dc-overlay)
  258. ### example
  259. ```js
  260. let trailLinePrimitive = new DC.TrailLinePrimitive('120,20;120,30;122,30')
  261. ```
  262. ### creation
  263. - **_constructor(positions,[asynchronous])_**
  264. 构造函数
  265. - 参数
  266. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  267. - 返回值 `trailLine`
  268. ### properties
  269. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  270. ### methods
  271. - **_setStyle(style)_**
  272. 设置样式
  273. - 参数
  274. - `{Object} style`:样式
  275. - 返回值 `this`
  276. ```json
  277. // 样式参数(可选)
  278. {
  279. "speed": 5, //速度
  280. "color": DC.Color.WHITE //颜色
  281. }
  282. ```
  283. ## DC.FlowLinePrimitive
  284. > 流动线图元,继承于[Overlay](./overlay-vector#dc-overlay)
  285. ### example
  286. ```js
  287. let flowLinePrimitive = new DC.FlowLinePrimitive('120,20;120,30;122,30')
  288. ```
  289. ### creation
  290. - **_constructor(positions,[asynchronous])_**
  291. 构造函数
  292. - 参数
  293. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  294. - 返回值 `flowLine`
  295. ### properties
  296. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  297. ### methods
  298. - **_setStyle(style)_**
  299. 设置样式
  300. - 参数
  301. - `{Object} style`:样式
  302. - 返回值 `this`
  303. ```json
  304. // 样式参数(可选)
  305. {
  306. "speed": 5, //速度
  307. "color": DC.Color.WHITE, //颜色
  308. "percent": 0.3, // 比例
  309. "gradient": 0.1 // 透明程度
  310. }
  311. ```
  312. ## DC.ModelPrimitive
  313. > 模型图元,继承于[Overlay](./overlay-vector#dc-overlay)
  314. ### example
  315. ```js
  316. let position = new DC.Position(120, 20)
  317. let model = new DC.ModelPrimitive(position, '**/**.glb')
  318. ```
  319. ### creation
  320. - **_constructor(position, modelUrl)_**
  321. 构造函数
  322. - 参数
  323. - `{Position|Number|String|Object} position`:坐标
  324. - `{String} modelUrl`:模型地址
  325. - 返回值 `model`
  326. ### properties
  327. - `{Position|Number|String|Object} position`:坐标
  328. - `{String} modelUrl`:模型地址
  329. - `{Promise} readyPromise`:加载完成后的异步函数 **_`readonly`_**
  330. ### methods
  331. - **_getMaterial(name)_**
  332. 设置材质
  333. - 参数
  334. - `{String} name`:节点名称
  335. - 返回值 `modelMaterial`
  336. - **_getMesh(name)_**
  337. 获取三角网
  338. - 参数
  339. - `{String} name`:节点名称
  340. - 返回值 `modelMesh`
  341. - **_getNode(name)_**
  342. 获取节点
  343. - 参数
  344. - `{String} name`:节点名称
  345. - 返回值 `modelNode`
  346. - **_getNodes()_**
  347. 获取所有节点
  348. - 返回值 `array<ModelNode>`
  349. - **_setStyle(style)_**
  350. 设置样式
  351. - 参数
  352. - `{Object} style`:样式,详情参考:[Model](http://resource.dvgis.cn/cesium-docs/Model.html)
  353. - 返回值 `this`
  354. ```json
  355. // 样式参数(可选)
  356. {
  357. "scale": 1, //比例
  358. "minimumPixelSize": 0, //指定模型的最小像素大小,而不考虑缩放
  359. "maximumScale": 0, //指定模型的最大比例
  360. "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  361. "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  362. "silhouetteColor": DC.Color.RED, //轮廓颜色
  363. "silhouetteSize": 0, //轮廓宽度
  364. "lightColor": DC.Color.RED, //模型着色时指定灯光颜色
  365. "distanceDisplayCondition": {
  366. "near": 0, //最近距离
  367. "far": Number.MAX_VALUE //最远距离
  368. } //根据距离设置可见
  369. }
  370. ```
  371. ## DC.DiffuseWallPrimitive
  372. > 扩散墙图元,继承于[Overlay](./overlay-vector#dc-overlay)
  373. ### example
  374. ```js
  375. let position = new DC.Position(120, 20)
  376. let wall = new DC.DiffuseWallPrimitive(position, 2000, 1000)
  377. ```
  378. ### creation
  379. - **_constructor(center, radius, height)_**
  380. 构造函数
  381. - 参数
  382. - `{Position|Number|String|Object} center`:圆心
  383. - `{Number} radius`:半径
  384. - `{Number} height`:高度
  385. - 返回值 `wall`
  386. ### properties
  387. - `{Position|Number|String|Object} center`:圆心
  388. - `{Number} radius`:半径
  389. - `{Number} height`:高度
  390. ### methods
  391. - **_setStyle(style)_**
  392. 设置样式
  393. - 参数
  394. - `{Object} style`:样式
  395. - 返回值 `this`
  396. ```json
  397. // 样式参数(可选)
  398. {
  399. "minRadius": 10, // 动画最小半径
  400. "minHeight": 30, // 动画最小高度
  401. "color": DC.Color.RED, // 墙体颜色
  402. "slices": 128, //边数
  403. "speed": 10 //速度
  404. }
  405. ```
  406. ## DC.ElecEllipsoidPrimitive
  407. > 电弧球图元,继承于[Overlay](./overlay-vector#dc-overlay)
  408. ### example
  409. ```js
  410. let elecEllipsoid = new DC.ElecEllipsoidPrimitive('120,20',{x:2000,y:2000:z:2000})
  411. ```
  412. ### creation
  413. - **_constructor(center,radius)_**
  414. 构造函数
  415. - 参数
  416. - `{Position|Number|String|Object} center`:球心
  417. - `{Object} radius`:球半径
  418. - 返回值 `elecEllipsoid`
  419. ### properties
  420. - `{Position|Number|String|Object} center`:球心
  421. - `{Object} radius`:球半径
  422. ### methods
  423. - **_setStyle(style)_**
  424. 设置样式
  425. - 参数
  426. - `{Object} style`:样式
  427. - 返回值 `this`
  428. ```json
  429. // 样式参数(可选)
  430. {
  431. "speed": 5, //速度
  432. "color": DC.Color.WHITE //颜色
  433. }
  434. ```
  435. ## DC.LightCylinderPrimitive
  436. > 光柱要素,继承于[Overlay](./overlay-vector#dc-overlay)
  437. ### example
  438. ```js
  439. let position = new DC.Position(120, 20)
  440. let cylinder = new DC.LightCylinderPrimitive(position, 1000, 1, 100)
  441. ```
  442. ### creation
  443. - **_constructor(position, length, topRadius, bottomRadius)_**
  444. 构造函数
  445. - 参数
  446. - `{Position|Number|String|Object} position`:坐标
  447. - `{Number} length`:长度
  448. - `{Number} topRadius`:上半径
  449. - `{Number} bottomRadius`:下半径
  450. - 返回值 `cylinder`
  451. ### properties
  452. - `{Position} position`:坐标
  453. - `{Number} length`:长度
  454. - `{Number} topRadius`:上半径
  455. - `{Number} bottomRadius`:下半径
  456. ### methods
  457. - **_setStyle(style)_**
  458. 设置样式
  459. - 参数
  460. - `{Object} style`:样式
  461. - 返回值 `this`
  462. ```json
  463. // 样式参数(可选)
  464. {
  465. "color": DC.Color.BLACK //颜色
  466. }
  467. ```
  468. ## DC.ScanCirclePrimitive
  469. > 扫描圆图元,继承于[Overlay](./overlay-vector#dc-overlay)
  470. ### example
  471. ```js
  472. let scanCirclePrimitive = new DC.ScanCirclePrimitive('120,20', 1000)
  473. ```
  474. ### creation
  475. - **_constructor(position,radius)_**
  476. 构造函数
  477. - 参数
  478. - `{String|Position|Array|Object} position`:圆心
  479. - `{Number} radius`:半径
  480. - 返回值 `scanCircle`
  481. ### properties
  482. - `{String|Position|Array|Object} position`:圆心
  483. - `{Number} radius`:半径
  484. ### methods
  485. - **_setStyle(style)_**
  486. 设置样式
  487. - 参数
  488. - `{Object} style`:样式
  489. - 返回值 `this`
  490. ```json
  491. // 样式参数(可选)
  492. {
  493. "speed": 5, //速度
  494. "color": DC.Color.WHITE //颜色
  495. }
  496. ```
  497. ## DC.WaterPrimitive
  498. > 水面图元,继承于[Overlay](./overlay-vector#dc-overlay)
  499. ### example
  500. ```js
  501. let water = new DC.WaterPrimitive('120,20;120,30;122,30')
  502. water.setStyle({
  503. baseWaterColor: DC.Color.AQUA.withAlpha(0.3),
  504. normalMap: 'examples/images/icon/waterNormalsSmall.jpg',
  505. frequency: 1000.0,
  506. animationSpeed: 0.01,
  507. amplitude: 10,
  508. specularIntensity: 10,
  509. })
  510. ```
  511. ### creation
  512. - **_constructor(positions,[holes])_**
  513. 构造函数
  514. - 参数
  515. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  516. - `{Array<Position|Number|String|Object>} holes`:洞面坐标
  517. - 返回值 `water`
  518. ### properties
  519. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  520. ### methods
  521. - **_setStyle(style)_**
  522. 设置样式
  523. - 参数
  524. - `{Object} style`:样式,详情参考:[PolygonGraphics](http://resource.dvgis.cn/cesium-docs/PolygonGraphics.html)
  525. - 返回值 `this`
  526. ```json
  527. // 样式参数(可选)
  528. {
  529. "height": 1, //高度
  530. "extrudedHeight": 0, //拉升高度
  531. "stRotation": 0, //旋转角度
  532. "outline": false, //是否显示边框
  533. "closeTop": true, //顶面是否闭合
  534. "closeBottom": true, //底面是否闭合
  535. "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  536. "baseWaterColor": DC.Color.WHITE, // 水体颜色
  537. "blendColor": DC.Color.WHITE, // 混合颜色
  538. "specularMap": "", // 镜面图
  539. "normalMap": "", // 法线图
  540. "frequency": 1000, //波纹数量
  541. "animationSpeed": 0.03, // 动画速度
  542. "amplitude": 10, //水波振幅
  543. "specularIntensity": 10 //镜面反射强度
  544. }
  545. ```
  546. ## DC.VideoPrimitive
  547. > 视频图元,继承于[Overlay](./overlay-vector#dc-overlay)
  548. ### example
  549. ```js
  550. let videoEl = new document.getElementById('video')
  551. let videoPrimitive = new DC.VideoPrimitive('120,20;120,30;122,30', videoEl)
  552. ```
  553. ### creation
  554. - **_constructor(positions,video)_**
  555. 构造函数
  556. - 参数
  557. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  558. - `{Element} video`:视频节点
  559. - 返回值 `videoPrimitive`
  560. ### properties
  561. - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  562. - `{Element} video`:视频节点