earthtrek-core
Version:
Global Nominee NASA Space Apps Challenge 2017 Buenos Aires - Global Finalist (Best Use of Data) NASA Space Apps Challenge 2017 - 1D, 2D, 3D, Go! Challenge
199 lines (167 loc) • 10.6 kB
JavaScript
;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
* @class EarthTrekLayer
* @module EarthTrek
* @author SATrek
* @author Alejandro Sanchez <alejandro.sanchez.trek@gmail.com>
* @description EarthTrek - NASA Space Apps 2017 - 25 MAY 2017
*/
var _ImageryLayer = require('cesium/Source/Scene/ImageryLayer');
var _ImageryLayer2 = _interopRequireDefault(_ImageryLayer);
var _earthtrekProvider = require('./earthtrek-provider');
var _earthtrekProvider2 = _interopRequireDefault(_earthtrekProvider);
var _earthtrekCore = require('./earthtrek-core');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* @deprecated
*/
var earthTrekLayer = function () {
function earthTrekLayer() {
_classCallCheck(this, earthTrekLayer);
}
_createClass(earthTrekLayer, null, [{
key: 'addLayer',
/**
*
* @param today
* @param layer
* @param dontHide
* @returns {ImageryLayer}
*/
value: function addLayer(today, layer, dontHide) {
if (dontHide === undefined) {
earthTrekLayer.hideBaseLayer(layer);
}
var maximumLevel = layer.format == 'image/png' ? 2 : 8;
if (layer.maximumLevel) {
maximumLevel = layer.maximumLevel;
}
var newLayerProvider = _earthtrekProvider2.default.getProvider({
id: layer.id,
time: today,
format: layer.format,
tileMatrixSetID: "epsg4326",
resolution: layer.resolution,
maximumLevel: maximumLevel
});
if ((0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers._layers[0].format == 'image/jpeg') {
(0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers._layers[0].show = false;
// that.viewer.scene.imageryLayers.lowerToBottom(that.viewer.scene.imageryLayers._layers[0].show = false);
}
var addedLayer = (0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers.addImageryProvider(newLayerProvider);
var layers = (0, _earthtrekCore.earthTrekInstance)().getLayers();
layers.push({ layer: layer, cesiumLayer: addedLayer });
layers.forEach(function (objLayer) {
if (objLayer.layer.top != undefined && objLayer.layer.top == true) {
(0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers.raiseToTop(objLayer.cesiumLayer);
}
});
return addedLayer;
/* if (layer.format == 'image/jpeg') {
this.layerViewer.scene.imageryLayers.lowerToBottom(addedLayer);
}*/
}
/**
* Get Imagery Layers
* @returns {imageryLayers|{get}|*|ImageryLayerCollection}
*/
}, {
key: 'getImageryLayers',
value: function getImageryLayers() {
return (0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers;
}
/**
* Remove Layer
* @param object layer
* @returns {boolean}
*/
}, {
key: 'searchLayer',
value: function searchLayer(layer, callback) {
var imageryLayers = earthTrekLayer.getImageryLayers();
if (layer instanceof _ImageryLayer2.default) {
callback(layer);
return true;
}
for (var i = 0; i <= imageryLayers.length - 1; i++) {
var imageryLayer = imageryLayers.get(i);
if (imageryLayer.imageryProvider._layer == layer.id) {
callback(imageryLayer);
return true;
}
}
return false;
}
/**
* Hide Layer
* @param object layer
*/
}, {
key: 'hideLayer',
value: function hideLayer(layer) {
earthTrekLayer.searchLayer(layer, function (imageryLayer) {
imageryLayer.show = false;
(0, _earthtrekCore.earthTrekInstance)().raise('layer-hidden', { 'imageryLayer': imageryLayer });
});
}
/**
* Hide Layer
* @param object layer
*/
}, {
key: 'removeLayer',
value: function removeLayer(layer) {
earthTrekLayer.searchLayer(layer, function (imageryLayer) {
earthTrekLayer.getImageryLayers().remove(imageryLayer);
(0, _earthtrekCore.earthTrekInstance)().raise('layer-removed', { 'imageryLayer': imageryLayer });
});
}
/**
* Hide Layer
* @param object layer
*/
}, {
key: 'hideBaseLayer',
value: function hideBaseLayer(layer) {
var imageryLayers = earthTrekLayer.getImageryLayers();
for (var i = 0; i <= imageryLayers.length - 1; i++) {
var imageryLayer = imageryLayers.get(i);
if (layer.format == 'image/jpeg' && imageryLayer.imageryProvider.format == 'image/jpeg') {
imageryLayer.show = false;
}
}
}
/**
* Toggle Layer By Id
* @param layerId
* @param callback
*/
}, {
key: 'toggleLayerById',
value: function toggleLayerById(layerId, callback) {
var imageryLayers = earthTrekLayer.getImageryLayers();
for (var i = 0; i <= imageryLayers.length - 1; i++) {
var imageryLayer = imageryLayers.get(i);
if (imageryLayer.imageryProvider._layer == layerId) {
imageryLayer.show = !imageryLayer.show;
callback(imageryLayer.show);
}
}
}
/**
* Raise to Top Layer
* @param object plainLayer
* @param ImageryLayer layer
*/
}, {
key: 'raiseToTop',
value: function raiseToTop(plainLayer, layer) {
if (plainLayer.top != undefined && plainLayer.top == true && earthTrekLayer.getImageryLayers().contains(layer)) {
(0, _earthtrekCore.earthTrekInstance)().getViewer().scene.imageryLayers.raiseToTop(layer);
}
}
}]);
return earthTrekLayer;
}();
module.exports = earthTrekLayer;