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

export { default as DynamicLayer } from './type/DynamicLayer' export { default as DynamicLayer } from './type/DynamicLayer'
export { default as FeatureGridLayer } from './type/FeatureGridLayer' export { default as FeatureGridLayer } from './type/FeatureGridLayer'
export { default as GeoJsonLayer } from './type/GeoJsonLayer' export { default as GeoJsonLayer } from './type/GeoJsonLayer'
export { default as GpxLayer } from './type/GpxLayer'
export { default as GroundPrimitiveLayer } from './type/GroundPrimitiveLayer' export { default as GroundPrimitiveLayer } from './type/GroundPrimitiveLayer'
export { default as HtmlLayer } from './type/HtmlLayer' export { default as HtmlLayer } from './type/HtmlLayer'
export { default as KmlLayer } from './type/KmlLayer' export { default as KmlLayer } from './type/KmlLayer'

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

/**
* @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

DynamicLayer, DynamicLayer,
FeatureGridLayer, FeatureGridLayer,
GeoJsonLayer, GeoJsonLayer,
GpxLayer,
HtmlLayer, HtmlLayer,
KmlLayer, KmlLayer,
LabelLayer, LabelLayer,
DynamicLayer, DynamicLayer,
FeatureGridLayer, FeatureGridLayer,
GeoJsonLayer, GeoJsonLayer,
GpxLayer,
HtmlLayer, HtmlLayer,
KmlLayer, KmlLayer,
LabelLayer, LabelLayer,

Loading…
Cancel
Save