1 |
- {"version":3,"file":"CesiumNavigation.umd.js","sources":["../src/cesium/Cesium.js","../node_modules/_core-js@2.6.11@core-js/modules/_fails.js","../node_modules/_core-js@2.6.11@core-js/modules/_descriptors.js","../node_modules/_core-js@2.6.11@core-js/modules/_is-object.js","../node_modules/_core-js@2.6.11@core-js/modules/_an-object.js","../node_modules/_core-js@2.6.11@core-js/modules/_global.js","../node_modules/_core-js@2.6.11@core-js/modules/_dom-create.js","../node_modules/_core-js@2.6.11@core-js/modules/_ie8-dom-define.js","../node_modules/_core-js@2.6.11@core-js/modules/_to-primitive.js","../node_modules/_core-js@2.6.11@core-js/modules/_object-dp.js","../node_modules/_core-js@2.6.11@core-js/modules/_flags.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.regexp.flags.js","../node_modules/_core-js@2.6.11@core-js/modules/_property-desc.js","../node_modules/_core-js@2.6.11@core-js/modules/_hide.js","../node_modules/_core-js@2.6.11@core-js/modules/_has.js","../node_modules/_core-js@2.6.11@core-js/modules/_uid.js","../node_modules/_core-js@2.6.11@core-js/modules/_core.js","../node_modules/_core-js@2.6.11@core-js/modules/_library.js","../node_modules/_core-js@2.6.11@core-js/modules/_shared.js","../node_modules/_core-js@2.6.11@core-js/modules/_function-to-string.js","../node_modules/_core-js@2.6.11@core-js/modules/_redefine.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.regexp.to-string.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.date.to-string.js","../node_modules/_core-js@2.6.11@core-js/modules/_cof.js","../node_modules/_core-js@2.6.11@core-js/modules/_wks.js","../node_modules/_core-js@2.6.11@core-js/modules/_classof.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.object.to-string.js","../src/core/createFragmentFromTemplate.js","../src/core/loadView.js","../src/viewModels/DistanceLegendViewModel.js","../node_modules/_core-js@2.6.11@core-js/modules/_a-function.js","../node_modules/_core-js@2.6.11@core-js/modules/_ctx.js","../node_modules/_core-js@2.6.11@core-js/modules/_export.js","../node_modules/_core-js@2.6.11@core-js/modules/_iobject.js","../node_modules/_core-js@2.6.11@core-js/modules/_defined.js","../node_modules/_core-js@2.6.11@core-js/modules/_to-iobject.js","../node_modules/_core-js@2.6.11@core-js/modules/_to-integer.js","../node_modules/_core-js@2.6.11@core-js/modules/_to-length.js","../node_modules/_core-js@2.6.11@core-js/modules/_to-absolute-index.js","../node_modules/_core-js@2.6.11@core-js/modules/_array-includes.js","../node_modules/_core-js@2.6.11@core-js/modules/_shared-key.js","../node_modules/_core-js@2.6.11@core-js/modules/_object-keys-internal.js","../node_modules/_core-js@2.6.11@core-js/modules/_enum-bug-keys.js","../node_modules/_core-js@2.6.11@core-js/modules/_object-keys.js","../node_modules/_core-js@2.6.11@core-js/modules/_object-dps.js","../node_modules/_core-js@2.6.11@core-js/modules/_html.js","../node_modules/_core-js@2.6.11@core-js/modules/_object-create.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.object.create.js","../node_modules/_core-js@2.6.11@core-js/modules/es6.function.name.js","../src/svgPaths/svgReset.js","../src/viewModels/UserInterfaceControl.js","../src/viewModels/NavigationControl.js","../src/viewModels/ResetViewNavigationControl.js","../src/core/Utils.js","../src/viewModels/ZoomNavigationControl.js","../src/svgPaths/svgCompassOuterRing.js","../src/svgPaths/svgCompassGyro.js","../src/svgPaths/svgCompassRotationMarker.js","../src/viewModels/NavigationViewModel.js","../src/CesiumNavigation.js"],"sourcesContent":["export default window.Cesium","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = false;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","\nconst createFragmentFromTemplate = function (htmlString) {\n var holder = document.createElement('div')\n holder.innerHTML = htmlString\n var fragment = document.createDocumentFragment()\n while (holder.firstChild) {\n fragment.appendChild(holder.firstChild)\n }\n\n return fragment\n}\n\nexport default createFragmentFromTemplate\n","/* eslint-disable no-unused-vars */\nimport Cesium from '../cesium/Cesium'\nimport createFragmentFromTemplate from './createFragmentFromTemplate'\nvar getElement = Cesium.getElement\nvar Knockout = Cesium.knockout\n\nvar loadView = function (htmlString, container, viewModel) {\n container = getElement(container)\n\n var fragment = createFragmentFromTemplate(htmlString)\n\n // Sadly, fragment.childNodes doesn't have a slice function.\n // This code could be replaced with Array.prototype.slice.call(fragment.childNodes)\n // but that seems slightly error prone.\n var nodes = []\n\n var i\n for (i = 0; i < fragment.childNodes.length; ++i) {\n nodes.push(fragment.childNodes[i])\n }\n\n container.appendChild(fragment)\n\n for (i = 0; i < nodes.length; ++i) {\n var node = nodes[i]\n if (node.nodeType === 1 || node.nodeType === 8) {\n Knockout.applyBindings(viewModel, node)\n }\n }\n\n return nodes\n}\n\nexport default loadView\n","/* eslint-disable no-unused-vars */\nimport Cesium from '../cesium/Cesium'\nimport loadView from '../core/loadView'\nvar defined = Cesium.defined\nvar DeveloperError = Cesium.DeveloperError\nvar EllipsoidGeodesic = Cesium.EllipsoidGeodesic\nvar Cartesian2 = Cesium.Cartesian2\nvar getTimestamp = Cesium.getTimestamp\nvar EventHelper = Cesium.EventHelper\nvar Knockout = Cesium.knockout\n\nvar DistanceLegendViewModel = function (options) {\n if (!defined(options) || !defined(options.terria)) {\n throw new DeveloperError('options.terria is required.')\n }\n\n this.terria = options.terria\n this._removeSubscription = undefined\n this._lastLegendUpdate = undefined\n this.eventHelper = new EventHelper()\n\n this.distanceLabel = undefined\n this.barWidth = undefined\n\n this.enableDistanceLegend = (defined(options.enableDistanceLegend)) ? options.enableDistanceLegend : true\n\n Knockout.track(this, ['distanceLabel', 'barWidth'])\n\n this.eventHelper.add(this.terria.afterWidgetChanged, function () {\n if (defined(this._removeSubscription)) {\n this._removeSubscription()\n this._removeSubscription = undefined\n }\n }, this)\n // this.terria.beforeWidgetChanged.addEventListener(function () {\n // if (defined(this._removeSubscription)) {\n // this._removeSubscription();\n // this._removeSubscription = undefined;\n // }\n // }, this);\n\n var that = this\n\n function addUpdateSubscription () {\n if (defined(that.terria)) {\n var scene = that.terria.scene\n that._removeSubscription = scene.postRender.addEventListener(function () {\n updateDistanceLegendCesium(this, scene)\n }, that)\n }\n }\n\n addUpdateSubscription()\n this.eventHelper.add(this.terria.afterWidgetChanged, function () {\n addUpdateSubscription()\n }, this)\n // this.terria.afterWidgetChanged.addEventListener(function() {\n // addUpdateSubscription();\n // }, this);\n}\n\nDistanceLegendViewModel.prototype.destroy = function () {\n this.eventHelper.removeAll()\n}\n\nDistanceLegendViewModel.prototype.show = function (container) {\n var testing\n if (this.enableDistanceLegend) {\n testing = '<div class=\"distance-legend\" data-bind=\"visible: distanceLabel && barWidth\">' +\n '<div class=\"distance-legend-label\" data-bind=\"text: distanceLabel\"></div>' +\n '<div class=\"distance-legend-scale-bar\" data-bind=\"style: { width: barWidth + \\'px\\', left: (5 + (125 - barWidth) / 2) + \\'px\\' }\"></div>' +\n '</div>'\n } else {\n testing = '<div class=\"distance-legend\" style=\"display: none;\" data-bind=\"visible: distanceLabel && barWidth\">' +\n '<div class=\"distance-legend-label\" data-bind=\"text: distanceLabel\"></div>' +\n '<div class=\"distance-legend-scale-bar\" data-bind=\"style: { width: barWidth + \\'px\\', left: (5 + (125 - barWidth) / 2) + \\'px\\' }\"></div>' +\n '</div>'\n }\n loadView(testing, container, this)\n // loadView(distanceLegendTemplate, container, this);\n // loadView(require('fs').readFileSync(__dirname + '/../Views/DistanceLegend.html', 'utf8'), container, this);\n}\n\nDistanceLegendViewModel.create = function (options) {\n var result = new DistanceLegendViewModel(options)\n result.show(options.container)\n return result\n}\n\nvar geodesic = new EllipsoidGeodesic()\n\nvar distances = [\n 1, 2, 3, 5,\n 10, 20, 30, 50,\n 100, 200, 300, 500,\n 1000, 2000, 3000, 5000,\n 10000, 20000, 30000, 50000,\n 100000, 200000, 300000, 500000,\n 1000000, 2000000, 3000000, 5000000,\n 10000000, 20000000, 30000000, 50000000]\n\nfunction updateDistanceLegendCesium (viewModel, scene) {\n if (!viewModel.enableDistanceLegend) {\n viewModel.barWidth = undefined\n viewModel.distanceLabel = undefined\n return\n }\n var now = getTimestamp()\n if (now < viewModel._lastLegendUpdate + 250) {\n return\n }\n\n viewModel._lastLegendUpdate = now\n\n // Find the distance between two pixels at the bottom center of the screen.\n var width = scene.canvas.clientWidth\n var height = scene.canvas.clientHeight\n\n var left = scene.camera.getPickRay(new Cartesian2((width / 2) | 0, height - 1))\n var right = scene.camera.getPickRay(new Cartesian2(1 + (width / 2) | 0, height - 1))\n\n var globe = scene.globe\n var leftPosition = globe.pick(left, scene)\n var rightPosition = globe.pick(right, scene)\n\n if (!defined(leftPosition) || !defined(rightPosition)) {\n viewModel.barWidth = undefined\n viewModel.distanceLabel = undefined\n return\n }\n\n var leftCartographic = globe.ellipsoid.cartesianToCartographic(leftPosition)\n var rightCartographic = globe.ellipsoid.cartesianToCartographic(rightPosition)\n\n geodesic.setEndPoints(leftCartographic, rightCartographic)\n var pixelDistance = geodesic.surfaceDistance\n\n // Find the first distance that makes the scale bar less than 100 pixels.\n var maxBarWidth = 100\n var distance\n for (var i = distances.length - 1; !defined(distance) && i >= 0; --i) {\n if (distances[i] / pixelDistance < maxBarWidth) {\n distance = distances[i]\n }\n }\n\n if (defined(distance)) {\n var label\n if (distance >= 1000) {\n label = (distance / 1000).toString() + ' km'\n } else {\n label = distance.toString() + ' m'\n }\n\n viewModel.barWidth = (distance / pixelDistance) | 0\n viewModel.distanceLabel = label\n } else {\n viewModel.barWidth = undefined\n viewModel.distanceLabel = undefined\n }\n}\n\nexport default DistanceLegendViewModel\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var svgReset = 'M 7.5,0 C 3.375,0 0,3.375 0,7.5 0,11.625 3.375,15 7.5,15 c 3.46875,0 6.375,-2.4375 7.21875,-5.625 l -1.96875,0 C 12,11.53125 9.9375,13.125 7.5,13.125 4.40625,13.125 1.875,10.59375 1.875,7.5 1.875,4.40625 4.40625,1.875 7.5,1.875 c 1.59375,0 2.90625,0.65625 3.9375,1.6875 l -3,3 6.5625,0 L 15,0 12.75,2.25 C 11.4375,0.84375 9.5625,0 7.5,0 z'\n\nexport default svgReset\n","import Cesium from '../cesium/Cesium'\n\nvar defined = Cesium.defined\nvar defineProperties = Cesium.defineProperties\nvar DeveloperError = Cesium.DeveloperError\nvar Knockout = Cesium.knockout\n/**\n * The view-model for a control in the user interface\n *\n * @alias UserInterfaceControl\n * @constructor\n * @abstract\n *\n * @param {Terria} terria The Terria instance.\n */\nvar UserInterfaceControl = function (terria) {\n if (!defined(terria)) {\n throw new DeveloperError('terria is required')\n }\n\n this._terria = terria\n\n /**\n * Gets or sets the name of the control which is set as the controls title.\n * This property is observable.\n * @type {String}\n */\n this.name = 'Unnamed Control'\n\n /**\n * Gets or sets the text to be displayed in the UI control.\n * This property is observable.\n * @type {String}\n */\n this.text = undefined\n\n /**\n * Gets or sets the svg icon of the control. This property is observable.\n * @type {Object}\n */\n this.svgIcon = undefined\n\n /**\n * Gets or sets the height of the svg icon. This property is observable.\n * @type {Integer}\n */\n this.svgHeight = undefined\n\n /**\n * Gets or sets the width of the svg icon. This property is observable.\n * @type {Integer}\n */\n this.svgWidth = undefined\n\n /**\n * Gets or sets the CSS class of the control. This property is observable.\n * @type {String}\n */\n this.cssClass = undefined\n\n /**\n * Gets or sets the property describing whether or not the control is in the active state.\n * This property is observable.\n * @type {Boolean}\n */\n this.isActive = false\n\n Knockout.track(this, ['name', 'svgIcon', 'svgHeight', 'svgWidth', 'cssClass', 'isActive'])\n}\n\ndefineProperties(UserInterfaceControl.prototype, {\n /**\n * Gets the Terria instance.\n * @memberOf UserInterfaceControl.prototype\n * @type {Terria}\n */\n terria: {\n get: function () {\n return this._terria\n }\n },\n /**\n * Gets a value indicating whether this button has text associated with it.\n * @type {Object}\n */\n hasText: {\n get: function () {\n return defined(this.text) && typeof this.text === 'string'\n }\n }\n\n})\n\n/**\n * When implemented in a derived class, performs an action when the user clicks\n * on this control.\n * @abstract\n * @protected\n */\nUserInterfaceControl.prototype.activate = function () {\n throw new DeveloperError('activate must be implemented in the derived class.')\n}\n\nexport default UserInterfaceControl\n","import UserInterfaceControl from './UserInterfaceControl'\n/**\n * The view-model for a control in the navigation control tool bar\n *\n * @alias NavigationControl\n * @constructor\n * @abstract\n *\n * @param {Terria} terria The Terria instance.\n */\nvar NavigationControl = function (terria) {\n UserInterfaceControl.apply(this, arguments)\n}\n\nNavigationControl.prototype = Object.create(UserInterfaceControl.prototype)\n\nexport default NavigationControl\n","\nimport Cesium from '../cesium/Cesium'\nimport svgReset from '../svgPaths/svgReset'\nimport NavigationControl from './NavigationControl'\n\nvar defined = Cesium.defined\nvar Camera = Cesium.Camera\nvar Rectangle = Cesium.Rectangle\nvar Cartographic = Cesium.Cartographic\n/**\n * The model for a zoom in control in the navigation control tool bar\n *\n * @alias ResetViewNavigationControl\n * @constructor\n * @abstract\n *\n * @param {Terria} terria The Terria instance.\n */\nvar ResetViewNavigationControl = function (terria) {\n NavigationControl.apply(this, arguments)\n\n /**\n * Gets or sets the name of the control which is set as the control's title.\n * This property is observable.\n * @type {String}\n */\n this.name = '重置视图'\n this.navigationLocked = false\n\n /**\n * Gets or sets the svg icon of the control. This property is observable.\n * @type {Object}\n */\n this.svgIcon = svgReset\n\n /**\n * Gets or sets the height of the svg icon. This property is observable.\n * @type {Integer}\n */\n this.svgHeight = 15\n\n /**\n * Gets or sets the width of the svg icon. This property is observable.\n * @type {Integer}\n */\n this.svgWidth = 15\n\n /**\n * Gets or sets the CSS class of the control. This property is observable.\n * @type {String}\n */\n this.cssClass = 'navigation-control-icon-reset'\n}\n\nResetViewNavigationControl.prototype = Object.create(NavigationControl.prototype)\n\nResetViewNavigationControl.prototype.setNavigationLocked = function (locked) {\n this.navigationLocked = locked\n}\n\nResetViewNavigationControl.prototype.resetView = function () {\n // this.terria.analytics.logEvent('navigation', 'click', 'reset');\n if (this.navigationLocked) {\n return\n }\n var scene = this.terria.scene\n\n var sscc = scene.screenSpaceCameraController\n if (!sscc.enableInputs) {\n return\n }\n\n this.isActive = true\n\n var camera = scene.camera\n\n if (defined(this.terria.trackedEntity)) {\n // when tracking do not reset to default view but to default view of tracked entity\n var trackedEntity = this.terria.trackedEntity\n this.terria.trackedEntity = undefined\n this.terria.trackedEntity = trackedEntity\n } else {\n // reset to a default position or view defined in the options\n if (this.terria.options.defaultResetView) {\n if (this.terria.options.defaultResetView && this.terria.options.defaultResetView instanceof Cartographic) {\n camera.flyTo({\n destination: scene.globe.ellipsoid.cartographicToCartesian(this.terria.options.defaultResetView)\n })\n } else if (this.terria.options.defaultResetView && this.terria.options.defaultResetView instanceof Rectangle) {\n try {\n Rectangle.validate(this.terria.options.defaultResetView)\n camera.flyTo({\n destination: this.terria.options.defaultResetView,\n orientation: {\n heading: Cesium.Math.toRadians(5.729578)\n }\n })\n } catch (e) {\n console.log('Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium rectangle is invalid!')\n }\n }\n } else if (typeof camera.flyHome === 'function') {\n camera.flyHome(1)\n } else {\n camera.flyTo({'destination': Camera.DEFAULT_VIEW_RECTANGLE, 'duration': 1})\n }\n }\n this.isActive = false\n}\n\n/**\n * When implemented in a derived class, performs an action when the user clicks\n * on this control\n * @abstract\n * @protected\n */\nResetViewNavigationControl.prototype.activate = function () {\n this.resetView()\n}\n\nexport default ResetViewNavigationControl\n","/* eslint-disable no-unused-vars */\nimport Cesium from '../cesium/Cesium'\n\nvar defined = Cesium.defined\nvar Ray = Cesium.Ray\nvar Cartesian3 = Cesium.Cartesian3\nvar Cartographic = Cesium.Cartographic\nvar ReferenceFrame = Cesium.ReferenceFrame\nvar SceneMode = Cesium.SceneMode\n\nvar Utils = {}\n\nvar unprojectedScratch = new Cartographic()\nvar rayScratch = new Ray()\n\n/**\n * gets the focus point of the camera\n * @param {Viewer|Widget} terria The terria\n * @param {boolean} inWorldCoordinates true to get the focus in world coordinates, otherwise get it in projection-specific map coordinates, in meters.\n * @param {Cartesian3} [result] The object in which the result will be stored.\n * @return {Cartesian3} The modified result parameter, a new instance if none was provided or undefined if there is no focus point.\n */\nUtils.getCameraFocus = function (terria, inWorldCoordinates, result) {\n var scene = terria.scene\n var camera = scene.camera\n\n if (scene.mode === SceneMode.MORPHING) {\n return undefined\n }\n\n if (!defined(result)) {\n result = new Cartesian3()\n }\n\n // TODO bug when tracking: if entity moves the current position should be used and not only the one when starting orbiting/rotating\n // TODO bug when tracking: reset should reset to default view of tracked entity\n\n if (defined(terria.trackedEntity)) {\n result = terria.trackedEntity.position.getValue(terria.clock.currentTime, result)\n } else {\n rayScratch.origin = camera.positionWC\n rayScratch.direction = camera.directionWC\n result = scene.globe.pick(rayScratch, scene, result)\n }\n\n if (!defined(result)) {\n return undefined\n }\n\n if (scene.mode === SceneMode.SCENE2D || scene.mode === SceneMode.COLUMBUS_VIEW) {\n result = camera.worldToCameraCoordinatesPoint(result, result)\n\n if (inWorldCoordinates) {\n result = scene.globe.ellipsoid.cartographicToCartesian(scene.mapProjection.unproject(result, unprojectedScratch), result)\n }\n } else {\n if (!inWorldCoordinates) {\n result = camera.worldToCameraCoordinatesPoint(result, result)\n }\n }\n\n return result\n}\nexport default Utils\n","import Cesium from '../cesium/Cesium'\nimport NavigationControl from './NavigationControl'\nimport Utils from '../core/Utils'\nvar defined = Cesium.defined\nvar Ray = Cesium.Ray\nvar IntersectionTests = Cesium.IntersectionTests\nvar Cartesian3 = Cesium.Cartesian3\nvar SceneMode = Cesium.SceneMode\n\n/**\n * The model for a zoom in control in the navigation control tool bar\n *\n * @alias ZoomOutNavigationControl\n * @constructor\n * @abstract\n *\n * @param {Terria} terria The Terria instance.\n * @param {boolean} zoomIn is used for zooming in (true) or out (false)\n */\nvar ZoomNavigationControl = function (terria, zoomIn) {\n NavigationControl.apply(this, arguments)\n\n /**\n * Gets or sets the name of the control which is set as the control's title.\n * This property is observable.\n * @type {String}\n */\n this.name = 'Zoom ' + (zoomIn ? 'In' : 'Out')\n\n /**\n * Gets or sets the text to be displayed in the nav control. Controls that\n * have text do not display the svgIcon.\n * This property is observable.\n * @type {String}\n */\n this.text = zoomIn ? '+' : '-'\n\n /**\n * Gets or sets the CSS class of the control. This property is observable.\n * @type {String}\n */\n this.cssClass = 'navigation-control-icon-zoom-' + (zoomIn ? 'in' : 'out')\n\n this.relativeAmount = 2\n\n if (zoomIn) {\n // this ensures that zooming in is the inverse of zooming out and vice versa\n // e.g. the camera position remains when zooming in and out\n this.relativeAmount = 1 / this.relativeAmount\n }\n}\n\nZoomNavigationControl.prototype.relativeAmount = 1\n\nZoomNavigationControl.prototype = Object.create(NavigationControl.prototype)\n\n/**\n * When implemented in a derived class, performs an action when the user clicks\n * on this control\n * @abstract\n * @protected\n */\nZoomNavigationControl.prototype.activate = function () {\n this.zoom(this.relativeAmount)\n}\n\nvar cartesian3Scratch = new Cartesian3()\n\nZoomNavigationControl.prototype.zoom = function (relativeAmount) {\n // this.terria.analytics.logEvent('navigation', 'click', 'zoomIn');\n\n this.isActive = true\n\n if (defined(this.terria)) {\n var scene = this.terria.scene\n\n var sscc = scene.screenSpaceCameraController\n // do not zoom if it is disabled\n if (!sscc.enableInputs || !sscc.enableZoom) {\n return\n }\n // TODO\n // if(scene.mode == SceneMode.COLUMBUS_VIEW && !sscc.enableTranslate) {\n // return;\n // }\n\n var camera = scene.camera\n var orientation\n\n switch (scene.mode) {\n case SceneMode.MORPHING:\n break\n case SceneMode.SCENE2D:\n camera.zoomIn(camera.positionCartographic.height * (1 - this.relativeAmount))\n break\n default:\n var focus\n\n if (defined(this.terria.trackedEntity)) {\n focus = new Cartesian3()\n } else {\n focus = Utils.getCameraFocus(this.terria, false)\n }\n\n if (!defined(focus)) {\n // Camera direction is not pointing at the globe, so use the ellipsoid horizon point as\n // the focal point.\n var ray = new Ray(camera.worldToCameraCoordinatesPoint(scene.globe.ellipsoid.cartographicToCartesian(camera.positionCartographic)), camera.directionWC)\n focus = IntersectionTests.grazingAltitudeLocation(ray, scene.globe.ellipsoid)\n\n orientation = {\n heading: camera.heading,\n pitch: camera.pitch,\n roll: camera.roll\n }\n } else {\n orientation = {\n direction: camera.direction,\n up: camera.up\n }\n }\n\n var direction = Cartesian3.subtract(camera.position, focus, cartesian3Scratch)\n var movementVector = Cartesian3.multiplyByScalar(direction, relativeAmount, direction)\n var endPosition = Cartesian3.add(focus, movementVector, focus)\n\n if (defined(this.terria.trackedEntity) || scene.mode === SceneMode.COLUMBUS_VIEW) {\n // sometimes flyTo does not work (jumps to wrong position) so just set the position without any animation\n // do not use flyTo when tracking an entity because during animatiuon the position of the entity may change\n camera.position = endPosition\n } else {\n camera.flyTo({\n destination: endPosition,\n orientation: orientation,\n duration: 0.5,\n convert: false\n })\n }\n }\n }\n\n // this.terria.notifyRepaintRequired();\n this.isActive = false\n}\n\nexport default ZoomNavigationControl\n","\nvar svgCompassOuterRing = 'm 66.5625,0 0,15.15625 3.71875,0 0,-10.40625 5.5,10.40625 4.375,0 0,-15.15625 -3.71875,0 0,10.40625 L 70.9375,0 66.5625,0 z M 72.5,20.21875 c -28.867432,0 -52.28125,23.407738 -52.28125,52.28125 0,28.87351 23.413818,52.3125 52.28125,52.3125 28.86743,0 52.28125,-23.43899 52.28125,-52.3125 0,-28.873512 -23.41382,-52.28125 -52.28125,-52.28125 z m 0,1.75 c 13.842515,0 26.368948,5.558092 35.5,14.5625 l -11.03125,11 0.625,0.625 11.03125,-11 c 8.9199,9.108762 14.4375,21.579143 14.4375,35.34375 0,13.764606 -5.5176,26.22729 -14.4375,35.34375 l -11.03125,-11 -0.625,0.625 11.03125,11 c -9.130866,9.01087 -21.658601,14.59375 -35.5,14.59375 -13.801622,0 -26.321058,-5.53481 -35.4375,-14.5 l 11.125,-11.09375 c 6.277989,6.12179 14.857796,9.90625 24.3125,9.90625 19.241896,0 34.875,-15.629154 34.875,-34.875 0,-19.245847 -15.633104,-34.84375 -34.875,-34.84375 -9.454704,0 -18.034511,3.760884 -24.3125,9.875 L 37.0625,36.4375 C 46.179178,27.478444 58.696991,21.96875 72.5,21.96875 z m -0.875,0.84375 0,13.9375 1.75,0 0,-13.9375 -1.75,0 z M 36.46875,37.0625 47.5625,48.15625 C 41.429794,54.436565 37.65625,63.027539 37.65625,72.5 c 0,9.472461 3.773544,18.055746 9.90625,24.34375 L 36.46875,107.9375 c -8.96721,-9.1247 -14.5,-21.624886 -14.5,-35.4375 0,-13.812615 5.53279,-26.320526 14.5,-35.4375 z M 72.5,39.40625 c 18.297686,0 33.125,14.791695 33.125,33.09375 0,18.302054 -14.827314,33.125 -33.125,33.125 -18.297687,0 -33.09375,-14.822946 -33.09375,-33.125 0,-18.302056 14.796063,-33.09375 33.09375,-33.09375 z M 22.84375,71.625 l 0,1.75 13.96875,0 0,-1.75 -13.96875,0 z m 85.5625,0 0,1.75 14,0 0,-1.75 -14,0 z M 71.75,108.25 l 0,13.9375 1.71875,0 0,-13.9375 -1.71875,0 z'\n\nexport default svgCompassOuterRing\n","\nvar svgCompassGyro = 'm 72.71875,54.375 c -0.476702,0 -0.908208,0.245402 -1.21875,0.5625 -0.310542,0.317098 -0.551189,0.701933 -0.78125,1.1875 -0.172018,0.363062 -0.319101,0.791709 -0.46875,1.25 -6.91615,1.075544 -12.313231,6.656514 -13,13.625 -0.327516,0.117495 -0.661877,0.244642 -0.9375,0.375 -0.485434,0.22959 -0.901634,0.471239 -1.21875,0.78125 -0.317116,0.310011 -0.5625,0.742111 -0.5625,1.21875 l 0.03125,0 c 0,0.476639 0.245384,0.877489 0.5625,1.1875 0.317116,0.310011 0.702066,0.58291 1.1875,0.8125 0.35554,0.168155 0.771616,0.32165 1.21875,0.46875 1.370803,6.10004 6.420817,10.834127 12.71875,11.8125 0.146999,0.447079 0.30025,0.863113 0.46875,1.21875 0.230061,0.485567 0.470708,0.870402 0.78125,1.1875 0.310542,0.317098 0.742048,0.5625 1.21875,0.5625 0.476702,0 0.876958,-0.245402 1.1875,-0.5625 0.310542,-0.317098 0.582439,-0.701933 0.8125,-1.1875 0.172018,-0.363062 0.319101,-0.791709 0.46875,-1.25 6.249045,-1.017063 11.256351,-5.7184 12.625,-11.78125 0.447134,-0.1471 0.86321,-0.300595 1.21875,-0.46875 0.485434,-0.22959 0.901633,-0.502489 1.21875,-0.8125 0.317117,-0.310011 0.5625,-0.710861 0.5625,-1.1875 l -0.03125,0 c 0,-0.476639 -0.245383,-0.908739 -0.5625,-1.21875 C 89.901633,71.846239 89.516684,71.60459 89.03125,71.375 88.755626,71.244642 88.456123,71.117495 88.125,71 87.439949,64.078341 82.072807,58.503735 75.21875,57.375 c -0.15044,-0.461669 -0.326927,-0.884711 -0.5,-1.25 -0.230061,-0.485567 -0.501958,-0.870402 -0.8125,-1.1875 -0.310542,-0.317098 -0.710798,-0.5625 -1.1875,-0.5625 z m -0.0625,1.40625 c 0.03595,-0.01283 0.05968,0 0.0625,0 0.0056,0 0.04321,-0.02233 0.1875,0.125 0.144288,0.147334 0.34336,0.447188 0.53125,0.84375 0.06385,0.134761 0.123901,0.309578 0.1875,0.46875 -0.320353,-0.01957 -0.643524,-0.0625 -0.96875,-0.0625 -0.289073,0 -0.558569,0.04702 -0.84375,0.0625 C 71.8761,57.059578 71.936151,56.884761 72,56.75 c 0.18789,-0.396562 0.355712,-0.696416 0.5,-0.84375 0.07214,-0.07367 0.120304,-0.112167 0.15625,-0.125 z m 0,2.40625 c 0.448007,0 0.906196,0.05436 1.34375,0.09375 0.177011,0.592256 0.347655,1.271044 0.5,2.03125 0.475097,2.370753 0.807525,5.463852 0.9375,8.9375 -0.906869,-0.02852 -1.834463,-0.0625 -2.78125,-0.0625 -0.92298,0 -1.802327,0.03537 -2.6875,0.0625 0.138529,-3.473648 0.493653,-6.566747 0.96875,-8.9375 0.154684,-0.771878 0.320019,-1.463985 0.5,-2.0625 0.405568,-0.03377 0.804291,-0.0625 1.21875,-0.0625 z m -2.71875,0.28125 c -0.129732,0.498888 -0.259782,0.987558 -0.375,1.5625 -0.498513,2.487595 -0.838088,5.693299 -0.96875,9.25 -3.21363,0.15162 -6.119596,0.480068 -8.40625,0.9375 -0.682394,0.136509 -1.275579,0.279657 -1.84375,0.4375 0.799068,-6.135482 5.504716,-11.036454 11.59375,-12.1875 z M 75.5,58.5 c 6.043169,1.18408 10.705093,6.052712 11.5,12.15625 -0.569435,-0.155806 -1.200273,-0.302525 -1.875,-0.4375 -2.262525,-0.452605 -5.108535,-0.783809 -8.28125,-0.9375 -0.130662,-3.556701 -0.470237,-6.762405 -0.96875,-9.25 C 75.761959,59.467174 75.626981,58.990925 75.5,58.5 z m -2.84375,12.09375 c 0.959338,0 1.895843,0.03282 2.8125,0.0625 C 75.48165,71.267751 75.5,71.871028 75.5,72.5 c 0,1.228616 -0.01449,2.438313 -0.0625,3.59375 -0.897358,0.0284 -1.811972,0.0625 -2.75,0.0625 -0.927373,0 -1.831062,-0.03473 -2.71875,-0.0625 -0.05109,-1.155437 -0.0625,-2.365134 -0.0625,-3.59375 0,-0.628972 0.01741,-1.232249 0.03125,-1.84375 0.895269,-0.02827 1.783025,-0.0625 2.71875,-0.0625 z M 68.5625,70.6875 c -0.01243,0.60601 -0.03125,1.189946 -0.03125,1.8125 0,1.22431 0.01541,2.407837 0.0625,3.5625 -3.125243,-0.150329 -5.92077,-0.471558 -8.09375,-0.90625 -0.784983,-0.157031 -1.511491,-0.316471 -2.125,-0.5 -0.107878,-0.704096 -0.1875,-1.422089 -0.1875,-2.15625 0,-0.115714 0.02849,-0.228688 0.03125,-0.34375 0.643106,-0.20284 1.389577,-0.390377 2.25,-0.5625 2.166953,-0.433487 4.97905,-0.75541 8.09375,-0.90625 z m 8.3125,0.03125 c 3.075121,0.15271 5.824455,0.446046 7.96875,0.875 0.857478,0.171534 1.630962,0.360416 2.28125,0.5625 0.0027,0.114659 0,0.228443 0,0.34375 0,0.735827 -0.07914,1.450633 -0.1875,2.15625 -0.598568,0.180148 -1.29077,0.34562 -2.0625,0.5 -2.158064,0.431708 -4.932088,0.754666 -8.03125,0.90625 0.04709,-1.154663 0.0625,-2.33819 0.0625,-3.5625 0,-0.611824 -0.01924,-1.185379 -0.03125,-1.78125 z M 57.15625,72.5625 c 0.0023,0.572772 0.06082,1.131112 0.125,1.6875 -0.125327,-0.05123 -0.266577,-0.10497 -0.375,-0.15625 -0.396499,-0.187528 -0.665288,-0.387337 -0.8125,-0.53125 -0.147212,-0.143913 -0.15625,-0.182756 -0.15625,-0.1875 0,-0.0047 -0.02221,-0.07484 0.125,-0.21875 0.147212,-0.143913 0.447251,-0.312472 0.84375,-0.5 0.07123,-0.03369 0.171867,-0.06006 0.25,-0.09375 z m 31.03125,0 c 0.08201,0.03503 0.175941,0.05872 0.25,0.09375 0.396499,0.187528 0.665288,0.356087 0.8125,0.5 0.14725,0.14391 0.15625,0.21405 0.15625,0.21875 0,0.0047 -0.009,0.04359 -0.15625,0.1875 -0.147212,0.143913 -0.416001,0.343722 -0.8125,0.53125 -0.09755,0.04613 -0.233314,0.07889 -0.34375,0.125 0.06214,-0.546289 0.09144,-1.094215 0.09375,-1.65625 z m -29.5,3.625 c 0.479308,0.123125 0.983064,0.234089 1.53125,0.34375 2.301781,0.460458 5.229421,0.787224 8.46875,0.9375 0.167006,2.84339 0.46081,5.433176 0.875,7.5 0.115218,0.574942 0.245268,1.063612 0.375,1.5625 -5.463677,-1.028179 -9.833074,-5.091831 -11.25,-10.34375 z m 27.96875,0 C 85.247546,81.408945 80.919274,85.442932 75.5,86.5 c 0.126981,-0.490925 0.261959,-0.967174 0.375,-1.53125 0.41419,-2.066824 0.707994,-4.65661 0.875,-7.5 3.204493,-0.15162 6.088346,-0.480068 8.375,-0.9375 0.548186,-0.109661 1.051942,-0.220625 1.53125,-0.34375 z M 70.0625,77.53125 c 0.865391,0.02589 1.723666,0.03125 2.625,0.03125 0.912062,0 1.782843,-0.0048 2.65625,-0.03125 -0.165173,2.736408 -0.453252,5.207651 -0.84375,7.15625 -0.152345,0.760206 -0.322989,1.438994 -0.5,2.03125 -0.437447,0.03919 -0.895856,0.0625 -1.34375,0.0625 -0.414943,0 -0.812719,-0.02881 -1.21875,-0.0625 -0.177011,-0.592256 -0.347655,-1.271044 -0.5,-2.03125 -0.390498,-1.948599 -0.700644,-4.419842 -0.875,-7.15625 z m 1.75,10.28125 c 0.284911,0.01545 0.554954,0.03125 0.84375,0.03125 0.325029,0 0.648588,-0.01171 0.96875,-0.03125 -0.05999,0.148763 -0.127309,0.31046 -0.1875,0.4375 -0.18789,0.396562 -0.386962,0.696416 -0.53125,0.84375 -0.144288,0.147334 -0.181857,0.125 -0.1875,0.125 -0.0056,0 -0.07446,0.02233 -0.21875,-0.125 C 72.355712,88.946416 72.18789,88.646562 72,88.25 71.939809,88.12296 71.872486,87.961263 71.8125,87.8125 z'\n\nexport default svgCompassGyro\n","var svgCompassRotationMarker = 'M 72.46875,22.03125 C 59.505873,22.050338 46.521615,27.004287 36.6875,36.875 L 47.84375,47.96875 C 61.521556,34.240041 83.442603,34.227389 97.125,47.90625 l 11.125,-11.125 C 98.401629,26.935424 85.431627,22.012162 72.46875,22.03125 z'\nexport default svgCompassRotationMarker\n","import Cesium from '../cesium/Cesium'\nimport loadView from '../core/loadView'\nimport ResetViewNavigationControl from './ResetViewNavigationControl'\nimport ZoomNavigationControl from './ZoomNavigationControl'\nimport svgCompassOuterRing from '../svgPaths/svgCompassOuterRing'\nimport svgCompassGyro from '../svgPaths/svgCompassGyro'\nimport svgCompassRotationMarker from '../svgPaths/svgCompassRotationMarker'\nimport Utils from '../core/Utils'\nvar defined = Cesium.defined\nvar CesiumMath = Cesium.Math\nvar getTimestamp = Cesium.getTimestamp\nvar EventHelper = Cesium.EventHelper\nvar Transforms = Cesium.Transforms\nvar SceneMode = Cesium.SceneMode\nvar Cartesian2 = Cesium.Cartesian2\nvar Cartesian3 = Cesium.Cartesian3\nvar Matrix4 = Cesium.Matrix4\nvar BoundingSphere = Cesium.BoundingSphere\nvar HeadingPitchRange = Cesium.HeadingPitchRange\nvar Knockout = Cesium.knockout\n\nvar NavigationViewModel = function (options) {\n this.terria = options.terria\n this.eventHelper = new EventHelper()\n this.enableZoomControls = (defined(options.enableZoomControls)) ? options.enableZoomControls : true\n this.enableCompass = (defined(options.enableCompass)) ? options.enableCompass : true\n this.navigationLocked = false\n\n // if (this.showZoomControls)\n // {\n this.controls = options.controls\n if (!defined(this.controls)) {\n this.controls = [\n new ZoomNavigationControl(this.terria, true),\n new ResetViewNavigationControl(this.terria), \n new ZoomNavigationControl(this.terria, false)\n ]\n }\n // }\n\n this.svgCompassOuterRing = svgCompassOuterRing\n this.svgCompassGyro = svgCompassGyro\n this.svgCompassRotationMarker = svgCompassRotationMarker\n\n this.showCompass = defined(this.terria) && this.enableCompass\n this.heading = this.showCompass ? this.terria.scene.camera.heading : 0.0\n\n this.isOrbiting = false\n this.orbitCursorAngle = 0\n this.orbitCursorOpacity = 0.0\n this.orbitLastTimestamp = 0\n this.orbitFrame = undefined\n this.orbitIsLook = false\n this.orbitMouseMoveFunction = undefined\n this.orbitMouseUpFunction = undefined\n\n this.isRotating = false\n this.rotateInitialCursorAngle = undefined\n this.rotateFrame = undefined\n this.rotateIsLook = false\n this.rotateMouseMoveFunction = undefined\n this.rotateMouseUpFunction = undefined\n\n this._unsubcribeFromPostRender = undefined\n\n Knockout.track(this, ['controls', 'showCompass', 'heading', 'isOrbiting', 'orbitCursorAngle', 'isRotating'])\n\n var that = this\n\n NavigationViewModel.prototype.setNavigationLocked = function (locked) {\n this.navigationLocked = locked\n if (this.controls && this.controls.length > 1) {\n this.controls[1].setNavigationLocked(this.navigationLocked)\n }\n }\n\n function widgetChange () {\n if (defined(that.terria)) {\n if (that._unsubcribeFromPostRender) {\n that._unsubcribeFromPostRender()\n that._unsubcribeFromPostRender = undefined\n }\n\n that.showCompass = true && that.enableCompass\n\n that._unsubcribeFromPostRender = that.terria.scene.postRender.addEventListener(function () {\n that.heading = that.terria.scene.camera.heading\n })\n } else {\n if (that._unsubcribeFromPostRender) {\n that._unsubcribeFromPostRender()\n that._unsubcribeFromPostRender = undefined\n }\n that.showCompass = false\n }\n }\n\n this.eventHelper.add(this.terria.afterWidgetChanged, widgetChange, this)\n // this.terria.afterWidgetChanged.addEventListener(widgetChange);\n\n widgetChange()\n}\n\nNavigationViewModel.prototype.destroy = function () {\n this.eventHelper.removeAll()\n\n // loadView(require('fs').readFileSync(baseURLEmpCesium + 'js-lib/terrajs/lib/Views/Navigation.html', 'utf8'), container, this);\n}\n\nNavigationViewModel.prototype.show = function (container) {\n var testing\n if (this.enableZoomControls && this.enableCompass) {\n testing = '<div class=\"compass\" title=\"\" data-bind=\"visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }\">' +\n '<div class=\"compass-outer-ring-background\"></div>' +\n ' <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-outer-ring\" title=\"\" data-bind=\"style: { transform: \\'rotate(-\\' + heading + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + heading + \\'rad)\\' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-gyro-background\"></div>' +\n ' <div class=\"compass-gyro\" data-bind=\"cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \\'compass-gyro-active\\': isOrbiting }\"></div>' +\n '</div>' +\n '<div class=\"navigation-controls\">' +\n '<!-- ko foreach: controls -->' +\n '<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? \\'navigation-control-last\\' : \\'navigation-control\\' \">' +\n ' <!-- ko if: $data.hasText -->' +\n ' <div data-bind=\"text: $data.text, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' <!-- ko ifnot: $data.hasText -->' +\n ' <div data-bind=\"cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' </div>' +\n ' <!-- /ko -->' +\n '</div>'\n } else if (!this.enableZoomControls && this.enableCompass) {\n testing = '<div class=\"compass\" title=\"\" data-bind=\"visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }\">' +\n '<div class=\"compass-outer-ring-background\"></div>' +\n ' <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-outer-ring\" title=\"\" data-bind=\"style: { transform: \\'rotate(-\\' + heading + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + heading + \\'rad)\\' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-gyro-background\"></div>' +\n ' <div class=\"compass-gyro\" data-bind=\"cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \\'compass-gyro-active\\': isOrbiting }\"></div>' +\n '</div>' +\n '<div class=\"navigation-controls\" style=\"display: none;\" >' +\n '<!-- ko foreach: controls -->' +\n '<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? \\'navigation-control-last\\' : \\'navigation-control\\' \">' +\n ' <!-- ko if: $data.hasText -->' +\n ' <div data-bind=\"text: $data.text, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' <!-- ko ifnot: $data.hasText -->' +\n ' <div data-bind=\"cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' </div>' +\n ' <!-- /ko -->' +\n '</div>'\n } else if (this.enableZoomControls && !this.enableCompass) {\n testing = '<div class=\"compass\" style=\"display: none;\" title=\"\" data-bind=\"visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }\">' +\n '<div class=\"compass-outer-ring-background\"></div>' +\n ' <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-outer-ring\" title=\"\" data-bind=\"style: { transform: \\'rotate(-\\' + heading + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + heading + \\'rad)\\' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-gyro-background\"></div>' +\n ' <div class=\"compass-gyro\" data-bind=\"cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \\'compass-gyro-active\\': isOrbiting }\"></div>' +\n '</div>' +\n '<div class=\"navigation-controls\" >' +\n '<!-- ko foreach: controls -->' +\n '<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? \\'navigation-control-last\\' : \\'navigation-control\\' \">' +\n ' <!-- ko if: $data.hasText -->' +\n ' <div data-bind=\"text: $data.text, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' <!-- ko ifnot: $data.hasText -->' +\n ' <div data-bind=\"cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' </div>' +\n ' <!-- /ko -->' +\n '</div>'\n } else if (!this.enableZoomControls && !this.enableCompass) {\n testing = '<div class=\"compass\" style=\"display: none;\" title=\"\" data-bind=\"visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }\">' +\n '<div class=\"compass-outer-ring-background\"></div>' +\n ' <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + orbitCursorAngle + \\'rad)\\', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-outer-ring\" title=\"\" data-bind=\"style: { transform: \\'rotate(-\\' + heading + \\'rad)\\', \\'-webkit-transform\\': \\'rotate(-\\' + heading + \\'rad)\\' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>' +\n ' <div class=\"compass-gyro-background\"></div>' +\n ' <div class=\"compass-gyro\" data-bind=\"cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \\'compass-gyro-active\\': isOrbiting }\"></div>' +\n '</div>' +\n '<div class=\"navigation-controls\" style=\"display: none;\" >' +\n '<!-- ko foreach: controls -->' +\n '<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? \\'navigation-control-last\\' : \\'navigation-control\\' \">' +\n ' <!-- ko if: $data.hasText -->' +\n ' <div data-bind=\"text: $data.text, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' <!-- ko ifnot: $data.hasText -->' +\n ' <div data-bind=\"cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ? \\'navigation-control-icon-active \\' + $data.cssClass : $data.cssClass\"></div>' +\n ' <!-- /ko -->' +\n ' </div>' +\n ' <!-- /ko -->' +\n '</div>'\n }\n loadView(testing, container, this)\n // loadView(navigatorTemplate, container, this);\n // loadView(require('fs').readFileSync(baseURLEmpCesium + 'js-lib/terrajs/lib/Views/Navigation.html', 'utf8'), container, this);\n}\n\n/**\n * Adds a control to this toolbar.\n * @param {NavControl} control The control to add.\n */\nNavigationViewModel.prototype.add = function (control) {\n this.controls.push(control)\n}\n\n/**\n * Removes a control from this toolbar.\n * @param {NavControl} control The control to remove.\n */\nNavigationViewModel.prototype.remove = function (control) {\n this.controls.remove(control)\n}\n\n/**\n * Checks if the control given is the last control in the control array.\n * @param {NavControl} control The control to remove.\n */\nNavigationViewModel.prototype.isLastControl = function (control) {\n return (control === this.controls[this.controls.length - 1])\n}\n\nvar vectorScratch = new Cartesian2()\n\nNavigationViewModel.prototype.handleMouseDown = function (viewModel, e) {\n var scene = this.terria.scene\n if (scene.mode === SceneMode.MORPHING) {\n return true\n }\n if (viewModel.navigationLocked) {\n return true\n }\n\n var compassElement = e.currentTarget\n var compassRectangle = e.currentTarget.getBoundingClientRect()\n var maxDistance = compassRectangle.width / 2.0\n var center = new Cartesian2((compassRectangle.right - compassRectangle.left) / 2.0, (compassRectangle.bottom - compassRectangle.top) / 2.0)\n var clickLocation = new Cartesian2(e.clientX - compassRectangle.left, e.clientY - compassRectangle.top)\n var vector = Cartesian2.subtract(clickLocation, center, vectorScratch)\n var distanceFromCenter = Cartesian2.magnitude(vector)\n\n var distanceFraction = distanceFromCenter / maxDistance\n\n var nominalTotalRadius = 145\n var norminalGyroRadius = 50\n\n if (distanceFraction < norminalGyroRadius / nominalTotalRadius) {\n orbit(this, compassElement, vector)\n // return false;\n } else if (distanceFraction < 1.0) {\n rotate(this, compassElement, vector)\n // return false;\n } else {\n return true\n }\n}\n\nvar oldTransformScratch = new Matrix4()\nvar newTransformScratch = new Matrix4()\nvar centerScratch = new Cartesian3()\n\nNavigationViewModel.prototype.handleDoubleClick = function (viewModel, e) {\n var scene = viewModel.terria.scene\n var camera = scene.camera\n\n var sscc = scene.screenSpaceCameraController\n\n if (scene.mode === SceneMode.MORPHING || !sscc.enableInputs) {\n return true\n }\n if (viewModel.navigationLocked) {\n return true\n }\n if (scene.mode === SceneMode.COLUMBUS_VIEW && !sscc.enableTranslate) {\n return\n }\n if (scene.mode === SceneMode.SCENE3D || scene.mode === SceneMode.COLUMBUS_VIEW) {\n if (!sscc.enableLook) {\n return\n }\n\n if (scene.mode === SceneMode.SCENE3D) {\n if (!sscc.enableRotate) {\n return\n }\n }\n }\n\n var center = Utils.getCameraFocus(viewModel.terria, true, centerScratch)\n\n if (!defined(center)) {\n // Globe is barely visible, so reset to home view.\n\n this.controls[1].resetView()\n return\n }\n\n var cameraPosition = scene.globe.ellipsoid.cartographicToCartesian(camera.positionCartographic, new Cartesian3())\n\n var surfaceNormal = scene.globe.ellipsoid.geodeticSurfaceNormal(center)\n\n var focusBoundingSphere = new BoundingSphere(center, 0)\n\n camera.flyToBoundingSphere(focusBoundingSphere, {\n offset: new HeadingPitchRange(0,\n // do not use camera.pitch since the pitch at the center/target is required\n CesiumMath.PI_OVER_TWO - Cartesian3.angleBetween(\n surfaceNormal,\n camera.directionWC\n ),\n // distanceToBoundingSphere returns wrong values when in 2D or Columbus view so do not use\n // camera.distanceToBoundingSphere(focusBoundingSphere)\n // instead calculate distance manually\n Cartesian3.distance(cameraPosition, center)\n ),\n duration: 1.5\n })\n}\n\nNavigationViewModel.create = function (options) {\n // options.enableZoomControls = this.enableZoomControls;\n // options.enableCompass = this.enableCompass;\n var result = new NavigationViewModel(options)\n result.show(options.container)\n return result\n}\n\nfunction orbit (viewModel, compassElement, cursorVector) {\n var scene = viewModel.terria.scene\n\n var sscc = scene.screenSpaceCameraController\n\n // do not orbit if it is disabled\n if (scene.mode === SceneMode.MORPHING || !sscc.enableInputs) {\n return\n }\n if (viewModel.navigationLocked) {\n return true\n }\n\n switch (scene.mode) {\n case SceneMode.COLUMBUS_VIEW:\n if (sscc.enableLook) {\n break\n }\n\n if (!sscc.enableTranslate || !sscc.enableTilt) {\n return\n }\n break\n case SceneMode.SCENE3D:\n if (sscc.enableLook) {\n break\n }\n\n if (!sscc.enableTilt || !sscc.enableRotate) {\n return\n }\n break\n case SceneMode.SCENE2D:\n if (!sscc.enableTranslate) {\n return\n }\n break\n }\n\n // Remove existing event handlers, if any.\n document.removeEventListener('mousemove', viewModel.orbitMouseMoveFunction, false)\n document.removeEventListener('mouseup', viewModel.orbitMouseUpFunction, false)\n\n if (defined(viewModel.orbitTickFunction)) {\n viewModel.terria.clock.onTick.removeEventListener(viewModel.orbitTickFunction)\n }\n\n viewModel.orbitMouseMoveFunction = undefined\n viewModel.orbitMouseUpFunction = undefined\n viewModel.orbitTickFunction = undefined\n\n viewModel.isOrbiting = true\n viewModel.orbitLastTimestamp = getTimestamp()\n\n var camera = scene.camera\n\n if (defined(viewModel.terria.trackedEntity)) {\n // when tracking an entity simply use that reference frame\n viewModel.orbitFrame = undefined\n viewModel.orbitIsLook = false\n } else {\n var center = Utils.getCameraFocus(viewModel.terria, true, centerScratch)\n\n if (!defined(center)) {\n viewModel.orbitFrame = Transforms.eastNorthUpToFixedFrame(camera.positionWC, scene.globe.ellipsoid, newTransformScratch)\n viewModel.orbitIsLook = true\n } else {\n viewModel.orbitFrame = Transforms.eastNorthUpToFixedFrame(center, scene.globe.ellipsoid, newTransformScratch)\n viewModel.orbitIsLook = false\n }\n }\n\n viewModel.orbitTickFunction = function (e) {\n var timestamp = getTimestamp()\n var deltaT = timestamp - viewModel.orbitLastTimestamp\n var rate = (viewModel.orbitCursorOpacity - 0.5) * 2.5 / 1000\n var distance = deltaT * rate\n\n var angle = viewModel.orbitCursorAngle + CesiumMath.PI_OVER_TWO\n var x = Math.cos(angle) * distance\n var y = Math.sin(angle) * distance\n\n var oldTransform\n\n if (viewModel.navigationLocked) {\n return true\n }\n\n if (defined(viewModel.orbitFrame)) {\n oldTransform = Matrix4.clone(camera.transform, oldTransformScratch)\n\n camera.lookAtTransform(viewModel.orbitFrame)\n }\n\n // do not look up/down or rotate in 2D mode\n if (scene.mode === SceneMode.SCENE2D) {\n camera.move(new Cartesian3(x, y, 0), Math.max(scene.canvas.clientWidth, scene.canvas.clientHeight) / 100 * camera.positionCartographic.height * distance)\n } else {\n if (viewModel.orbitIsLook) {\n camera.look(Cartesian3.UNIT_Z, -x)\n camera.look(camera.right, -y)\n } else {\n camera.rotateLeft(x)\n camera.rotateUp(y)\n }\n }\n\n if (defined(viewModel.orbitFrame)) {\n camera.lookAtTransform(oldTransform)\n }\n\n // viewModel.terria.cesium.notifyRepaintRequired();\n\n viewModel.orbitLastTimestamp = timestamp\n }\n\n function updateAngleAndOpacity (vector, compassWidth) {\n var angle = Math.atan2(-vector.y, vector.x)\n viewModel.orbitCursorAngle = CesiumMath.zeroToTwoPi(angle - CesiumMath.PI_OVER_TWO)\n\n var distance = Cartesian2.magnitude(vector)\n var maxDistance = compassWidth / 2.0\n var distanceFraction = Math.min(distance / maxDistance, 1.0)\n var easedOpacity = 0.5 * distanceFraction * distanceFraction + 0.5\n viewModel.orbitCursorOpacity = easedOpacity\n\n // viewModel.terria.cesium.notifyRepaintRequired();\n }\n\n viewModel.orbitMouseMoveFunction = function (e) {\n var compassRectangle = compassElement.getBoundingClientRect()\n var center = new Cartesian2((compassRectangle.right - compassRectangle.left) / 2.0, (compassRectangle.bottom - compassRectangle.top) / 2.0)\n var clickLocation = new Cartesian2(e.clientX - compassRectangle.left, e.clientY - compassRectangle.top)\n var vector = Cartesian2.subtract(clickLocation, center, vectorScratch)\n updateAngleAndOpacity(vector, compassRectangle.width)\n }\n\n viewModel.orbitMouseUpFunction = function (e) {\n // TODO: if mouse didn't move, reset view to looking down, north is up?\n\n viewModel.isOrbiting = false\n document.removeEventListener('mousemove', viewModel.orbitMouseMoveFunction, false)\n document.removeEventListener('mouseup', viewModel.orbitMouseUpFunction, false)\n\n if (defined(viewModel.orbitTickFunction)) {\n viewModel.terria.clock.onTick.removeEventListener(viewModel.orbitTickFunction)\n }\n\n viewModel.orbitMouseMoveFunction = undefined\n viewModel.orbitMouseUpFunction = undefined\n viewModel.orbitTickFunction = undefined\n }\n\n document.addEventListener('mousemove', viewModel.orbitMouseMoveFunction, false)\n document.addEventListener('mouseup', viewModel.orbitMouseUpFunction, false)\n viewModel.terria.clock.onTick.addEventListener(viewModel.orbitTickFunction)\n\n updateAngleAndOpacity(cursorVector, compassElement.getBoundingClientRect().width)\n}\n\nfunction rotate (viewModel, compassElement, cursorVector) {\n var scene = viewModel.terria.scene\n var camera = scene.camera\n\n var sscc = scene.screenSpaceCameraController\n // do not rotate in 2D mode or if rotating is disabled\n if (scene.mode === SceneMode.MORPHING || scene.mode === SceneMode.SCENE2D || !sscc.enableInputs) {\n return\n }\n if (viewModel.navigationLocked) {\n return true\n }\n\n if (!sscc.enableLook && (scene.mode === SceneMode.COLUMBUS_VIEW || (scene.mode === SceneMode.SCENE3D && !sscc.enableRotate))) {\n return\n }\n\n // Remove existing event handlers, if any.\n document.removeEventListener('mousemove', viewModel.rotateMouseMoveFunction, false)\n document.removeEventListener('mouseup', viewModel.rotateMouseUpFunction, false)\n\n viewModel.rotateMouseMoveFunction = undefined\n viewModel.rotateMouseUpFunction = undefined\n\n viewModel.isRotating = true\n viewModel.rotateInitialCursorAngle = Math.atan2(-cursorVector.y, cursorVector.x)\n\n if (defined(viewModel.terria.trackedEntity)) {\n // when tracking an entity simply use that reference frame\n viewModel.rotateFrame = undefined\n viewModel.rotateIsLook = false\n } else {\n var viewCenter = Utils.getCameraFocus(viewModel.terria, true, centerScratch)\n\n if (!defined(viewCenter) || (scene.mode === SceneMode.COLUMBUS_VIEW && !sscc.enableLook && !sscc.enableTranslate)) {\n viewModel.rotateFrame = Transforms.eastNorthUpToFixedFrame(camera.positionWC, scene.globe.ellipsoid, newTransformScratch)\n viewModel.rotateIsLook = true\n } else {\n viewModel.rotateFrame = Transforms.eastNorthUpToFixedFrame(viewCenter, scene.globe.ellipsoid, newTransformScratch)\n viewModel.rotateIsLook = false\n }\n }\n\n var oldTransform\n if (defined(viewModel.rotateFrame)) {\n oldTransform = Matrix4.clone(camera.transform, oldTransformScratch)\n camera.lookAtTransform(viewModel.rotateFrame)\n }\n\n viewModel.rotateInitialCameraAngle = -camera.heading\n\n if (defined(viewModel.rotateFrame)) {\n camera.lookAtTransform(oldTransform)\n }\n\n viewModel.rotateMouseMoveFunction = function (e) {\n var compassRectangle = compassElement.getBoundingClientRect()\n var center = new Cartesian2((compassRectangle.right - compassRectangle.left) / 2.0, (compassRectangle.bottom - compassRectangle.top) / 2.0)\n var clickLocation = new Cartesian2(e.clientX - compassRectangle.left, e.clientY - compassRectangle.top)\n var vector = Cartesian2.subtract(clickLocation, center, vectorScratch)\n var angle = Math.atan2(-vector.y, vector.x)\n\n var angleDifference = angle - viewModel.rotateInitialCursorAngle\n var newCameraAngle = CesiumMath.zeroToTwoPi(viewModel.rotateInitialCameraAngle - angleDifference)\n\n var camera = viewModel.terria.scene.camera\n\n var oldTransform\n if (defined(viewModel.rotateFrame)) {\n oldTransform = Matrix4.clone(camera.transform, oldTransformScratch)\n camera.lookAtTransform(viewModel.rotateFrame)\n }\n\n var currentCameraAngle = -camera.heading\n camera.rotateRight(newCameraAngle - currentCameraAngle)\n\n if (defined(viewModel.rotateFrame)) {\n camera.lookAtTransform(oldTransform)\n }\n\n // viewModel.terria.cesium.notifyRepaintRequired();\n }\n\n viewModel.rotateMouseUpFunction = function (e) {\n viewModel.isRotating = false\n document.removeEventListener('mousemove', viewModel.rotateMouseMoveFunction, false)\n document.removeEventListener('mouseup', viewModel.rotateMouseUpFunction, false)\n\n viewModel.rotateMouseMoveFunction = undefined\n viewModel.rotateMouseUpFunction = undefined\n }\n\n document.addEventListener('mousemove', viewModel.rotateMouseMoveFunction, false)\n document.addEventListener('mouseup', viewModel.rotateMouseUpFunction, false)\n}\n\nexport default NavigationViewModel\n","/* eslint-disable no-unused-vars */\nimport Cesium from './cesium/Cesium'\n// import registerKnockoutBindings from './core/registerKnockoutBindings'\nimport DistanceLegendViewModel from './viewModels/DistanceLegendViewModel'\nimport NavigationViewModel from './viewModels/NavigationViewModel'\n\nvar defined = Cesium.defined\nvar definedProperties = Cesium.defineProperties\nvar CesiumEvent = Cesium.Event\nvar Knockout = Cesium.knockout\nvar DeveloperError = Cesium.DeveloperError\n/**\n * @alias CesiumNavigation\n * @constructor\n *\n * @param {Viewer|CesiumWidget} viewerCesiumWidget The Viewer or CesiumWidget instance\n */\nvar CesiumNavigation = function (viewerCesiumWidget) {\n initialize.apply(this, arguments)\n\n this._onDestroyListeners = []\n}\n\nCesiumNavigation.prototype.distanceLegendViewModel = undefined\nCesiumNavigation.prototype.navigationViewModel = undefined\nCesiumNavigation.prototype.navigationDiv = undefined\nCesiumNavigation.prototype.distanceLegendDiv = undefined\nCesiumNavigation.prototype.terria = undefined\nCesiumNavigation.prototype.container = undefined\nCesiumNavigation.prototype._onDestroyListeners = undefined\nCesiumNavigation.prototype._navigationLocked = false\n\nCesiumNavigation.prototype.setNavigationLocked = function (locked) {\n this._navigationLocked = locked\n this.navigationViewModel.setNavigationLocked(this._navigationLocked)\n}\n\nCesiumNavigation.prototype.getNavigationLocked = function () {\n return this._navigationLocked\n}\n\nCesiumNavigation.prototype.destroy = function () {\n if (defined(this.navigationViewModel)) {\n this.navigationViewModel.destroy()\n }\n if (defined(this.distanceLegendViewModel)) {\n this.distanceLegendViewModel.destroy()\n }\n\n if (defined(this.navigationDiv)) {\n this.navigationDiv.parentNode.removeChild(this.navigationDiv)\n }\n delete this.navigationDiv\n\n if (defined(this.distanceLegendDiv)) {\n this.distanceLegendDiv.parentNode.removeChild(this.distanceLegendDiv)\n }\n delete this.distanceLegendDiv\n\n if (defined(this.container)) {\n this.container.parentNode.removeChild(this.container)\n }\n delete this.container\n\n for (var i = 0; i < this._onDestroyListeners.length; i++) {\n this._onDestroyListeners[i]()\n }\n}\n\nCesiumNavigation.prototype.addOnDestroyListener = function (callback) {\n if (typeof callback === 'function') {\n this._onDestroyListeners.push(callback)\n }\n}\n\n/**\n * @param {Viewer|CesiumWidget} viewerCesiumWidget The Viewer or CesiumWidget instance\n * @param options\n */\nfunction initialize (viewerCesiumWidget, options) {\n if (!defined(viewerCesiumWidget)) {\n throw new DeveloperError('CesiumWidget or Viewer is required.')\n }\n\n // options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n var cesiumWidget = defined(viewerCesiumWidget.cesiumWidget) ? viewerCesiumWidget.cesiumWidget : viewerCesiumWidget\n\n var container = document.createElement('div')\n container.className = 'cesium-widget-cesiumNavigationContainer'\n cesiumWidget.container.appendChild(container)\n\n this.terria = viewerCesiumWidget\n this.terria.options = (defined(options)) ? options : {}\n this.terria.afterWidgetChanged = new CesiumEvent()\n this.terria.beforeWidgetChanged = new CesiumEvent()\n this.container = container\n\n // this.navigationDiv.setAttribute(\"id\", \"navigationDiv\");\n\n // Register custom Knockout.js bindings. If you're not using the TerriaJS user interface, you can remove this.\n // registerKnockoutBindings()\n\n if (!defined(this.terria.options.enableDistanceLegend) || this.terria.options.enableDistanceLegend) {\n this.distanceLegendDiv = document.createElement('div')\n container.appendChild(this.distanceLegendDiv)\n this.distanceLegendDiv.setAttribute('id', 'distanceLegendDiv')\n this.distanceLegendViewModel = DistanceLegendViewModel.create({\n container: this.distanceLegendDiv,\n terria: this.terria,\n mapElement: container,\n enableDistanceLegend: true\n })\n }\n\n if ((!defined(this.terria.options.enableZoomControls) || this.terria.options.enableZoomControls) && (!defined(this.terria.options.enableCompass) || this.terria.options.enableCompass)) {\n this.navigationDiv = document.createElement('div')\n this.navigationDiv.setAttribute('id', 'navigationDiv')\n container.appendChild(this.navigationDiv)\n // Create the navigation controls.\n this.navigationViewModel = NavigationViewModel.create({\n container: this.navigationDiv,\n terria: this.terria,\n enableZoomControls: true,\n enableCompass: true\n })\n } else if ((defined(this.terria.options.enableZoomControls) && !this.terria.options.enableZoomControls) && (!defined(this.terria.options.enableCompass) || this.terria.options.enableCompass)) {\n this.navigationDiv = document.createElement('div')\n this.navigationDiv.setAttribute('id', 'navigationDiv')\n container.appendChild(this.navigationDiv)\n // Create the navigation controls.\n this.navigationViewModel = NavigationViewModel.create({\n container: this.navigationDiv,\n terria: this.terria,\n enableZoomControls: false,\n enableCompass: true\n })\n } else if ((!defined(this.terria.options.enableZoomControls) || this.terria.options.enableZoomControls) && (defined(this.terria.options.enableCompass) && !this.terria.options.enableCompass)) {\n this.navigationDiv = document.createElement('div')\n this.navigationDiv.setAttribute('id', 'navigationDiv')\n container.appendChild(this.navigationDiv)\n // Create the navigation controls.\n this.navigationViewModel = NavigationViewModel.create({\n container: this.navigationDiv,\n terria: this.terria,\n enableZoomControls: true,\n enableCompass: false\n })\n } else if ((defined(this.terria.options.enableZoomControls) && !this.terria.options.enableZoomControls) && (defined(this.terria.options.enableCompass) && !this.terria.options.enableCompass)) {\n // this.navigationDiv.setAttribute(\"id\", \"navigationDiv\");\n // container.appendChild(this.navigationDiv);\n // Create the navigation controls.\n // this.navigationViewModel = NavigationViewModel.create({\n // container: this.navigationDiv,\n // terria: this.terria,\n // enableZoomControls: false,\n // enableCompass: false\n // });\n }\n}\n\nexport default CesiumNavigation\n"],"names":["window","Cesium","require$$0","document","require$$1","require$$2","dP","global","$toString","DESCRIPTORS","TO_STRING","createFragmentFromTemplate","htmlString","holder","createElement","innerHTML","fragment","createDocumentFragment","firstChild","appendChild","getElement","Knockout","knockout","loadView","container","viewModel","nodes","i","childNodes","length","push","node","nodeType","applyBindings","defined","DeveloperError","EllipsoidGeodesic","Cartesian2","getTimestamp","EventHelper","DistanceLegendViewModel","options","terria","_removeSubscription","undefined","_lastLegendUpdate","eventHelper","distanceLabel","barWidth","enableDistanceLegend","track","add","afterWidgetChanged","that","addUpdateSubscription","scene","postRender","addEventListener","updateDistanceLegendCesium","prototype","destroy","removeAll","show","testing","create","result","geodesic","distances","now","width","canvas","clientWidth","height","clientHeight","left","camera","getPickRay","right","globe","leftPosition","pick","rightPosition","leftCartographic","ellipsoid","cartesianToCartographic","rightCartographic","setEndPoints","pixelDistance","surfaceDistance","maxBarWidth","distance","label","toString","min","IE_PROTO","PROTOTYPE","$export","svgReset","defineProperties","UserInterfaceControl","_terria","name","text","svgIcon","svgHeight","svgWidth","cssClass","isActive","get","hasText","activate","NavigationControl","apply","arguments","Object","Camera","Rectangle","Cartographic","ResetViewNavigationControl","navigationLocked","setNavigationLocked","locked","resetView","sscc","screenSpaceCameraController","enableInputs","trackedEntity","defaultResetView","flyTo","destination","cartographicToCartesian","validate","orientation","heading","Math","toRadians","e","console","log","flyHome","DEFAULT_VIEW_RECTANGLE","Ray","Cartesian3","ReferenceFrame","SceneMode","Utils","unprojectedScratch","rayScratch","getCameraFocus","inWorldCoordinates","mode","MORPHING","position","getValue","clock","currentTime","origin","positionWC","direction","directionWC","SCENE2D","COLUMBUS_VIEW","worldToCameraCoordinatesPoint","mapProjection","unproject","IntersectionTests","ZoomNavigationControl","zoomIn","relativeAmount","zoom","cartesian3Scratch","enableZoom","positionCartographic","focus","ray","grazingAltitudeLocation","pitch","roll","up","subtract","movementVector","multiplyByScalar","endPosition","duration","convert","svgCompassOuterRing","svgCompassGyro","svgCompassRotationMarker","CesiumMath","Transforms","Matrix4","BoundingSphere","HeadingPitchRange","NavigationViewModel","enableZoomControls","enableCompass","controls","showCompass","isOrbiting","orbitCursorAngle","orbitCursorOpacity","orbitLastTimestamp","orbitFrame","orbitIsLook","orbitMouseMoveFunction","orbitMouseUpFunction","isRotating","rotateInitialCursorAngle","rotateFrame","rotateIsLook","rotateMouseMoveFunction","rotateMouseUpFunction","_unsubcribeFromPostRender","widgetChange","control","remove","isLastControl","vectorScratch","handleMouseDown","compassElement","currentTarget","compassRectangle","getBoundingClientRect","maxDistance","center","bottom","top","clickLocation","clientX","clientY","vector","distanceFromCenter","magnitude","distanceFraction","nominalTotalRadius","norminalGyroRadius","orbit","rotate","oldTransformScratch","newTransformScratch","centerScratch","handleDoubleClick","enableTranslate","SCENE3D","enableLook","enableRotate","cameraPosition","surfaceNormal","geodeticSurfaceNormal","focusBoundingSphere","flyToBoundingSphere","offset","PI_OVER_TWO","angleBetween","cursorVector","enableTilt","removeEventListener","orbitTickFunction","onTick","eastNorthUpToFixedFrame","timestamp","deltaT","rate","angle","x","cos","y","sin","oldTransform","clone","transform","lookAtTransform","move","max","look","UNIT_Z","rotateLeft","rotateUp","updateAngleAndOpacity","compassWidth","atan2","zeroToTwoPi","easedOpacity","viewCenter","rotateInitialCameraAngle","angleDifference","newCameraAngle","currentCameraAngle","rotateRight","definedProperties","CesiumEvent","Event","CesiumNavigation","viewerCesiumWidget","initialize","_onDestroyListeners","distanceLegendViewModel","navigationViewModel","navigationDiv","distanceLegendDiv","_navigationLocked","getNavigationLocked","parentNode","removeChild","addOnDestroyListener","callback","cesiumWidget","className","beforeWidgetChanged","setAttribute","mapElement"],"mappings":"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"}
|