Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

S3MLayer.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * @Author: Caven
  3. * @Date: 2022-02-20 13:46:53
  4. */
  5. import State from '@dc-modules/state/State'
  6. import { Layer } from '@dc-modules/layer'
  7. import S3MTilesLayer from 's3m-lib/S3MTiles/S3MTilesLayer'
  8. import ClusterLayer from '../layer/type/ClusterLayer'
  9. class S3MLayer extends Layer {
  10. constructor(id, url, options = {}) {
  11. super(id)
  12. this._url = url
  13. this._options = options
  14. }
  15. get type() {
  16. return Layer.getLayerType('s3m')
  17. }
  18. _onAdd(viewer) {
  19. this._viewer = viewer
  20. delete this._options['context']
  21. delete this._options['url']
  22. this._delegate = new S3MTilesLayer({
  23. context: this._viewer.scene.context,
  24. url: this._url,
  25. ...this._options
  26. })
  27. this._viewer.scene.primitives.add(this._delegate)
  28. this._addedHook && this._addedHook()
  29. this._state = State.ADDED
  30. }
  31. _onRemove() {
  32. if (!this._delegate) {
  33. return
  34. }
  35. this._viewer.scene.primitives.remove(this._delegate)
  36. this._removedHook && this._removedHook()
  37. this._state = State.REMOVED
  38. }
  39. }
  40. Layer.registerType('s3m')
  41. export default S3MLayer