Browse Source

add gpx layer

tags/2.11.0
Caven Chen 3 years ago
parent
commit
2e9b536787
3 changed files with 54 additions and 0 deletions
  1. 1
    0
      modules/layer/index.js
  2. 51
    0
      modules/layer/type/GpxLayer.js
  3. 2
    0
      packages/core/src/components.js

+ 1
- 0
modules/layer/index.js View File

@@ -15,6 +15,7 @@ export { default as CzmlLayer } from './type/CzmlLayer'
export { default as DynamicLayer } from './type/DynamicLayer'
export { default as FeatureGridLayer } from './type/FeatureGridLayer'
export { default as GeoJsonLayer } from './type/GeoJsonLayer'
export { default as GpxLayer } from './type/GpxLayer'
export { default as GroundPrimitiveLayer } from './type/GroundPrimitiveLayer'
export { default as HtmlLayer } from './type/HtmlLayer'
export { default as KmlLayer } from './type/KmlLayer'

+ 51
- 0
modules/layer/type/GpxLayer.js View File

@@ -0,0 +1,51 @@
/**
* @Author: Caven
* @Date: 2020-01-19 11:03:17
*/

import { Cesium } from '@dc-modules/namespace'
import State from '@dc-modules/state/State'
import Layer from '../Layer'

class GpxLayer extends Layer {
constructor(id, url, options = {}) {
if (!url) {
throw new Error('GpxLayer: the url is empty')
}
super(id)
this._delegate = Cesium.KmlDataSource.load(url, options)
this._state = State.INITIALIZED
}

get type() {
return Layer.getLayerType('gpx')
}

set show(show) {
this._show = show
this._delegate &&
this._delegate.then(dataSource => {
dataSource.show = this._show
})
}

get show() {
return this._show
}

eachOverlay(method, context) {
if (this._delegate) {
this._delegate.then(dataSource => {
let entities = dataSource.entities.values
entities.forEach(item => {
method.call(context, item)
})
})
return this
}
}
}

Layer.registerType('gpx')

export default GpxLayer

+ 2
- 0
packages/core/src/components.js View File

@@ -49,6 +49,7 @@ import {
DynamicLayer,
FeatureGridLayer,
GeoJsonLayer,
GpxLayer,
HtmlLayer,
KmlLayer,
LabelLayer,
@@ -265,6 +266,7 @@ const components = {
DynamicLayer,
FeatureGridLayer,
GeoJsonLayer,
GpxLayer,
HtmlLayer,
KmlLayer,
LabelLayer,

Loading…
Cancel
Save