| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 35ad52d commit 37dcd8b
18 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -183,7 +183,7 @@ | |||
| 183 | 183 | if (members && members.length && members.forEach) { | |
| 184 | 184 | ?> | |
| 185 | 185 | <div class='vertical-section'> | |
| 186 | - <h1>Members</h1> | ||
| 186 | + <h1>成员变量</h1> | ||
| 187 | 187 | <div class="members"> | |
| 188 | 188 | <?js members.forEach(function(p) { ?> | |
| 189 | 189 | <div class="member"><?js= self.partial('members.tmpl', p) ?></div> | |
@@ -211,7 +211,7 @@ | |||
| 211 | 211 | if (typedefs && typedefs.length && typedefs.forEach) { | |
| 212 | 212 | ?> | |
| 213 | 213 | <div class='vertical-section'> | |
| 214 | - <h1>Type Definitions</h1> | ||
| 214 | + <h1>类型定义</h1> | ||
| 215 | 215 | <div class="members"> | |
| 216 | 216 | <?js typedefs.forEach(function(e) { | |
| 217 | 217 | if (e.signature) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,7 +4,7 @@ var self = this; | |||
| 4 | 4 | ?> | |
| 5 | 5 | <?js if (data.type && data.type.names) {?> | |
| 6 | 6 | <span class="method-parameter is-pulled-right"> | |
| 7 | - <label>Type:</label> | ||
| 7 | + <label>类型:</label> | ||
| 8 | 8 | <?js= self.partial('type.tmpl', data.type.names) ?> | |
| 9 | 9 | </span> | |
| 10 | 10 | <?js } ?> | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,7 +4,7 @@ var self = this; | |||
| 4 | 4 | ?> | |
| 5 | 5 | <?js if (kind === 'event' && data.type && data.type.names) {?> | |
| 6 | 6 | <p class="method-parameter is-pulled-right"> | |
| 7 | - <label>Type: </label> | ||
| 7 | + <label>类型: </label> | ||
| 8 | 8 | <?js= self.partial('type.tmpl', data.type.names) ?> | |
| 9 | 9 | </p> | |
| 10 | 10 | <?js } ?> | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -12,7 +12,7 @@ import { | |||
| 12 | 12 | ||
| 13 | 13 | var echartsIdIndex = 0; | |
| 14 | 14 | ||
| 15 | - /** | ||
| 15 | + /** | ||
| 16 | 16 | * @author 基础平台/创新中心 潘卓然 | |
| 17 | 17 | * @class module:客户端可视化.EchartsLayer | |
| 18 | 18 | * @classdesc Echarts图表图层 | |
@@ -125,6 +125,9 @@ export default class EchartsLayer { | |||
| 125 | 125 | ||
| 126 | 126 | this.handler = undefined; | |
| 127 | 127 | this.moveEndEvent = undefined; | |
| 128 | + this.postEvent = undefined; | ||
| 129 | + this.postStartEvent = undefined; | ||
| 130 | + this.postEndEvent = undefined; | ||
| 128 | 131 | ||
| 129 | 132 | this.layerId = options.layerId || ("echarts" + echartsIdIndex++); | |
| 130 | 133 | this.layerClass = options.layerClass || "echartlayerdefaultclass"; | |
@@ -301,9 +304,11 @@ export default class EchartsLayer { | |||
| 301 | 304 | } | |
| 302 | 305 | ||
| 303 | 306 | var moveEndHandler = function (type, target) { | |
| 304 | - if (rendering || !self.map || !self.visible) { | ||
| 307 | + if (rendering || !self.map) { | ||
| 305 | 308 | return | |
| 306 | 309 | } | |
| 310 | + | ||
| 311 | + self._visible(); | ||
| 307 | 312 | var offsetEl = self.map.canvas; | |
| 308 | 313 | ||
| 309 | 314 | var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0] | |
@@ -316,7 +321,6 @@ export default class EchartsLayer { | |||
| 316 | 321 | api.dispatchAction({ | |
| 317 | 322 | type: 'CesiumRoma' | |
| 318 | 323 | }) | |
| 319 | - self._visible(); | ||
| 320 | 324 | } | |
| 321 | 325 | ||
| 322 | 326 | self.moveEndEvent = moveEndHandler; | |
@@ -335,22 +339,41 @@ export default class EchartsLayer { | |||
| 335 | 339 | if (rendering) { | |
| 336 | 340 | return | |
| 337 | 341 | } | |
| 342 | + self._visible(); | ||
| 338 | 343 | api.dispatchAction({ | |
| 339 | 344 | type: 'CesiumRoma' | |
| 340 | 345 | }) | |
| 341 | 346 | } | |
| 342 | 347 | ||
| 348 | + var postHandle = function () { | ||
| 349 | + // self.moveEndEvent(); | ||
| 350 | + zoomEndHandler(); | ||
| 351 | + } | ||
| 352 | + | ||
| 353 | + var postStartHandle = function () { | ||
| 354 | + self.scene.postRender.addEventListener(postHandle); | ||
| 355 | + // self._visible(); | ||
| 356 | + } | ||
| 357 | + | ||
| 358 | + self.postStartEvent = postStartHandle.bind(self); | ||
| 359 | + | ||
| 360 | + var postEndHandle = function () { | ||
| 361 | + self.scene.postRender.removeEventListener(postHandle); | ||
| 362 | + self.resize(); | ||
| 363 | + self._visible(); | ||
| 364 | + } | ||
| 365 | + | ||
| 366 | + self.postEndEvent = postEndHandle.bind(self); | ||
| 367 | + | ||
| 343 | 368 | self.handler = new Cesium.ScreenSpaceEventHandler(self.scene.canvas); | |
| 344 | 369 | ||
| 345 | 370 | if (self.initStats == false) { | |
| 346 | 371 | self.initStats = true; | |
| 347 | 372 | if (self.options.postRender) { | |
| 348 | - self.map.scene.postRender.addEventListener(function () { | ||
| 349 | - self.postRenderTime++ | ||
| 350 | - if (self.postRenderTime % self.postRenderFrame === 0) self.moveEndEvent(); | ||
| 351 | - }); | ||
| 373 | + self.scene.camera.moveStart.addEventListener(self.postStartEvent, self); | ||
| 374 | + self.scene.camera.moveEnd.addEventListener(self.postEndEvent, self); | ||
| 352 | 375 | } else { | |
| 353 | - self.handler.setInputAction(zoomStartHandler, Cesium.ScreenSpaceEventType.WHEEL); | ||
| 376 | + // self.handler.setInputAction(zoomStartHandler, Cesium.ScreenSpaceEventType.WHEEL); | ||
| 354 | 377 | self.handler.setInputAction(moveHandler, Cesium.ScreenSpaceEventType.LEFT_DOWN); | |
| 355 | 378 | self.handler.setInputAction(moveEndHandler, Cesium.ScreenSpaceEventType.LEFT_UP); | |
| 356 | 379 | self.handler.setInputAction(moveHandler, Cesium.ScreenSpaceEventType.RIGHT_DOWN); | |
@@ -423,23 +446,16 @@ export default class EchartsLayer { | |||
| 423 | 446 | */ | |
| 424 | 447 | remove() { | |
| 425 | 448 | var self = this; | |
| 426 | - /* this.map._listeners.move.forEach(function (element) { | ||
| 427 | - if (element.name === 'moveHandler') { | ||
| 428 | - self.map.off('move', element); | ||
| 429 | - } | ||
| 430 | - }); | ||
| 431 | - this.map._listeners.move.forEach(function (element) { | ||
| 432 | - if (element.name === 'zoomEndHandler') { | ||
| 433 | - self.map.off('zoomend', element); | ||
| 434 | - } | ||
| 435 | - }); */ | ||
| 436 | - | ||
| 437 | 449 | this.chart.clear(); | |
| 438 | - | ||
| 439 | - this.map.scene.camera.moveEnd.removeEventListener(function(){ | ||
| 440 | - self.moveEndEvent(); | ||
| 441 | - }); | ||
| 442 | - this.handler.destroy(); | ||
| 450 | + if (self.options.postRender) { | ||
| 451 | + this.scene.camera.moveStart.removeEventListener(this.postStartEvent, this); | ||
| 452 | + this.scene.camera.moveEnd.removeEventListener(this.postEndEvent, this); | ||
| 453 | + } else { | ||
| 454 | + this.map.scene.camera.moveEnd.removeEventListener(function(){ | ||
| 455 | + self.moveEndEvent(); | ||
| 456 | + }); | ||
| 457 | + this.handler.destroy(); | ||
| 458 | + } | ||
| 443 | 459 | ||
| 444 | 460 | if (this.canvas.parentElement) | |
| 445 | 461 | this.canvas.parentElement.removeChild(this.canvas); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - import L from "leaflet"; | ||
| 1 | + import L from 'leaflet'; | ||
| 2 | 2 | import echarts from 'echarts'; | |
| 3 | 3 | ||
| 4 | 4 | import '../core/Base'; | |
@@ -77,7 +77,6 @@ import MapCoordSys from './echart/MapCoordSys'; | |||
| 77 | 77 | }; | |
| 78 | 78 | */ | |
| 79 | 79 | export var EchartsLayer = L.Layer.extend({ | |
| 80 | - | ||
| 81 | 80 | map: null, //传入的leaflet地图 | |
| 82 | 81 | chart: null, | |
| 83 | 82 | options: null, | |
@@ -86,9 +85,10 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 86 | 85 | initialize: function (map, options) { | |
| 87 | 86 | this.map = map; | |
| 88 | 87 | this.options = options; | |
| 89 | - this.layerId = options.layerId || "echartlayerdefaultid"; | ||
| 90 | - this.layerClass = options.classId || "echartlayerdefaultclass"; | ||
| 88 | + this.layerId = options.layerId || 'echartlayerdefaultid'; | ||
| 89 | + this.layerClass = options.classId || 'echartlayerdefaultclass'; | ||
| 91 | 90 | ||
| 91 | + this.visible = true; | ||
| 92 | 92 | this.initDevicePixelRatio(); | |
| 93 | 93 | this.initOptions(this.options); | |
| 94 | 94 | this.initEcharts(); | |
@@ -102,12 +102,12 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 102 | 102 | ||
| 103 | 103 | initOptions: function (options) { | |
| 104 | 104 | if (options) { | |
| 105 | - if(options.leaflet){ | ||
| 105 | + if (options.leaflet) { | ||
| 106 | 106 | return; | |
| 107 | 107 | } | |
| 108 | 108 | this.options.leaflet = { | |
| 109 | 109 | roam: true | |
| 110 | - } | ||
| 110 | + }; | ||
| 111 | 111 | } | |
| 112 | 112 | }, | |
| 113 | 113 | ||
@@ -124,7 +124,8 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 124 | 124 | } | |
| 125 | 125 | }); | |
| 126 | 126 | ||
| 127 | - echarts.registerAction({ | ||
| 127 | + echarts.registerAction( | ||
| 128 | + { | ||
| 128 | 129 | type: 'LeafletRoma', | |
| 129 | 130 | event: 'LeafletRoma', | |
| 130 | 131 | update: 'updateLayout' | |
@@ -143,14 +144,17 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 143 | 144 | }, | |
| 144 | 145 | ||
| 145 | 146 | _visible: function () { | |
| 146 | - this.canvas.style.visibility = "visible"; | ||
| 147 | + this.visible = true; | ||
| 148 | + this.canvas.style.visibility = 'visible'; | ||
| 147 | 149 | }, | |
| 148 | 150 | ||
| 149 | 151 | _unvisible: function () { | |
| 150 | - this.canvas.style.visibility = "hidden"; | ||
| 152 | + this.visible = false; | ||
| 153 | + this.canvas.style.visibility = 'hidden'; | ||
| 151 | 154 | }, | |
| 152 | 155 | ||
| 153 | 156 | onAdd: function (map) { | |
| 157 | + const vm = this; | ||
| 154 | 158 | this.map = map; | |
| 155 | 159 | this.canvas = this._createCanvas(); | |
| 156 | 160 | map.getPanes().overlayPane.appendChild(this.canvas); | |
@@ -164,9 +168,9 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 164 | 168 | let size = e.newSize; | |
| 165 | 169 | self.canvas.style.width = size.x + 'px'; | |
| 166 | 170 | self.canvas.style.height = size.y + 'px'; | |
| 167 | - self.chart.resize() | ||
| 168 | - }) | ||
| 169 | - map.on("zoomstart", function () { | ||
| 171 | + self.chart.resize(); | ||
| 172 | + }); | ||
| 173 | + map.on('zoomstart', function () { | ||
| 170 | 174 | self._unvisible(); | |
| 171 | 175 | }); | |
| 172 | 176 | ||
@@ -182,24 +186,24 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 182 | 186 | var coordSys = mapModel.coordinateSystem; | |
| 183 | 187 | ||
| 184 | 188 | var moveHandler = function () { | |
| 185 | - if (rendering) { | ||
| 189 | + if (rendering || !vm.visible) { | ||
| 186 | 190 | return; | |
| 187 | 191 | } | |
| 188 | 192 | var topleft = leafletMap.getBounds().getNorthWest(); | |
| 189 | 193 | var offset = leafletMap.latLngToLayerPoint(topleft); | |
| 190 | - var mapOffset = [parseInt(offset.x, 10) || 0, parseInt(offset.y, 10) || 0] | ||
| 194 | + var mapOffset = [parseInt(offset.x, 10) || 0, parseInt(offset.y, 10) || 0]; | ||
| 191 | 195 | viewportRoot.style.left = mapOffset[0] + 'px'; | |
| 192 | 196 | viewportRoot.style.top = mapOffset[1] + 'px'; | |
| 193 | 197 | coordSys.setMapOffset(mapOffset); | |
| 194 | 198 | mapModel.__mapOffset = mapOffset; | |
| 195 | 199 | ||
| 196 | 200 | api.dispatchAction({ | |
| 197 | 201 | type: 'LeafletRoma' | |
| 198 | - }) | ||
| 202 | + }); | ||
| 199 | 203 | }; | |
| 200 | 204 | ||
| 201 | 205 | var zoomEndHandler = function () { | |
| 202 | - if (rendering) { | ||
| 206 | + if (rendering || !vm.visible) { | ||
| 203 | 207 | return; | |
| 204 | 208 | } | |
| 205 | 209 | ||
@@ -210,8 +214,8 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 210 | 214 | self._visible(); | |
| 211 | 215 | }; | |
| 212 | 216 | ||
| 213 | - leafletMap.off('move', this._oldMoveHandler) | ||
| 214 | - leafletMap.off('zoomend', this._oldZoomEndHandler) | ||
| 217 | + leafletMap.off('move', this._oldMoveHandler); | ||
| 218 | + leafletMap.off('zoomend', this._oldZoomEndHandler); | ||
| 215 | 219 | // FIXME | |
| 216 | 220 | // Moveend may be triggered by centerAndZoom method when creating coordSys next time | |
| 217 | 221 | // leafletMap.off('moveend', this._oldMoveHandler) | |
@@ -221,7 +225,7 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 221 | 225 | this._oldMoveHandler = moveHandler; | |
| 222 | 226 | this._oldZoomEndHandler = zoomEndHandler; | |
| 223 | 227 | ||
| 224 | - var roam = mapModel.get('roam') | ||
| 228 | + var roam = mapModel.get('roam'); | ||
| 225 | 229 | if (roam && roam !== 'scale') { | |
| 226 | 230 | // todo 允许拖拽 | |
| 227 | 231 | } else { | |
@@ -247,8 +251,8 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 247 | 251 | var canvas = document.createElement('div'); | |
| 248 | 252 | canvas.id = this.layerId; | |
| 249 | 253 | //canvas.style.position = 'absolute'; | |
| 250 | - canvas.style.top = "0px"; | ||
| 251 | - canvas.style.left = "0px"; | ||
| 254 | + canvas.style.top = '0px'; | ||
| 255 | + canvas.style.left = '0px'; | ||
| 252 | 256 | canvas.height = this.map.getSize().y + 'px'; | |
| 253 | 257 | canvas.width = this.map.getSize().x + 'px'; | |
| 254 | 258 | canvas.style.height = this.map.getSize().y + 'px'; | |
@@ -271,8 +275,8 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 271 | 275 | var map = self.map; | |
| 272 | 276 | ||
| 273 | 277 | //canvas.style.position = 'absolute'; | |
| 274 | - canvas.style.top = "0px"; | ||
| 275 | - canvas.style.left = "0px"; | ||
| 278 | + canvas.style.top = '0px'; | ||
| 279 | + canvas.style.left = '0px'; | ||
| 276 | 280 | canvas.height = this.map.getSize().y + 'px'; | |
| 277 | 281 | canvas.width = this.map.getSize().x + 'px'; | |
| 278 | 282 | canvas.style.height = this.map.getSize().y + 'px'; | |
@@ -307,8 +311,8 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 307 | 311 | var map = this.map; | |
| 308 | 312 | ||
| 309 | 313 | //canvas.style.position = 'absolute'; | |
| 310 | - canvas.style.top = "0px"; | ||
| 311 | - canvas.style.left = "0px"; | ||
| 314 | + canvas.style.top = '0px'; | ||
| 315 | + canvas.style.left = '0px'; | ||
| 312 | 316 | canvas.height = this.map.getSize().y + 'px'; | |
| 313 | 317 | canvas.width = this.map.getSize().x + 'px'; | |
| 314 | 318 | canvas.style.height = this.map.getSize().y + 'px'; | |
@@ -317,13 +321,13 @@ export var EchartsLayer = L.Layer.extend({ | |||
| 317 | 321 | this.chart.resize(); | |
| 318 | 322 | }, | |
| 319 | 323 | ||
| 320 | - /** | ||
| 324 | + /** | ||
| 321 | 325 | * @function L.zondy.EchartsLayer.prototype.update | |
| 322 | 326 | * @param {*} option echarts.option | |
| 323 | 327 | * @see https://www.echartsjs.com/zh/tutorial.html#异步数据加载和更新 | |
| 324 | 328 | * @description ECharts 由数据驱动,数据的改变驱动图表展现的改变,因此动态数据的实现也变得异常简单。所有数据的更新都通过 setOption实现,你只需要定时获取数据,setOption 填入数据,而不用考虑数据到底产生了那些变化,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。 | |
| 325 | 329 | */ | |
| 326 | - update: function(option) { | ||
| 330 | + update: function (option) { | ||
| 327 | 331 | this.chart.setOption(option); | |
| 328 | 332 | } | |
| 329 | 333 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,7 +6,7 @@ | |||
| 6 | 6 | export var MapExtend = function () { | |
| 7 | 7 | ||
| 8 | 8 | window.mapboxgl.Map.prototype.overlayLayersManager = {}; | |
| 9 | - window.mapboxgl.Map.prototype.addLayerBak = window.mapboxgl.Map.prototype.addLayer; | ||
| 9 | + // window.mapboxgl.Map.prototype.addLayerBak = window.mapboxgl.Map.prototype.addLayerBak; | ||
| 10 | 10 | window.mapboxgl.Map.prototype.addLayer = function (layer, before) { | |
| 11 | 11 | if (layer.source || layer.type === 'custom' || layer.type === "background") { | |
| 12 | 12 | this.addLayerBak(layer, before); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments