├── .gitignore ├── LICENSE ├── MFAPIHandler ├── MFAPIHandler.ipynb ├── README.md └── requirements.txt ├── README.md └── Stinuum Web ├── ConnectFunction.js ├── LICENSE ├── app.js ├── data ├── CesiumAir │ ├── 0_Cesium_Air.png │ ├── 1_Cesium_Air_Prop.png │ ├── Cesium_Air.dae │ ├── Cesium_Air.glb │ └── Cesium_Air.gltf ├── CesiumMilkTruck │ ├── CesiumMilkTruck-kmc.glb │ ├── CesiumMilkTruck-kmc.gltf │ ├── CesiumMilkTruck.dae │ ├── CesiumMilkTruck.glb │ ├── CesiumMilkTruck.gltf │ └── CesiumMilkTruck.png ├── MF-JSON Prism │ ├── MovingGeometryCollection │ │ ├── mfjson_GeometryCollection.json │ │ └── mfjson_GeometryCollection_Sample.json │ ├── MovingLineString │ │ ├── mfjson_linestring_typhoon_CubicSample.json │ │ ├── mfjson_linestring_typhoon_DiscreteSample.json │ │ ├── mfjson_linestring_typhoon_LinearSample.json │ │ ├── mfjson_linestring_typhoon_QuadraticSample.json │ │ └── mfjson_linestring_typhoon_StepSample.json │ ├── MovingPoint │ │ ├── mfjson_prism_CubicSample.json │ │ ├── mfjson_prism_CubicSample_with_image.json │ │ ├── mfjson_prism_DiscreteSample.json │ │ ├── mfjson_prism_LinearSample.json │ │ ├── mfjson_prism_QuadraticSample.json │ │ └── mfjson_prism_StepSample.json │ ├── MovingPointCloud │ │ └── mfjson_pointcloud_tweets_DiscreteSample.json │ ├── MovingPolygon │ │ ├── mfjson_polygon_double_typhoon.json │ │ ├── mfjson_polygon_multiple_typhoon.json │ │ ├── mfjson_polygon_typhoon_CubicSample.json │ │ ├── mfjson_polygon_typhoon_DiscreteSample.json │ │ ├── mfjson_polygon_typhoon_LinearSample.json │ │ ├── mfjson_polygon_typhoon_QuadraticSample.json │ │ └── mfjson_polygon_typhoon_StepSample.json │ └── PracticeDataSet │ │ ├── mfjson_point_car_with_image.json │ │ ├── mfjson_point_for_mf_api_server.json │ │ ├── mfjson_point_from_mobilitytwin.json │ │ └── mfjson_polygon_multiple_typhoon.json └── MF-JSON Trajectory │ ├── Feature │ ├── 201901.en-trajectory.json │ ├── 201902.en-trajectory.json │ ├── 201903.en-trajectory.json │ ├── 201904.en-trajectory.json │ ├── 201905.en-trajectory.json │ ├── 201906.en-trajectory.json │ ├── 201907.en-trajectory.json │ ├── 201908.en-trajectory.json │ ├── 201909.en-trajectory.json │ └── 201910.en-trajectory.json │ └── FeatureCollection │ └── 201901_03.en-trajectory.json ├── documents └── image │ ├── AnimationWidget.gif │ ├── AnimationWidget2.gif │ ├── Graph1.png │ ├── Graph2.png │ ├── Graph3.png │ ├── Image.png │ ├── Layers1.png │ ├── Layers2.png │ ├── MFCollection.png │ ├── Main.png │ ├── Rader.png │ ├── SceneModePicker1.png │ ├── SceneModePicker2.png │ ├── Server-1.png │ ├── Server-2.png │ ├── Server-3.png │ ├── Server-4.png │ ├── Server-5.png │ ├── Server.png │ ├── ServerLogin.png │ ├── Slice.png │ ├── StinuumWeb.png │ ├── Text.png │ ├── Upload.png │ ├── Wiki_README.md │ ├── get.png │ ├── get2.png │ ├── get3.png │ ├── get4.png │ └── get5.png ├── img ├── settings.svg ├── skill (6).svg ├── skill.svg └── skill5.svg ├── package-lock.json ├── package.json ├── routes └── login.js ├── src ├── css │ ├── bs.css │ ├── demo_style copy.css │ ├── demo_style.css │ ├── mfjson.css │ └── style_test.css ├── documentation │ ├── ConnectFunction.md │ ├── DirectionRadar.md │ ├── GeometryViewer.md │ ├── Imagemarking.md │ ├── MFCollection.md │ ├── MFPair.md │ ├── MovementDrawing.md │ ├── PathDrawing.md │ ├── PropertyGraph.md │ ├── QueryProcessor.md │ ├── SRSTranslator.md │ ├── TemporalMap.md │ └── image │ │ ├── AnimationWidget.gif │ │ ├── AnimationWidget2.gif │ │ ├── Graph1.png │ │ ├── Graph2.png │ │ ├── Graph3.png │ │ ├── Image.png │ │ ├── Layers1.png │ │ ├── Layers2.png │ │ ├── MFCollection.png │ │ ├── Main.png │ │ ├── Rader.png │ │ ├── SceneModePicker1.png │ │ ├── SceneModePicker2.png │ │ ├── Server.png │ │ ├── ServerLogin.png │ │ ├── Slice.png │ │ ├── StinuumWeb.png │ │ ├── Text.png │ │ ├── Upload.png │ │ ├── ddd.md │ │ ├── get.png │ │ ├── get2.png │ │ ├── get3.png │ │ ├── get4.png │ │ └── get5.png └── js │ ├── mf-cesium │ ├── .Rhistory │ ├── DivListMaker.js │ ├── FeatureBuffer.js │ ├── Fileio.js │ ├── List.js │ ├── Local.js │ ├── Print.js │ ├── SRSTranslator.js │ ├── ServerAuth.js │ ├── ServerConnector.js │ ├── ViewProperties.js │ ├── analysis.js │ ├── d3-timelines.js │ ├── data_crs.csv │ ├── data_symbol.csv │ ├── lib │ │ ├── addon │ │ │ ├── comment │ │ │ │ ├── comment.js │ │ │ │ └── continuecomment.js │ │ │ ├── dialog │ │ │ │ ├── dialog.css │ │ │ │ └── dialog.js │ │ │ ├── display │ │ │ │ ├── autorefresh.js │ │ │ │ ├── fullscreen.css │ │ │ │ ├── fullscreen.js │ │ │ │ ├── panel.js │ │ │ │ ├── placeholder.js │ │ │ │ └── rulers.js │ │ │ ├── edit │ │ │ │ ├── closebrackets.js │ │ │ │ ├── closetag.js │ │ │ │ ├── continuelist.js │ │ │ │ ├── matchbrackets.js │ │ │ │ ├── matchtags.js │ │ │ │ └── trailingspace.js │ │ │ ├── fold │ │ │ │ ├── brace-fold.js │ │ │ │ ├── comment-fold.js │ │ │ │ ├── foldcode.js │ │ │ │ ├── foldgutter.css │ │ │ │ ├── foldgutter.js │ │ │ │ ├── indent-fold.js │ │ │ │ ├── markdown-fold.js │ │ │ │ └── xml-fold.js │ │ │ ├── hint │ │ │ │ ├── anyword-hint.js │ │ │ │ ├── css-hint.js │ │ │ │ ├── html-hint.js │ │ │ │ ├── javascript-hint.js │ │ │ │ ├── show-hint.css │ │ │ │ ├── show-hint.js │ │ │ │ ├── sql-hint.js │ │ │ │ └── xml-hint.js │ │ │ ├── lint │ │ │ │ ├── coffeescript-lint.js │ │ │ │ ├── css-lint.js │ │ │ │ ├── html-lint.js │ │ │ │ ├── javascript-lint.js │ │ │ │ ├── json-lint.js │ │ │ │ ├── lint.css │ │ │ │ ├── lint.js │ │ │ │ └── yaml-lint.js │ │ │ ├── merge │ │ │ │ ├── merge.css │ │ │ │ └── merge.js │ │ │ ├── mode │ │ │ │ ├── loadmode.js │ │ │ │ ├── multiplex.js │ │ │ │ ├── multiplex_test.js │ │ │ │ ├── overlay.js │ │ │ │ └── simple.js │ │ │ ├── runmode │ │ │ │ ├── colorize.js │ │ │ │ ├── runmode-standalone.js │ │ │ │ ├── runmode.js │ │ │ │ └── runmode.node.js │ │ │ ├── scroll │ │ │ │ ├── annotatescrollbar.js │ │ │ │ ├── scrollpastend.js │ │ │ │ ├── simplescrollbars.css │ │ │ │ └── simplescrollbars.js │ │ │ ├── search │ │ │ │ ├── jump-to-line.js │ │ │ │ ├── match-highlighter.js │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ ├── search.js │ │ │ │ └── searchcursor.js │ │ │ ├── selection │ │ │ │ ├── active-line.js │ │ │ │ ├── mark-selection.js │ │ │ │ └── selection-pointer.js │ │ │ ├── tern │ │ │ │ ├── tern.css │ │ │ │ ├── tern.js │ │ │ │ └── worker.js │ │ │ └── wrap │ │ │ │ └── hardwrap.js │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ ├── bootstrap.min.css.map │ │ ├── bootstrap.min.js │ │ ├── codemirror copy.css │ │ ├── codemirror.css │ │ ├── codemirror.js │ │ ├── codemirror2.css │ │ ├── eclipse.css │ │ ├── javascript.js │ │ └── mode │ │ │ ├── htmlembedded │ │ │ ├── htmlembedded.js │ │ │ └── index.html │ │ │ ├── htmlmixed │ │ │ ├── htmlmixed.js │ │ │ └── index.html │ │ │ ├── http │ │ │ ├── http.js │ │ │ └── index.html │ │ │ ├── javascript │ │ │ ├── index.html │ │ │ ├── javascript.js │ │ │ ├── json-ld.html │ │ │ ├── test.js │ │ │ └── typescript.html │ │ │ ├── jsx │ │ │ ├── index.html │ │ │ ├── jsx.js │ │ │ └── test.js │ │ │ ├── python │ │ │ ├── index.html │ │ │ ├── python.js │ │ │ └── test.js │ │ │ └── xml │ │ │ ├── index.html │ │ │ ├── test.js │ │ │ └── xml.js │ ├── proj4js-2.6.0 │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── AUTHORS │ │ ├── Gruntfile.js │ │ ├── LICENSE.md │ │ ├── PUBLISHING.md │ │ ├── README.md │ │ ├── REFERENCES.md │ │ ├── bower.json │ │ ├── changelog.md │ │ ├── component.json │ │ ├── package.json │ │ ├── publish.sh │ │ └── test │ │ │ ├── amd.html │ │ │ ├── opt.html │ │ │ ├── package.json.js │ │ │ ├── test.js │ │ │ └── testData.js │ └── runServer.py │ ├── movie.js │ ├── stinuum.js │ └── temp │ ├── .Rhistory │ ├── Image_marking.js │ ├── direction_radar.js │ ├── geometry_viewer.js │ ├── makeJS.bat │ ├── mf_collection.js │ ├── model.js │ ├── movement_draw.js │ ├── occurrence_map.js │ ├── path_drawing.js │ ├── property_graph.js │ ├── query_processor.js │ ├── sh_makeJS.sh │ ├── super.js │ ├── temporal_map.js │ ├── uml.mdj │ └── utility.js ├── system.json └── views ├── dataSelect.ejs └── demo.ejs /.gitignore: -------------------------------------------------------------------------------- 1 | /Stinuum Web/node_modules/ 2 | /Stinuum Web/src/js.zip 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 AIST AIRC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MFAPIHandler/README.md: -------------------------------------------------------------------------------- 1 | # MovingFeature API Handler(MFAPIHandler) 2 | > This program is an example Python program that uses the MF-API to upload MovingFeature data. 3 | > There is an example of registering MovingFeatureCollection in the "main()" function of MFAPIHandler.py program and uploading MovingFeature data. 4 | 5 | ## Dependency 6 | * [![Python3][python-shield]][python-url] 7 | 8 | 9 | ## Install Method 10 | 1. [Install Python][python-url] 11 | 2. Install python library 12 | ```shell 13 | cd mf-cesium/MFAPIHandler 14 | pip install -r requirements.txt 15 | ``` 16 | 17 | [python-shield]: https://img.shields.io/badge/Python_v3.10-3776AB?style=flat&logo=python&logoColor=white 18 | [python-url]: https://www.python.org/ 19 | [github-shield]: https://img.shields.io/badge/MF_API-181717?style=flat&logo=github&logoColor=white 20 | [mf-server-url]: https://opengeospatial.github.io/ogcapi-movingfeatures/openapi/openapi-movingfeatures-1.html -------------------------------------------------------------------------------- /MFAPIHandler/requirements.txt: -------------------------------------------------------------------------------- 1 | anyio==4.1.0 2 | appnope==0.1.3 3 | argon2-cffi==23.1.0 4 | argon2-cffi-bindings==21.2.0 5 | arrow==1.3.0 6 | asttokens==2.4.1 7 | async-lru==2.0.4 8 | attrs==23.1.0 9 | Babel==2.13.1 10 | beautifulsoup4==4.12.2 11 | bleach==6.1.0 12 | bs4==0.0.1 13 | certifi==2023.11.17 14 | cffi==1.16.0 15 | charset-normalizer==3.3.2 16 | click==8.1.7 17 | comm==0.2.0 18 | debugpy==1.8.0 19 | decorator==5.1.1 20 | defusedxml==0.7.1 21 | exceptiongroup==1.2.0 22 | executing==2.0.1 23 | fastjsonschema==2.19.0 24 | fqdn==1.5.1 25 | idna==3.6 26 | ipykernel==6.26.0 27 | ipython==8.18.0 28 | ipywidgets==8.1.1 29 | isoduration==20.11.0 30 | jedi==0.19.1 31 | Jinja2==3.1.2 32 | json5==0.9.14 33 | jsonpointer==2.4 34 | jsonschema==4.20.0 35 | jsonschema-specifications==2023.11.1 36 | jupyter==1.0.0 37 | jupyter-console==6.6.3 38 | jupyter-events==0.9.0 39 | jupyter-lsp==2.2.0 40 | jupyter_client==8.6.0 41 | jupyter_core==5.5.0 42 | jupyter_server==2.10.1 43 | jupyter_server_terminals==0.4.4 44 | jupyterlab==4.0.9 45 | jupyterlab-widgets==3.0.9 46 | jupyterlab_pygments==0.3.0 47 | jupyterlab_server==2.25.2 48 | MarkupSafe==2.1.3 49 | matplotlib-inline==0.1.6 50 | mistune==3.0.2 51 | munch==4.0.0 52 | nbclient==0.9.0 53 | nbconvert==7.11.0 54 | nbformat==5.9.2 55 | nest-asyncio==1.5.8 56 | notebook==7.0.6 57 | notebook_shim==0.2.3 58 | overrides==7.4.0 59 | packaging==23.2 60 | pandocfilters==1.5.0 61 | parso==0.8.3 62 | pexpect==4.9.0 63 | platformdirs==4.0.0 64 | prometheus-client==0.19.0 65 | prompt-toolkit==3.0.41 66 | psutil==5.9.6 67 | ptyprocess==0.7.0 68 | pure-eval==0.2.2 69 | pycparser==2.21 70 | Pygments==2.17.2 71 | python-dateutil==2.8.2 72 | python-json-logger==2.0.7 73 | PyYAML==6.0.1 74 | pyzmq==25.1.1 75 | qtconsole==5.5.1 76 | QtPy==2.4.1 77 | referencing==0.31.0 78 | requests==2.31.0 79 | rfc3339-validator==0.1.4 80 | rfc3986-validator==0.1.1 81 | rpds-py==0.13.1 82 | Send2Trash==1.8.2 83 | six==1.16.0 84 | sniffio==1.3.0 85 | soupsieve==2.5 86 | stack-data==0.6.3 87 | terminado==0.18.0 88 | tinycss2==1.2.1 89 | tomli==2.0.1 90 | tornado==6.3.3 91 | traitlets==5.13.0 92 | types-python-dateutil==2.8.19.14 93 | typing_extensions==4.8.0 94 | uri-template==1.3.0 95 | urllib3==2.1.0 96 | wcwidth==0.2.12 97 | webcolors==1.13 98 | webencodings==0.5.1 99 | websocket-client==1.6.4 100 | widgetsnbextension==4.0.9 101 | -------------------------------------------------------------------------------- /Stinuum Web/ConnectFunction.js: -------------------------------------------------------------------------------- 1 | // const request = require('request') 2 | const FormData = require('form-data'); 3 | // const request2 = require('request-promise-native'); 4 | const querystring = require('querystring'); 5 | const request = require('request') 6 | // const fetch = require('node-fetch') 7 | // const needle = require('needle') 8 | const axios = require('axios') 9 | // const http = require('http') 10 | const express = require('express'); 11 | const fs = require('fs'); 12 | let token; 13 | let session_id; 14 | let access_token; 15 | let ServerOn = false; 16 | 17 | function ConnectFunction () { 18 | // this.token; 19 | // this.session_id; 20 | this.ServerOn2 = false; 21 | this.__cookies = "" 22 | } 23 | 24 | 25 | ConnectFunction.prototype.GET = async function (address, parameters, res){ 26 | 27 | let options = { 28 | url: address, 29 | method: 'GET', 30 | qs: parameters, 31 | headers: { 32 | 'Content-Type': 'application/json', 33 | 'Accept': 'application/json', 34 | } 35 | } 36 | request(options, function(err,response,body){ 37 | 38 | if(response != undefined){ 39 | if (response.statusCode == 200 || response.statusCode == 202){ 40 | 41 | res.json({ok: true, data: JSON.parse(response.body)}); 42 | 43 | }else{ 44 | // console.log(tempdata) 45 | // console.log(response.body) 46 | res.json({ok: false}); 47 | 48 | } 49 | }else{ 50 | res.json({ok: false}); 51 | } 52 | 53 | }); 54 | } 55 | 56 | 57 | ConnectFunction.prototype.POST = function (address, parameters, res){ 58 | 59 | let options = { 60 | url: address, 61 | method: 'POST', 62 | data: parameters, 63 | headers: { 64 | 'Content-Type': 'application/geo+json', 65 | 'Accept': '*/*', 66 | } 67 | } 68 | request(options, function(err,response,body){ 69 | // var tempdata = JSON.parse(response.body) 70 | 71 | if(response != undefined){ 72 | if (response.statusCode == 200 || response.statusCode == 202){ 73 | 74 | res.json({ok: true, data: JSON.parse(response.body)}); 75 | 76 | }else{ 77 | // console.log(tempdata) 78 | // console.log(response.body) 79 | res.json({ok: false}); 80 | 81 | } 82 | }else{ 83 | res.json({ok: false}); 84 | } 85 | }); 86 | } 87 | 88 | ConnectFunction.prototype.callback = function(callbackValue){ 89 | return callbackValue 90 | } 91 | module.exports = new ConnectFunction() 92 | -------------------------------------------------------------------------------- /Stinuum Web/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 AIST AIRC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumAir/0_Cesium_Air.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/0_Cesium_Air.png -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumAir/1_Cesium_Air_Prop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/1_Cesium_Air_Prop.png -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumAir/Cesium_Air.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/Cesium_Air.glb -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck-kmc.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck-kmc.glb -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.glb -------------------------------------------------------------------------------- /Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.png -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201901.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id" : "typhoon_1", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 111.9, 7.6 ], [ 111.3, 7.3 ], [ 111.1, 7.0 ], [ 110.7, 6.6 ], [ 110.2, 6.3 ], [ 109.9, 6.0 ], [ 109.5, 5.8 ], [ 108.6, 5.9 ], [ 108.0, 6.2 ], [ 107.0, 6.3 ], [ 105.8, 6.0 ], [ 105.0, 5.8 ], [ 104.1, 6.1 ], [ 103.4, 6.8 ], [ 102.5, 7.5 ], [ 101.5, 7.9 ], [ 100.8, 8.1 ], [ 100.1, 8.2 ], [ 99.4, 8.4 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2018-12-31T06:00:00Z", "2018-12-31T12:00:00Z", "2018-12-31T18:00:00Z", "2019-01-01T00:00:00Z", "2019-01-01T06:00:00Z", "2019-01-01T12:00:00Z", "2019-01-01T18:00:00Z", "2019-01-02T00:00:00Z", "2019-01-02T06:00:00Z", "2019-01-02T12:00:00Z", "2019-01-02T18:00:00Z", "2019-01-03T00:00:00Z", "2019-01-03T06:00:00Z", "2019-01-03T12:00:00Z", "2019-01-03T18:00:00Z", "2019-01-04T00:00:00Z", "2019-01-04T06:00:00Z", "2019-01-04T12:00:00Z", "2019-01-04T18:00:00Z" ], 10 | "pressure" : [ 1004.0, 1004.0, 1004.0, 1004.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 996.0, 996.0, 996.0, 1000.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 40.0, 45.0, 45.0, 45.0, 40.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0 ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201902.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_2", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 162.5, 4.7 ], [ 161.2, 4.8 ], [ 159.8, 5.2 ], [ 158.4, 4.9 ], [ 156.6, 4.5 ], [ 155.5, 4.5 ], [ 154.6, 4.7 ], [ 153.8, 4.7 ], [ 152.6, 5.0 ], [ 151.6, 5.7 ], [ 150.5, 6.1 ], [ 149.6, 6.4 ], [ 148.7, 6.9 ], [ 147.9, 7.5 ], [ 146.8, 8.2 ], [ 146.2, 9.2 ], [ 145.0, 9.9 ], [ 144.0, 10.1 ], [ 143.7, 10.6 ], [ 143.3, 11.4 ], [ 142.8, 12.0 ], [ 142.4, 12.4 ], [ 142.1, 12.7 ], [ 141.7, 12.9 ], [ 141.2, 13.1 ], [ 140.7, 13.1 ], [ 140.4, 13.4 ], [ 140.2, 13.8 ], [ 140.1, 14.2 ], [ 139.9, 14.6 ], [ 139.9, 14.9 ], [ 139.9, 15.2 ], [ 140.1, 15.4 ], [ 140.1, 15.7 ], [ 140.0, 16.0 ], [ 139.8, 16.4 ], [ 139.0, 16.5 ], [ 137.7, 16.7 ], [ 136.7, 17.2 ], [ 135.6, 17.6 ], [ 135.0, 18.2 ], [ 134.6, 18.6 ], [ 134.4, 19.1 ], [ 134.2, 19.4 ], [ 134.0, 19.7 ], [ 134.0, 19.6 ], [ 133.9, 19.4 ], [ 133.1, 18.9 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-02-18T12:00:00Z", "2019-02-18T18:00:00Z", "2019-02-19T00:00:00Z", "2019-02-19T06:00:00Z", "2019-02-19T12:00:00Z", "2019-02-19T18:00:00Z", "2019-02-20T00:00:00Z", "2019-02-20T06:00:00Z", "2019-02-20T12:00:00Z", "2019-02-20T18:00:00Z", "2019-02-21T00:00:00Z", "2019-02-21T06:00:00Z", "2019-02-21T12:00:00Z", "2019-02-21T18:00:00Z", "2019-02-22T00:00:00Z", "2019-02-22T06:00:00Z", "2019-02-22T12:00:00Z", "2019-02-22T18:00:00Z", "2019-02-23T00:00:00Z", "2019-02-23T06:00:00Z", "2019-02-23T12:00:00Z", "2019-02-23T18:00:00Z", "2019-02-24T00:00:00Z", "2019-02-24T06:00:00Z", "2019-02-24T12:00:00Z", "2019-02-24T18:00:00Z", "2019-02-25T00:00:00Z", "2019-02-25T06:00:00Z", "2019-02-25T12:00:00Z", "2019-02-25T18:00:00Z", "2019-02-26T00:00:00Z", "2019-02-26T06:00:00Z", "2019-02-26T12:00:00Z", "2019-02-26T18:00:00Z", "2019-02-27T00:00:00Z", "2019-02-27T06:00:00Z", "2019-02-27T12:00:00Z", "2019-02-27T18:00:00Z", "2019-02-28T00:00:00Z", "2019-02-28T06:00:00Z", "2019-02-28T12:00:00Z", "2019-02-28T18:00:00Z", "2019-03-01T00:00:00Z", "2019-03-01T06:00:00Z", "2019-03-01T12:00:00Z", "2019-03-01T18:00:00Z", "2019-03-02T00:00:00Z", "2019-03-02T06:00:00Z" ], 10 | "pressure" : [ 1006.0, 1004.0, 1006.0, 1004.0, 1004.0, 1000.0, 994.0, 992.0, 985.0, 980.0, 975.0, 960.0, 960.0, 960.0, 960.0, 960.0, 960.0, 960.0, 955.0, 940.0, 920.0, 920.0, 920.0, 940.0, 940.0, 940.0, 935.0, 935.0, 935.0, 935.0, 950.0, 940.0, 950.0, 955.0, 965.0, 970.0, 980.0, 990.0, 996.0, 1004.0, 1010.0, 1010.0, 1012.0, 1010.0, 1012.0, 1010.0, 1010.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 45.0, 50.0, 60.0, 65.0, 70.0, 80.0, 80.0, 80.0, 80.0, 80.0, 80.0, 80.0, 85.0, 95.0, 105.0, 105.0, 105.0, 95.0, 95.0, 95.0, 100.0, 100.0, 100.0, 100.0, 90.0, 95.0, 85.0, 80.0, 70.0, 65.0, 55.0, 50.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201903.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_3", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 127.7, 17.9 ], [ 127.8, 18.4 ], [ 127.9, 18.9 ], [ 128.0, 19.4 ], [ 128.1, 19.8 ], [ 128.2, 20.5 ], [ 128.4, 21.4 ], [ 128.8, 22.9 ], [ 129.5, 24.8 ], [ 130.0, 26.4 ], [ 130.4, 28.4 ], [ 132.0, 30.8 ], [ 134.7, 32.6 ], [ 137.6, 34.1 ], [ 141.6, 35.2 ], [ 147.0, 36.0 ], [ 151.0, 37.0 ], [ 154.3, 38.0 ], [ 156.3, 39.0 ], [ 158.5, 39.8 ], [ 160.1, 41.0 ], [ 160.8, 42.2 ], [ 161.6, 43.8 ], [ 163.3, 44.3 ], [ 165.5, 45.0 ], [ 168.2, 46.1 ], [ 169.9, 47.4 ], [ 172.2, 49.3 ], [ 174.3, 51.3 ], [ 176.7, 53.6 ], [ 178.7, 57.2 ], [ 179.5, 59.5 ], [ 182.0, 61.1 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-06-24T12:00:00Z", "2019-06-24T18:00:00Z", "2019-06-25T00:00:00Z", "2019-06-25T06:00:00Z", "2019-06-25T12:00:00Z", "2019-06-25T18:00:00Z", "2019-06-26T00:00:00Z", "2019-06-26T06:00:00Z", "2019-06-26T12:00:00Z", "2019-06-26T18:00:00Z", "2019-06-27T00:00:00Z", "2019-06-27T06:00:00Z", "2019-06-27T12:00:00Z", "2019-06-27T18:00:00Z", "2019-06-28T00:00:00Z", "2019-06-28T06:00:00Z", "2019-06-28T12:00:00Z", "2019-06-28T18:00:00Z", "2019-06-29T00:00:00Z", "2019-06-29T06:00:00Z", "2019-06-29T12:00:00Z", "2019-06-29T18:00:00Z", "2019-06-30T00:00:00Z", "2019-06-30T06:00:00Z", "2019-06-30T12:00:00Z", "2019-06-30T18:00:00Z", "2019-07-01T00:00:00Z", "2019-07-01T06:00:00Z", "2019-07-01T12:00:00Z", "2019-07-01T18:00:00Z", "2019-07-02T00:00:00Z", "2019-07-02T06:00:00Z", "2019-07-02T12:00:00Z" ], 10 | "pressure" : [ 1008.0, 1006.0, 1006.0, 1006.0, 1006.0, 1006.0, 1004.0, 1004.0, 1004.0, 1004.0, 1002.0, 1000.0, 998.0, 996.0, 994.0, 992.0, 992.0, 994.0, 994.0, 998.0, 1002.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1002.0, 1002.0, 1002.0, 1002.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201904.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_4", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 114.0, 18.0 ], [ 113.3, 18.5 ], [ 112.4, 18.8 ], [ 111.5, 18.9 ], [ 110.6, 19.2 ], [ 109.5, 19.4 ], [ 108.4, 19.5 ], [ 107.3, 19.9 ], [ 106.7, 20.3 ], [ 106.2, 20.8 ], [ 105.4, 21.6 ], [ 104.5, 22.3 ], [ 103.8, 23.1 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-07-01T18:00:00Z", "2019-07-02T00:00:00Z", "2019-07-02T06:00:00Z", "2019-07-02T12:00:00Z", "2019-07-02T18:00:00Z", "2019-07-03T00:00:00Z", "2019-07-03T06:00:00Z", "2019-07-03T12:00:00Z", "2019-07-03T18:00:00Z", "2019-07-04T00:00:00Z", "2019-07-04T06:00:00Z", "2019-07-04T12:00:00Z", "2019-07-04T18:00:00Z" ], 10 | "pressure" : [ 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 992.0, 992.0, 994.0, 994.0, 998.0, 1000.0 ], 11 | "wind" : [ 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201905.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_5", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 136.7, 12.6 ], [ 135.3, 13.3 ], [ 134.3, 14.0 ], [ 133.2, 15.0 ], [ 132.1, 15.6 ], [ 131.2, 16.4 ], [ 129.5, 16.9 ], [ 127.5, 17.0 ], [ 126.0, 17.0 ], [ 124.9, 17.1 ], [ 123.9, 17.2 ], [ 123.4, 17.3 ], [ 123.5, 18.1 ], [ 123.7, 19.0 ], [ 124.1, 20.5 ], [ 124.1, 21.9 ], [ 124.1, 23.6 ], [ 124.1, 25.7 ], [ 124.0, 26.5 ], [ 124.0, 27.8 ], [ 124.0, 29.0 ], [ 124.2, 30.3 ], [ 124.7, 31.8 ], [ 125.2, 33.1 ], [ 125.5, 34.2 ], [ 125.7, 34.8 ], [ 126.3, 35.7 ], [ 127.2, 36.6 ], [ 128.5, 37.9 ], [ 129.6, 39.0 ], [ 130.4, 40.2 ], [ 131.4, 41.1 ], [ 131.9, 41.4 ], [ 132.1, 41.7 ], [ 132.9, 42.0 ], [ 134.4, 42.3 ], [ 135.7, 42.6 ], [ 137.1, 43.1 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-07-14T00:00:00Z", "2019-07-14T06:00:00Z", "2019-07-14T12:00:00Z", "2019-07-14T18:00:00Z", "2019-07-15T00:00:00Z", "2019-07-15T06:00:00Z", "2019-07-15T12:00:00Z", "2019-07-15T18:00:00Z", "2019-07-16T00:00:00Z", "2019-07-16T06:00:00Z", "2019-07-16T12:00:00Z", "2019-07-16T18:00:00Z", "2019-07-17T00:00:00Z", "2019-07-17T06:00:00Z", "2019-07-17T12:00:00Z", "2019-07-17T18:00:00Z", "2019-07-18T00:00:00Z", "2019-07-18T06:00:00Z", "2019-07-18T12:00:00Z", "2019-07-18T18:00:00Z", "2019-07-19T00:00:00Z", "2019-07-19T06:00:00Z", "2019-07-19T12:00:00Z", "2019-07-19T18:00:00Z", "2019-07-20T00:00:00Z", "2019-07-20T06:00:00Z", "2019-07-20T12:00:00Z", "2019-07-20T18:00:00Z", "2019-07-21T00:00:00Z", "2019-07-21T06:00:00Z", "2019-07-21T12:00:00Z", "2019-07-21T18:00:00Z", "2019-07-22T00:00:00Z", "2019-07-22T06:00:00Z", "2019-07-22T12:00:00Z", "2019-07-22T18:00:00Z", "2019-07-23T00:00:00Z", "2019-07-23T06:00:00Z" ], 10 | "pressure" : [ 1004.0, 1004.0, 1004.0, 1002.0, 1002.0, 1000.0, 1000.0, 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 994.0, 992.0, 992.0, 990.0, 990.0, 990.0, 985.0, 985.0, 985.0, 985.0, 985.0, 985.0, 990.0, 994.0, 996.0, 998.0, 998.0, 998.0, 996.0, 996.0, 998.0, 1000.0, 1000.0, 1002.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 45.0, 45.0, 45.0, 45.0, 40.0, 40.0, 40.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201906.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_6", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 137.0, 23.0 ], [ 137.5, 23.5 ], [ 137.8, 24.3 ], [ 137.8, 25.3 ], [ 137.7, 26.3 ], [ 137.5, 26.5 ], [ 137.5, 27.5 ], [ 137.3, 28.5 ], [ 137.1, 29.7 ], [ 136.2, 30.9 ], [ 135.8, 32.0 ], [ 135.9, 33.4 ], [ 136.3, 34.1 ], [ 136.4, 34.7 ], [ 136.7, 35.6 ], [ 138.3, 36.0 ], [ 139.8, 36.6 ], [ 142.0, 36.9 ], [ 143.7, 37.6 ], [ 145.7, 38.2 ], [ 147.7, 38.7 ], [ 149.8, 39.3 ], [ 151.6, 39.8 ], [ 152.9, 40.5 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-07-24T00:00:00Z", "2019-07-24T06:00:00Z", "2019-07-24T12:00:00Z", "2019-07-24T18:00:00Z", "2019-07-25T00:00:00Z", "2019-07-25T06:00:00Z", "2019-07-25T12:00:00Z", "2019-07-25T18:00:00Z", "2019-07-26T00:00:00Z", "2019-07-26T06:00:00Z", "2019-07-26T12:00:00Z", "2019-07-26T18:00:00Z", "2019-07-26T22:00:00Z", "2019-07-27T00:00:00Z", "2019-07-27T06:00:00Z", "2019-07-27T12:00:00Z", "2019-07-27T18:00:00Z", "2019-07-28T00:00:00Z", "2019-07-28T06:00:00Z", "2019-07-28T12:00:00Z", "2019-07-28T18:00:00Z", "2019-07-29T00:00:00Z", "2019-07-29T06:00:00Z", "2019-07-29T12:00:00Z" ], 10 | "pressure" : [ 1008.0, 1006.0, 1006.0, 1006.0, 1006.0, 1004.0, 1006.0, 1002.0, 1000.0, 1000.0, 1000.0, 998.0, 1000.0, 1000.0, 1004.0, 1008.0, 1008.0, 1010.0, 1010.0, 1010.0, 1010.0, 1010.0, 1008.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201907.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_7", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 116.0, 17.1 ], [ 115.4, 17.6 ], [ 114.8, 18.0 ], [ 114.2, 18.4 ], [ 113.7, 18.8 ], [ 112.9, 19.2 ], [ 112.2, 19.5 ], [ 111.4, 20.1 ], [ 110.8, 20.4 ], [ 110.5, 21.0 ], [ 110.2, 21.4 ], [ 109.4, 21.2 ], [ 109.1, 21.2 ], [ 109.0, 21.1 ], [ 108.2, 21.6 ], [ 107.3, 21.5 ], [ 106.5, 21.2 ], [ 106.2, 20.8 ], [ 105.4, 20.2 ], [ 104.4, 19.7 ], [ 102.8, 20.7 ], [ 102.1, 20.5 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-07-30T00:00:00Z", "2019-07-30T06:00:00Z", "2019-07-30T12:00:00Z", "2019-07-30T18:00:00Z", "2019-07-31T00:00:00Z", "2019-07-31T06:00:00Z", "2019-07-31T12:00:00Z", "2019-07-31T18:00:00Z", "2019-08-01T00:00:00Z", "2019-08-01T06:00:00Z", "2019-08-01T12:00:00Z", "2019-08-01T18:00:00Z", "2019-08-02T00:00:00Z", "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T18:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T06:00:00Z" ], 10 | "pressure" : [ 1002.0, 998.0, 996.0, 994.0, 994.0, 992.0, 992.0, 990.0, 990.0, 990.0, 990.0, 990.0, 990.0, 985.0, 990.0, 992.0, 992.0, 992.0, 994.0, 996.0, 998.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201908.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_8", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 154.7, 17.4 ], [ 154.4, 18.1 ], [ 154.1, 18.7 ], [ 153.5, 19.5 ], [ 152.9, 20.3 ], [ 152.1, 21.3 ], [ 151.2, 22.3 ], [ 150.0, 23.3 ], [ 148.6, 24.3 ], [ 147.4, 25.1 ], [ 146.1, 25.9 ], [ 145.3, 26.3 ], [ 144.6, 26.7 ], [ 143.9, 27.1 ], [ 143.1, 27.6 ], [ 142.3, 28.1 ], [ 141.4, 28.6 ], [ 140.1, 29.2 ], [ 138.2, 29.9 ], [ 136.2, 30.4 ], [ 134.6, 30.8 ], [ 133.8, 31.0 ], [ 133.0, 31.2 ], [ 132.4, 31.4 ], [ 131.9, 31.8 ], [ 131.5, 31.9 ], [ 131.3, 32.1 ], [ 130.6, 32.8 ], [ 130.0, 33.4 ], [ 129.8, 34.0 ], [ 129.5, 35.1 ], [ 128.8, 36.7 ], [ 129.0, 37.9 ], [ 129.2, 38.7 ], [ 129.7, 39.6 ], [ 130.9, 40.8 ], [ 132.7, 41.5 ], [ 135.3, 42.5 ], [ 137.1, 42.8 ], [ 139.5, 43.0 ], [ 142.0, 42.9 ], [ 145.5, 41.9 ], [ 148.7, 41.0 ], [ 152.0, 40.6 ], [ 155.5, 40.3 ], [ 159.2, 40.0 ], [ 163.1, 40.2 ], [ 167.1, 41.0 ], [ 170.1, 41.5 ], [ 172.2, 42.5 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-08-01T00:00:00Z", "2019-08-01T06:00:00Z", "2019-08-01T12:00:00Z", "2019-08-01T18:00:00Z", "2019-08-02T00:00:00Z", "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T15:00:00Z", "2019-08-03T18:00:00Z", "2019-08-03T21:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T03:00:00Z", "2019-08-04T06:00:00Z", "2019-08-04T12:00:00Z", "2019-08-04T18:00:00Z", "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T09:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T15:00:00Z", "2019-08-05T18:00:00Z", "2019-08-05T20:00:00Z", "2019-08-05T21:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T03:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T18:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z" ], 10 | "pressure" : [ 1002.0, 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 998.0, 998.0, 998.0, 996.0, 996.0, 996.0, 992.0, 990.0, 990.0, 990.0, 990.0, 985.0, 980.0, 980.0, 980.0, 975.0, 970.0, 970.0, 970.0, 970.0, 975.0, 992.0, 996.0, 998.0, 1000.0, 1000.0, 1000.0, 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 1000.0, 996.0, 1000.0, 1002.0, 1002.0, 1004.0, 1006.0, 1006.0, 1006.0, 1006.0, 1006.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 45.0, 50.0, 50.0, 50.0, 50.0, 55.0, 60.0, 60.0, 60.0, 65.0, 70.0, 70.0, 70.0, 70.0, 65.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201909.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_9", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 134.3, 14.5 ], [ 133.8, 14.4 ], [ 133.3, 14.3 ], [ 132.8, 14.3 ], [ 132.3, 14.5 ], [ 131.9, 15.0 ], [ 131.5, 15.7 ], [ 131.0, 16.3 ], [ 130.6, 16.9 ], [ 130.2, 17.5 ], [ 130.1, 17.7 ], [ 130.0, 17.9 ], [ 129.9, 18.0 ], [ 129.8, 18.2 ], [ 129.5, 18.5 ], [ 129.3, 18.8 ], [ 129.0, 19.2 ], [ 128.7, 19.5 ], [ 128.4, 19.9 ], [ 128.1, 20.4 ], [ 127.6, 21.0 ], [ 127.0, 21.6 ], [ 126.5, 22.1 ], [ 126.2, 22.4 ], [ 126.0, 22.7 ], [ 125.7, 23.2 ], [ 125.4, 23.6 ], [ 125.2, 24.0 ], [ 125.0, 24.3 ], [ 124.8, 24.9 ], [ 124.5, 25.5 ], [ 124.0, 26.0 ], [ 123.4, 26.4 ], [ 122.5, 27.1 ], [ 122.0, 27.5 ], [ 121.3, 28.2 ], [ 120.7, 29.1 ], [ 120.4, 29.9 ], [ 120.4, 30.8 ], [ 120.3, 32.3 ], [ 120.1, 33.6 ], [ 120.0, 35.0 ], [ 120.0, 35.9 ], [ 120.1, 37.1 ], [ 119.6, 37.8 ], [ 119.5, 37.9 ], [ 119.6, 36.9 ], [ 120.0, 37.0 ], [ 120.0, 37.2 ], [ 120.5, 38.1 ], [ 120.9, 38.6 ], [ 121.1, 38.9 ], [ 121.4, 38.8 ], [ 121.5, 38.8 ], [ 121.7, 38.6 ], [ 121.9, 38.4 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T18:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T06:00:00Z", "2019-08-04T12:00:00Z", "2019-08-04T18:00:00Z", "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T18:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-07T21:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T03:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T09:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T15:00:00Z", "2019-08-08T18:00:00Z", "2019-08-08T21:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z", "2019-08-11T12:00:00Z", "2019-08-11T18:00:00Z", "2019-08-12T00:00:00Z", "2019-08-12T06:00:00Z", "2019-08-12T12:00:00Z", "2019-08-12T18:00:00Z", "2019-08-13T00:00:00Z", "2019-08-13T06:00:00Z", "2019-08-13T12:00:00Z", "2019-08-13T18:00:00Z", "2019-08-14T00:00:00Z", "2019-08-14T06:00:00Z", "2019-08-14T12:00:00Z", "2019-08-14T18:00:00Z" ], 10 | "pressure" : [ 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 990.0, 990.0, 985.0, 985.0, 980.0, 975.0, 970.0, 960.0, 950.0, 940.0, 935.0, 935.0, 935.0, 935.0, 930.0, 930.0, 925.0, 925.0, 935.0, 935.0, 940.0, 940.0, 940.0, 950.0, 970.0, 975.0, 980.0, 980.0, 980.0, 980.0, 980.0, 980.0, 985.0, 985.0, 990.0, 992.0, 996.0, 996.0, 998.0, 998.0, 1000.0, 1000.0, 998.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 40.0, 40.0, 45.0, 45.0, 50.0, 50.0, 55.0, 65.0, 70.0, 75.0, 80.0, 90.0, 95.0, 95.0, 95.0, 95.0, 100.0, 100.0, 105.0, 105.0, 95.0, 95.0, 90.0, 90.0, 90.0, 85.0, 60.0, 50.0, 45.0, 45.0, 45.0, 45.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/data/MF-JSON Trajectory/Feature/201910.en-trajectory.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "Feature", 3 | "id": "typhoon_10", 4 | "geometry" : { 5 | "type" : "LineString", 6 | "coordinates" : [ [ 147.7, 15.6 ], [ 146.5, 16.1 ], [ 145.2, 16.8 ], [ 144.0, 17.5 ], [ 143.4, 18.0 ], [ 142.8, 18.5 ], [ 142.4, 18.9 ], [ 142.1, 19.7 ], [ 141.9, 20.5 ], [ 141.4, 21.1 ], [ 141.0, 21.5 ], [ 140.8, 21.7 ], [ 140.5, 21.9 ], [ 140.6, 22.1 ], [ 140.7, 22.1 ], [ 141.0, 22.0 ], [ 141.1, 22.0 ], [ 141.3, 22.0 ], [ 141.4, 22.2 ], [ 141.4, 22.3 ], [ 141.3, 22.7 ], [ 141.0, 22.9 ], [ 140.7, 22.8 ], [ 140.5, 22.7 ], [ 140.3, 23.1 ], [ 139.8, 23.6 ], [ 139.2, 24.0 ], [ 138.5, 24.2 ], [ 138.0, 24.7 ], [ 137.7, 25.0 ], [ 137.1, 25.9 ], [ 136.4, 26.8 ], [ 135.2, 27.4 ], [ 134.7, 27.6 ], [ 134.3, 28.1 ], [ 133.5, 28.3 ], [ 133.4, 28.4 ], [ 133.2, 28.8 ], [ 133.1, 29.1 ], [ 133.1, 29.6 ], [ 133.0, 30.1 ], [ 132.9, 30.6 ], [ 132.7, 30.8 ], [ 132.6, 31.7 ], [ 132.6, 32.2 ], [ 132.4, 32.7 ], [ 132.3, 33.4 ], [ 132.3, 33.6 ], [ 132.6, 34.3 ], [ 133.0, 35.3 ], [ 133.1, 36.2 ], [ 133.5, 38.0 ], [ 134.3, 39.9 ], [ 135.6, 40.9 ], [ 138.0, 43.0 ], [ 138.5, 43.7 ], [ 140.1, 44.4 ], [ 140.5, 44.7 ], [ 141.0, 45.1 ] ] 7 | }, 8 | "properties" : { 9 | "datetimes" : [ "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T18:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T18:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z", "2019-08-11T12:00:00Z", "2019-08-11T18:00:00Z", "2019-08-12T00:00:00Z", "2019-08-12T06:00:00Z", "2019-08-12T12:00:00Z", "2019-08-12T18:00:00Z", "2019-08-13T00:00:00Z", "2019-08-13T06:00:00Z", "2019-08-13T12:00:00Z", "2019-08-13T18:00:00Z", "2019-08-13T21:00:00Z", "2019-08-14T00:00:00Z", "2019-08-14T03:00:00Z", "2019-08-14T06:00:00Z", "2019-08-14T09:00:00Z", "2019-08-14T12:00:00Z", "2019-08-14T15:00:00Z", "2019-08-14T18:00:00Z", "2019-08-14T21:00:00Z", "2019-08-15T00:00:00Z", "2019-08-15T02:00:00Z", "2019-08-15T03:00:00Z", "2019-08-15T06:00:00Z", "2019-08-15T09:00:00Z", "2019-08-15T12:00:00Z", "2019-08-15T18:00:00Z", "2019-08-16T00:00:00Z", "2019-08-16T06:00:00Z", "2019-08-16T12:00:00Z", "2019-08-16T18:00:00Z", "2019-08-17T00:00:00Z", "2019-08-17T06:00:00Z", "2019-08-17T12:00:00Z" ], 10 | "pressure" : [ 1004.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 996.0, 992.0, 990.0, 990.0, 980.0, 975.0, 970.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 970.0, 970.0, 970.0, 970.0, 970.0, 970.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 970.0, 975.0, 975.0, 975.0, 975.0, 978.0, 978.0, 980.0, 980.0, 980.0, 980.0, 984.0, 986.0, 990.0, 994.0 ], 11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 45.0, 50.0, 50.0, 60.0, 65.0, 70.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 70.0, 70.0, 65.0, 65.0, 65.0, 65.0, 65.0, 60.0, 60.0, 60.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 50.0, 50.0, 50.0, 45.0, 45.0, 45.0, 45.0, 45.0, 45.0, 0.0, 0.0, 0.0, 0.0 ], 12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0 ] 13 | } 14 | } -------------------------------------------------------------------------------- /Stinuum Web/documents/image/AnimationWidget.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/AnimationWidget.gif -------------------------------------------------------------------------------- /Stinuum Web/documents/image/AnimationWidget2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/AnimationWidget2.gif -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Graph1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph1.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Graph2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph2.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Graph3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph3.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Image.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Layers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Layers1.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Layers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Layers2.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/MFCollection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/MFCollection.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Main.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Rader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Rader.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/SceneModePicker1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/SceneModePicker1.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/SceneModePicker2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/SceneModePicker2.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-1.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-2.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-3.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-4.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-5.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/ServerLogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/ServerLogin.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Slice.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/StinuumWeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/StinuumWeb.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Text.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/Upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Upload.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/get2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get2.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/get3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get3.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/get4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get4.png -------------------------------------------------------------------------------- /Stinuum Web/documents/image/get5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get5.png -------------------------------------------------------------------------------- /Stinuum Web/img/skill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Stinuum Web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stinuum-dev", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "axios": "^1.4.0", 13 | "cesium": "1.73", 14 | "ejs": "^3.1.9", 15 | "express": "^4.18.2", 16 | "request": "^2.88.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Stinuum Web/routes/login.js: -------------------------------------------------------------------------------- 1 | // var express = require('express'); 2 | // var router = express.Router(); 3 | // var serverCon = require('../ConnectFunction'); 4 | // 5 | // 6 | // router.get('/', function(req, res, next) { 7 | // res.render('login', { title: 'Express' }); 8 | // }); 9 | // router.post("/login", function(req, res){ 10 | // console.log(req) 11 | // if(req.body.check==0){ 12 | // let parameters = { 13 | // id: req.body.token 14 | // } 15 | // serverCon.GET(req.body.address, parameters, res) 16 | // }else{ 17 | // serverCon.ServerLogin(req.body.address, req.body.name ,req.body.password, res) 18 | // } 19 | // }); 20 | // router.get('/main', function(req, res, next) { 21 | // res.render('demo', {}); 22 | // }); 23 | // router.get('/dataSelect', function(req, res, next) { 24 | // res.render('dataSelect', { title: 'Express' }); 25 | // }); 26 | // router.post("/datalist", function(req, res){ 27 | // let parameters = { 28 | // limit: req.body.count, 29 | // token: req.body.token, 30 | // session_id: req.body.session_id 31 | // } 32 | // serverCon.GET(req.body.address, parameters, res) 33 | // }); 34 | // router.post("/eachFeature", function(req, res){ 35 | // console.log("eachFeature") 36 | // console.log(req.body) 37 | // let parameters = { 38 | // token: req.body.token, 39 | // session_id: req.body.session_id 40 | // } 41 | // if (req.body.type == undefined){ 42 | // var address = req.body.address+"/"+req.body.title+"//featureKeys" 43 | // serverCon.GET(address, parameters, res) 44 | // } 45 | // else{ 46 | // if (req.body.type == "-1"){ 47 | // console.log("Get featureValue") 48 | // serverCon.GET(req.body.address, parameters, res) 49 | // } 50 | // else if (req.body.type == "0"){ 51 | // console.log("Get TemporalGeometry") 52 | // console.log(Array.isArray(req.body.time)) 53 | // if (Array.isArray(req.body.time) && req.body.time.length == 2){ 54 | // parameters['time'] = req.body.time[0] + ',' + req.body.time[1] 55 | // }else{ 56 | // parameters['time'] = req.body.time 57 | // } 58 | // parameters['limit']= req.body.limit 59 | // serverCon.GET(req.body.address, parameters, res) 60 | // } 61 | // else if (req.body.type == "1"){ 62 | // console.log("Get TemporalProperties") 63 | // console.log(Array.isArray(req.body.time)) 64 | // // parameters['name'] = req.body.name 65 | // if (Array.isArray(req.body.time) && req.body.time.length == 2){ 66 | // parameters['time'] = req.body.time[0] + ',' + req.body.time[1] 67 | // }else{ 68 | // parameters['time'] = req.body.time 69 | // } 70 | // parameters['limit']= req.body.limit 71 | // serverCon.GET(req.body.address, parameters, res) 72 | // } 73 | // } 74 | // }); 75 | // module.exports = router; 76 | -------------------------------------------------------------------------------- /Stinuum Web/src/css/bs.css: -------------------------------------------------------------------------------- 1 | 2 | .list-title{ 3 | font-size : 140%; 4 | padding: 10px; 5 | background-color: #787878; 6 | border-color: black; 7 | border: 1px; 8 | text-align: center; 9 | z-index: 2; 10 | color: #fff; 11 | border-top-left-radius: 4px; 12 | border-top-right-radius: 4px; 13 | white-space: pre-wrap; 14 | text-decoration: none; 15 | position: relative; 16 | display: block; 17 | } 18 | /* 19 | .layer-list-item : last-child{ 20 | margin-bottom: 0; 21 | border-bottom-right-radius: 4px; 22 | border-bottom-left-radius: 4px; 23 | } 24 | 25 | .layer-list-item : first-child{ 26 | border-top-left-radius: 4px; 27 | border-top-right-radius: 4px; 28 | } 29 | 30 | .layer-list-item{ 31 | padding: 6px; 32 | white-space: pre-wrap; 33 | color: white; 34 | text-decoration: none; 35 | background-color: rgba(0, 0, 0, 0); 36 | border-width: 0px; 37 | position: relative; 38 | display: block; 39 | margin-bottom: -1px; 40 | } 41 | */ 42 | .axis text { 43 | font-family: sans-serif; 44 | font-size: small; 45 | 46 | } 47 | .text{ 48 | font-size : small; 49 | } 50 | .slider-handle{ 51 | background-color: black; 52 | } 53 | .slider.slider-vertical{ 54 | height : 70% 55 | } 56 | /* 57 | .input-group { 58 | margin-left: auto; 59 | margin-right: auto; 60 | display: inline-block; 61 | } 62 | */ 63 | input[type=checkbox], input[type=radio] { 64 | margin-right: 5px; 65 | } 66 | 67 | /* 68 | .list-group-item.active:hover { 69 | background-color: #787878; 70 | } 71 | */ 72 | 73 | 74 | .property-list{ 75 | padding: 5px; 76 | color: #FFFFFF; 77 | white-space: pre-wrap; 78 | color: white; 79 | text-decoration: none; 80 | background-color: rgba(0, 0, 0, 0); 81 | border-width: 0px; 82 | } 83 | 84 | 85 | a { 86 | color: white; 87 | text-decoration: none; 88 | 89 | } 90 | 91 | a:hover { 92 | color: white; 93 | text-decoration: none; 94 | } 95 | 96 | .list-group { 97 | padding: 0px; 98 | white-space: pre-wrap; 99 | color: white; 100 | border-width: 0px; 101 | } 102 | 103 | .cesium-viewer-toolbar { 104 | z-index: 30; 105 | } 106 | 107 | .cesium-svgPath-svg.cesium-sceneModePicker-slide-svg { 108 | z-index: 30; 109 | } 110 | 111 | .cesium-svgPath-svg { 112 | z-index: 30; 113 | } 114 | 115 | .list-group-item.active { 116 | background-color: #787878; 117 | border-color: black; 118 | border: 1px; 119 | text-align: center; 120 | cursor:default; 121 | } 122 | 123 | .axis text { 124 | fill: white; 125 | } 126 | 127 | .axis line { 128 | stroke: white; 129 | } 130 | 131 | .axis path { 132 | stroke: white; 133 | } 134 | 135 | .wrapper { 136 | margin: 0 auto; 137 | } 138 | 139 | .column { 140 | float: left; 141 | width: 30%; 142 | } 143 | 144 | 145 | .left_toolbar_div { 146 | border-radius: 4px; 147 | border: 1px solid; 148 | box-shadow: 0 1px 1px rgba(0,0,0,.05); 149 | } 150 | 151 | 152 | * { 153 | padding: 0; 154 | margin: 0; 155 | } 156 | 157 | body { 158 | font: 16px/1 sans-serif; 159 | } 160 | 161 | .panel>.list-group .list-group-item { 162 | border-width: 0px; 163 | } 164 | 165 | .list-group-item.active.list-title { 166 | font-size: 20px; 167 | padding: 10px; 168 | } 169 | 170 | .context-menu { 171 | border : 1px solid rgb(255,255,255); 172 | color : white; 173 | text-align: center; 174 | font-size:100%; 175 | width : 100%; 176 | line-height: 100%; 177 | padding : 5px; 178 | cursor: pointer; 179 | } 180 | -------------------------------------------------------------------------------- /Stinuum Web/src/css/demo_style copy.css: -------------------------------------------------------------------------------- 1 | .axis path, 2 | .axis line { 3 | fill: none; 4 | stroke: black; 5 | shape-rendering: crispEdges; 6 | } 7 | .axis text { 8 | font-family: sans-serif; 9 | font-size: 10px; 10 | } 11 | .timeline-label { 12 | font-family: sans-serif; 13 | font-size: 12px; 14 | } 15 | #timeline2 .axis { 16 | transform: translate(0px,40px); 17 | -ms-transform: translate(0px,40px); /* IE 9 */ 18 | -webkit-transform: translate(0px,40px); /* Safari and Chrome */ 19 | -o-transform: translate(0px,40px); /* Opera */ 20 | -moz-transform: translate(0px,40px); /* Firefox */ 21 | } 22 | 23 | .coloredDiv { 24 | height:20px; width:20px; float:left; 25 | } -------------------------------------------------------------------------------- /Stinuum Web/src/css/mfjson.css: -------------------------------------------------------------------------------- 1 | .mfjson { 2 | position: absolute; 3 | z-index: 3; 4 | bottom: 0; 5 | top: 40px; 6 | right: 0; 7 | height: 90%; 8 | width: 40%; 9 | min-width: 400px; 10 | box-sizing: border-box; 11 | background-color: #fff; 12 | transition: all 200ms; 13 | -webkit-transition: all 200ms; 14 | box-shadow: rgba(0,0,0,0.1) -2px 0px 0px; 15 | } 16 | .top .buttons { 17 | margin-left: 28px; 18 | height: 40px; 19 | } 20 | .top .buttons button { 21 | padding: 10px 15px; 22 | font-weight: normal; 23 | height: 40px; 24 | border: 0; 25 | vertical-align: top; 26 | 27 | } 28 | 29 | #editor { 30 | 31 | z-index: 3; 32 | width: 100%; 33 | height: 100%; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /Stinuum Web/src/css/style_test.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | } 4 | 5 | .cesium { 6 | position: absolute; 7 | left: 0; 8 | top: 0; 9 | right: 0; 10 | bottom: 0; 11 | } -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/ConnectFunction.md: -------------------------------------------------------------------------------- 1 | # ConnectFunction.js 2 | 3 | It is the Module to connect between Nodejs and Server. 4 | 5 | ```js 6 | const serverConnect = require('./ConnectFunction'); 7 | serverConnect.ServerLogin(address, name, password, res); 8 | serverConnect.GET(address, parameters, res); 9 | serverConnect.POST(address, parameters, res); 10 | ``` 11 | 12 | ## Methods 13 | 14 | * __ServerLogin(address, name, password, res)__ 15 | 16 | Log-in the Server using the address, name and password 17 | 18 | | Name | Type | Default | Description | 19 | | ---------- | :--------- | :---------- | :---------- | 20 | | address | String || Address to login the server | 21 | | name | String || Username | 22 | | password | String || Password | 23 | | res | Object || response object of nodejs | 24 | 25 | Example: 26 | ```js 27 | ... 28 | const serverConnect = require('./ConnectFunction'); 29 | app.post("/YourPage", function(request, response){ 30 | serverConnect.ServerLogin(request.body.address, request.body.name, request.body.password, response) 31 | }); 32 | ``` 33 | 34 |   35 | 36 | * __GET(address, parameters, res)__ 37 | 38 | Get the data using the address and parameters from the server 39 | 40 | | Name | Type | Default | Description | 41 | | ---------- | :--------- | :---------- | :---------- | 42 | | address | String || Address to get the data | 43 | | parameters | Object || Data is required by the server | 44 | | res | Object ||response object of nodejs | 45 | 46 | Example: 47 | ```js 48 | ... 49 | const serverConnect = require('./ConnectFunction'); 50 | app.post("/YourPage", function(request, response){ 51 | serverConnect.GET(request.body.address, parameters, response) 52 | }); 53 | ``` 54 | 55 |   56 | 57 | * __POST(address, parameters, res)__ 58 | 59 | Post the data using address and parameters into the server 60 | 61 | | Name | Type | Default | Description | 62 | | ---------- | :--------- | :---------- | :---------- | 63 | | address | String || Address to get the data | 64 | | parameters | Object || Data is required by the server | 65 | | res | Object ||response object of nodejs | 66 | 67 | Example: 68 | ```js 69 | ... 70 | const serverConnect = require('./ConnectFunction'); 71 | app.post("/YourPage", function(request, response){ 72 | serverConnect.POST(request.body.address, parameters, response) 73 | }); 74 | ``` 75 |   -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/DirectionRadar.md: -------------------------------------------------------------------------------- 1 | # Stinuum.DirectionRadar 2 | 3 | ```js 4 | var stinuum = new Stinuum(viewer); 5 | console.log(stinuum.directionRadar); 6 | ``` 7 | 8 | ## Members 9 | 10 | There is no member that user can access. 11 | 12 | ## Methods 13 | 14 | * `static` ___drawBackRadar(canvasID)___ 15 | 16 | Before drawing radar calculated, method draws background radar made by green dashed line. 17 | 18 | | Name | Type | Default | Description | 19 | | ---------- | :--------- | :---------- | :---------- | 20 | | canvasID | String | | Id of `canvas` tag. | 21 | 22 | Example : 23 | 24 | ```js 25 | 26 | ... 27 | Stinuum.DirectionRadar.drawBackRadar('radar'); 28 | ``` 29 | 30 | 31 |   32 | 33 | * __show(canvasID)__ 34 | 35 | Calculate direction information of features in [Stinuum.mfCollection](https://github.com/aistairc/mf-cesium/blob/master/reference/MFCollection.md) and show radar to canvas. Browser should support canvas in order to draw DirectionRadar. 36 | 37 | | Name | Type | Default | Description | 38 | | ---------- | :--------- | :---------- | :---------- | 39 | | canvasID | String | | Id of `canvas` tag. | 40 | 41 | 42 | Example : 43 | 44 | ```js 45 | 46 | ... 47 | stinuum.directionRadar.show('radar'); 48 | ``` 49 | 50 | 51 |   52 | 53 | * __remove(canvasID)__ 54 | 55 | hide Radar. 56 | 57 | | Name | Type | Default | Description | 58 | | ---------- | :--------- | :---------- | :---------- | 59 | | canvasID | String | | Id of `canvas` tag. | 60 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/GeometryViewer.md: -------------------------------------------------------------------------------- 1 | # Stinuum.GeometryViewer 2 | 3 | It visualizes features not in __hiddenFeatures__ only in __Stinuum.mfCollection.features__. 4 | 5 | ```js 6 | var stinuum = new Stinuum(viewer); 7 | console.log(stinuum.geometryViewer); 8 | ``` 9 | 10 | ## Members 11 | 12 | There is no member that user can access. 13 | 14 | ## Methods 15 | 16 | * __update()__ 17 | 18 | If there is any feature in __Stinuum.mfCollection.features__, then visualize them. 19 | 20 |   21 | 22 | * __clear()__ 23 | 24 | Clear Cesium.Viewer, but __features__ of MFCollection is not changed. It means this method just clear viewer temporaly. 25 | 26 |   27 | 28 | * __clickMovingFeature(id)__ 29 | 30 | Make highlight of certain feature such as mouse click. 31 | 32 | Example : 33 | 34 | ```js 35 | var handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas); 36 | handler.setInputAction(function(movement) { 37 | var pick = scene.pick(movement.position); 38 | if (Cesium.defined(pick)) { 39 | if(pick.primitive.id !== undefined){ 40 | stinuum.geometryViewer.clickMovingFeature(pick.primitive.id); 41 | } 42 | } 43 | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); 44 | ``` 45 | * __animate()__ 46 | 47 | If there is any feature in __Stinuum.mfCollection.features__, then visualize them. 48 | 49 | 50 |   51 | 52 | * __drawZaxis()__ 53 | 54 | If map is Space-time 3D map, creating a 3D graph using Minimum and Maximum times(z-axis) of MovingFeautres, x and y coordinates of map 55 | 56 |   57 | 58 | * __drawZaxisLabel()__ 59 | 60 | Add a time label at a point where the time axis is divided by five part 61 | 62 |   63 | 64 | * __adjustCameraView()__ 65 | 66 | If map changes, camera view changes about the type of map 67 | 68 |   69 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/Imagemarking.md: -------------------------------------------------------------------------------- 1 | # Stinuum.Imagemarking 2 | 3 | Showing images according to the ParametricValues ​​data in temporalProperties of MF-JSON. 4 | 5 | ```js 6 | var stinuum = new Stinuum(viewer); 7 | console.log(stinuum.Imagemarking); 8 | ``` 9 | 10 | ## Members 11 | 12 | There is no member that user can access. 13 | 14 | ## Methods 15 | 16 | * __remove(canvasID)__ 17 | 18 | Remove the image viewer using __canvasID__ 19 | 20 | Example : 21 | ```js 22 | stinuum.Imagemarking.remove(canvasID); 23 | ``` 24 | 25 |   26 | 27 | * __show_img(pro_type_arr, image)__ 28 | 29 | Get the temporalProperties value using the pro_type_arr 30 | 31 | | Name | Type | Default | Description | 32 | | ---------- | :--------- | :---------- | :---------- | 33 | | pro_type_arr | Array | | Array of ParameticValues that is selected by user | 34 | | image | String || Id of `canvas` tag| 35 | 36 |   37 | 38 | * __checkType(imageValue)__ 39 | 40 | Check whether image value is address or Base64 41 | 42 | | Name | Type | Default | Description | 43 | | ---------- | :--------- | :---------- | :---------- | 44 | | imageValue | String | | Data of Image | 45 | 46 |   47 | 48 | * __onTick(current_time)__ 49 | 50 | Obtain the image upload time by comparing Cesium browser time and canvas time 51 | 52 | | Name | Type | Default | Description | 53 | | ---------- | :--------- | :---------- | :---------- | 54 | | current_time | Date | | Current time of Cesium browser | 55 | 56 |   57 | 58 | * __showImage(image_div)__ 59 | 60 | The image exposure time is determined according to the interpolation value of the ParameticValue 61 | ( Only __"Discrete"__ and __"Step"__ can be used among Interpolation values ) 62 | 63 | | Name | Type | Default | Description | 64 | | ---------- | :--------- | :---------- | :---------- | 65 | | image_div | String | | Data of `canvas` tag | 66 | 67 |   68 | 69 | * __draw_image(ctx, src, width, height)__ 70 | 71 | Upload the image to fit the size of the canvas 72 | 73 | | Name | Type | Default | Description | 74 | | ---------- | :--------- | :---------- | :---------- | 75 | | ctx | String | | Data of getContext('2d') from `canvas` tag | 76 | | src | String | | Value of Image | 77 | | width | Number | | Width size of canvas | 78 | | height | Number | | Height size of canvas | 79 | 80 |   81 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/MFPair.md: -------------------------------------------------------------------------------- 1 | # Stinuum.MFPair 2 | 3 | ```js 4 | new Stinuum.MFPair(id, feature); 5 | ``` 6 | 7 | ## Members 8 | 9 | * __id__ : String 10 | Identifier of one Moving Feature. This must be unique value. 11 | 12 | 13 | * __feature__ : Moving Feature JSON object 14 | 15 | 16 | 17 | ## Methods 18 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/MovementDrawing.md: -------------------------------------------------------------------------------- 1 | 2 | # Stinuum.MovementDrawing 3 | 4 | Make the MovingObject using the czml format and temporalGeometry data of MovingFeature. 5 | 6 | ```js 7 | var moving = new Stinuum.MovementDrawing(stinuum) 8 | ``` 9 | ## Members 10 | 11 | There is no member that user can access. 12 | 13 | ## Methods 14 | 15 | ```js 16 | var options = { 17 | "temporalGeometry": feature.temporalGeometry, 18 | "number": countNumber, 19 | "id": feaure.name 20 | } 21 | ``` 22 | 23 | * __moveMovingPoint(options)__ 24 | 25 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPoint 26 | 27 | | Name | Type | Default | Description | 28 | | ---------- | :--------- | :---------- | :---------- | 29 | | options | Object | | temporalGeometry data and id of MovingFeature | 30 | 31 | 32 |   33 | 34 | * __moveMovingPointCloud(options)__ 35 | 36 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPointCloud 37 | 38 | | Name | Type | Default | Description | 39 | | ---------- | :--------- | :---------- | :---------- | 40 | | options | Object | | temporalGeometry data and id of MovingFeature | 41 | 42 | 43 |   44 | 45 | * __moveMovingLineString(options)__ 46 | 47 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingLineString 48 | 49 | | Name | Type | Default | Description | 50 | | ---------- | :--------- | :---------- | :---------- | 51 | | options | Object | | temporalGeometry data and id of MovingFeature | 52 | 53 | 54 |   55 | 56 | * __moveMovingPolygon(options)__ 57 | 58 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPolygon 59 | 60 | | Name | Type | Default | Description | 61 | | ---------- | :--------- | :---------- | :---------- | 62 | | options | Object | | temporalGeometry data and id of MovingFeature | 63 | 64 | 65 |   66 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/PathDrawing.md: -------------------------------------------------------------------------------- 1 | 2 | # Stinuum.PathDrawing 3 | 4 | Draw the path of MovingFeatures using the temporalGeometry data 5 | 6 | ```js 7 | var drawing = new Stinuum.PathDrawing(stinuum) 8 | ``` 9 | ## Members 10 | 11 | There is no member that user can access. 12 | 13 | ## Methods 14 | 15 | ```js 16 | var options = { 17 | "temporalGeometry": feature.temporalGeometry, 18 | "id": feature.name 19 | } 20 | ``` 21 | * __drawPathMovingPoint(options)__ 22 | 23 | Draw the path of MovingPoint using temporalGeometry data 24 | If interpolation is Discrete or Step, using __drawMovingPoint(options)__. 25 | 26 | | Name | Type | Default | Description | 27 | | ---------- | :--------- | :---------- | :---------- | 28 | | options | Object | | temporalGeometry data and feature name | 29 | 30 |   31 | 32 | * __drawPathMovingPointCloud(options)__ 33 | 34 | Draw the path of MovingPointCloud using temporalGeometry data 35 | If interpolation is Discrete or Step, using __drawMovingPointCloud(options)__. 36 | 37 | | Name | Type | Default | Description | 38 | | ---------- | :--------- | :---------- | :---------- | 39 | | options | Object | | temporalGeometry data and feature name | 40 | 41 |   42 | 43 | * __drawPathMovingLineString(options)__ 44 | 45 | Draw the path of MovingLineString using temporalGeometry data 46 | If interpolation is Discrete or Step, using __drawMovingLineString(options)__. 47 | 48 | | Name | Type | Default | Description | 49 | | ---------- | :--------- | :---------- | :---------- | 50 | | options | Object | | temporalGeometry data and feature name | 51 | 52 |   53 | 54 | * __drawPathMovingPolygon(options)__ 55 | 56 | Draw the path of MovingPolygon temporalGeometry data 57 | If interpolation is Discrete or Step, using __drawMovingPolygon(options)__. 58 | 59 | | Name | Type | Default | Description | 60 | | ---------- | :--------- | :---------- | :---------- | 61 | | options | Object | | temporalGeometry data and feature name | 62 | 63 |   64 | 65 | * __drawMovingPoint(options)__ 66 | 67 | If the MovingFeatures type is MovingPoint and intrepolation is Discrete or Step, draw the each point using temporalGeometry data 68 | 69 | | Name | Type | Default | Description | 70 | | ---------- | :--------- | :---------- | :---------- | 71 | | options | Object | | temporalGeometry data and feature name | 72 | 73 |   74 | 75 | * __drawMovingPointCloud(options)__ 76 | 77 | If the MovingFeatures type is MovingPointCloud and intrepolation is Discrete or Step, draw the each point using temporalGeometry 78 | 79 | | Name | Type | Default | Description | 80 | | ---------- | :--------- | :---------- | :---------- | 81 | | options | Object | | temporalGeometry data and feature name | 82 | 83 |   84 | 85 | * __drawMovingLineString(options)__ 86 | 87 | If the MovingFeatures type is MovingLineString and intrepolation is Discrete or Step, draw the each line using temporalGeometry data 88 | 89 | | Name | Type | Default | Description | 90 | | ---------- | :--------- | :---------- | :---------- | 91 | | options | Object | | temporalGeometry data and feature name | 92 | 93 |   94 | 95 | * __drawMovingPolygon(options)__ 96 | 97 | If the MovingFeatures type is MovingPolygon and intrepolation is Discrete or Step, draw the each polygon using temporalGeometry data 98 | 99 | | Name | Type | Default | Description | 100 | | ---------- | :--------- | :---------- | :---------- | 101 | | options | Object | | temporalGeometry data and feature name | 102 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/PropertyGraph.md: -------------------------------------------------------------------------------- 1 | # Stinuum.PropertyGraph 2 | 3 | Showing graphs according to the ParametricValues ​​data in temporalProperties of MF-JSON. 4 | 5 | ```js 6 | var stinuum = new Stinuum(viewer); 7 | console.log(stinuum.propertyGraph); 8 | ``` 9 | 10 | ## Members 11 | 12 | There is no member that user can access. 13 | 14 | ## Methods 15 | 16 | * __show(propertyName, divID)__ 17 | 18 | Find the ParametricValues using propertyName in the temporalProperties and make the graph using __showPropertyArray(propertyName, array, div_id)__ 19 | 20 | | Name | Type | Default | Description | 21 | | ---------- | :--------- | :---------- | :---------- | 22 | | propertyName | Array | | Name of ParametricValues | 23 | | div_id | String | | Id of `div` tag. | 24 | 25 | Example : 26 | ```js 27 | stinuum.propertyGraph.show(name, "graph"); 28 | ``` 29 | 30 |   31 | 32 | * __showPropertyArray(propertyName, array, div_id)__ 33 | 34 | Make the graph using data of each ParametricValues of temporalProperties data 35 | 36 | | Name | Type | Default | Description | 37 | | ---------- | :--------- | :---------- | :---------- | 38 | | propertyName | Array | | Name of ParametricValues | 39 | | array | Array | | Object of ParametricValues | 40 | | div_id | String | | Id of `div` tag. | 41 | 42 | Example: 43 | ```js 44 | stinuum.propertyGraph.showPropertyArray(propertyName, array, 'graph'); 45 | ``` -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/QueryProcessor.md: -------------------------------------------------------------------------------- 1 | # Stinuum.QueryProcessor 2 | 3 | Make the new data of MovingFeatures using the data that is made by user 4 | 5 | ```js 6 | var stinuum = new Stinuum(viewer); 7 | console.log(stinuum.queryPorcessor); 8 | ``` 9 | ## Members 10 | 11 | There is no member that user can access. 12 | 13 | ## Methods 14 | 15 | 16 | * __queryByTime(start, end)__ 17 | 18 | Find features that is included in start and end times 19 | 20 | | Name | Type | Default | Description | 21 | | ---------- | :--------- | :---------- | :---------- | 22 | | start | Date | | start times or minimum time | 23 | | end | Date | | end times or maximum time | 24 | 25 |   26 | 27 | * __sliceFeatureByTime(feature, start, end)__ 28 | 29 | Make the new data of features that is included in start and end times 30 | 31 | | Name | Type | Default | Description | 32 | | ---------- | :--------- | :---------- | :---------- | 33 | | feature | Array | | Array of features that is included in the start and end | 34 | | start | Date | | start times or minimum time | 35 | | end | Date | | end times or maximum time | 36 | 37 |   -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/SRSTranslator.md: -------------------------------------------------------------------------------- 1 | # SRSTranslator 2 | 3 | Converts the coordinates value of MovingFeature to WGS84 format according to each coordinate system conversion formula defined in [EPSG.io](https://epsg.io/) 4 | 5 | ## Members 6 | 7 | * __projections__ 8 | 9 | An object with coordinate system name and transformation expression as key and value respectively 10 | 11 | 12 | * __transformations__ 13 | 14 | An object that stores the current coordinate system and coordinate system values ​​to convert 15 | 16 |   17 | 18 | ## Methods 19 | 20 | * __addProjection(name, projection)__ 21 | 22 | Add the coordinate system and transformation formula to __projections__ 23 | 24 | | Name | Type | Default | Description | 25 | | ---------- | :--------- | :---------- | :---------- | 26 | | name | String | | Name of CRS | 27 | | projection | String | | Projection value of CRS | 28 | 29 |   30 | 31 | * __forward(coords, projectionFrom, projectionTo)__ 32 | 33 | Convert the coordinate values ​​of the existing coordinate system to the WGS84 coordinate system. 34 | 35 | | Name | Type | Default | Description | 36 | | ---------- | :--------- | :---------- | :---------- | 37 | | coords | String | | Coordinate value to be converted | 38 | | projectionFrom | String | | Conventional coordinate system | 39 | | projectionTo | String | | Transformed coordinate system | 40 | 41 | 42 |   43 | * __getTransformation(projectionFrom, projectionTo)__ 44 | 45 | Get the coordinate system transformation formula. 46 | 47 | | Name | Type | Default | Description | 48 | | ---------- | :--------- | :---------- | :---------- | 49 | | projectionFrom | String | | Conventional coordinate system | 50 | | projectionTo | String | | Transformed coordinate system | 51 | 52 |   53 | * __getProjection(name)__ 54 | 55 | Get the projection value by the coordinate system name. 56 | 57 | | Name | Type | Default | Description | 58 | | ---------- | :--------- | :---------- | :---------- | 59 | | name | String | | Name of CRS | 60 | 61 |   62 | 63 | * __searchProjecion(name)__ 64 | 65 | Search the Projection value using CRS value from the __projections__. 66 | 67 | | Name | Type | Default | Description | 68 | | ---------- | :--------- | :---------- | :---------- | 69 | | name | String | | Name of CRS | 70 | 71 |   72 | 73 | * __crsCheck(crs)__ 74 | 75 | Search the Projection value using CRS value defined in MF-JSON. 76 | 77 | | Name | Type | Default | Description | 78 | | ---------- | :--------- | :---------- | :---------- | 79 | | crs | Object | | Value of CRS in MF-JSON| 80 | 81 | * __getDefaultDefinitions()__ 82 | 83 | Define the name and projection of the coordinate system to be used by default. -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/TemporalMap.md: -------------------------------------------------------------------------------- 1 | # Stinuum.TemporalMap 2 | 3 | ```js 4 | var stinuum = new Stinuum(viewer); 5 | console.log(stinuum.temporalMap); 6 | ``` 7 | 8 | ## Members 9 | 10 | There is no member that user can access. 11 | 12 | ## Methods 13 | 14 | * __show(id, propertyName)__ 15 | 16 | If Moving Feature whose id is in the features, then show TemporalMap of Moving Feature. 17 | 18 | Example: 19 | ```js 20 | var id = "mf_001"; 21 | var name = "speed"; 22 | 23 | stinuum.temporalMap.show(id, name); 24 | ``` 25 | -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/AnimationWidget.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/AnimationWidget.gif -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/AnimationWidget2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/AnimationWidget2.gif -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Graph1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph1.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Graph2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph2.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Graph3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph3.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Image.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Layers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Layers1.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Layers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Layers2.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/MFCollection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/MFCollection.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Main.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Rader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Rader.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/SceneModePicker1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/SceneModePicker1.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/SceneModePicker2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/SceneModePicker2.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Server.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/ServerLogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/ServerLogin.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Slice.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/StinuumWeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/StinuumWeb.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Text.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/Upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Upload.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/get2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get2.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/get3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get3.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/get4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get4.png -------------------------------------------------------------------------------- /Stinuum Web/src/documentation/image/get5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get5.png -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/.Rhistory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/js/mf-cesium/.Rhistory -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/Fileio.js: -------------------------------------------------------------------------------- 1 | function printFileUploadButton(){ 2 | var button = document.getElementById("uploadButton"); 3 | var input = document.createElement('button'); 4 | input.id = "files"; 5 | input.className = "btn btn-default upload"; 6 | input.multiple = "multiple"; 7 | input.name = "files[]"; 8 | 9 | var t = document.createTextNode("UPLOAD"); 10 | input.appendChild(t); 11 | 12 | button.appendChild(input); 13 | 14 | document.getElementById('files').addEventListener('click', getLocalFile, false); 15 | } 16 | 17 | function printPathServerButton(){ 18 | var button = document.getElementById("serverButton"); 19 | var input = document.createElement('button'); 20 | input.id = "server"; 21 | input.className = "btn btn-default upload"; 22 | input.multiple = "multiple"; 23 | input.name = "server[]"; 24 | 25 | var t = document.createTextNode("SERVER"); 26 | input.appendChild(t); 27 | 28 | button.appendChild(input) 29 | document.getElementById('server').addEventListener('click', () => { 30 | location.href="/dataSelect"; 31 | }); 32 | } 33 | 34 | function getLocalFile(){ 35 | var dropZone = document.getElementById('drop_zone'); 36 | dropZone.style.visibility = 'visible'; 37 | document.getElementById('drop_zone_bg').style.visibility = 'visible'; 38 | dropZone.addEventListener('dragover', handleDragOver, false); 39 | dropZone.addEventListener('drop', handleFileSelect, false); 40 | 41 | cleanGraphDIV(); 42 | } 43 | 44 | function closeDrop(){ 45 | var dropZone = document.getElementById('drop_zone'); 46 | dropZone.style.visibility = 'hidden'; 47 | document.getElementById('drop_zone_bg').style.visibility = 'hidden'; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/data_crs.csv: -------------------------------------------------------------------------------- 1 | GEOGCS["WGS 84", 2 | DATUM["WGS_1984", 3 | SPHEROID["WGS 84",6378137,298.257223563, 4 | AUTHORITY["EPSG","7030"]], 5 | AUTHORITY["EPSG","6326"]], 6 | PRIMEM["Greenwich",0, 7 | AUTHORITY["EPSG","8901"]], 8 | UNIT["degree",0.0174532925199433, 9 | AUTHORITY["EPSG","9122"]], 10 | AUTHORITY["EPSG","4326"]] -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: inherit; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: inherit; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/display/autorefresh.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")) 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod) 9 | else // Plain browser env 10 | mod(CodeMirror) 11 | })(function(CodeMirror) { 12 | "use strict" 13 | 14 | CodeMirror.defineOption("autoRefresh", false, function(cm, val) { 15 | if (cm.state.autoRefresh) { 16 | stopListening(cm, cm.state.autoRefresh) 17 | cm.state.autoRefresh = null 18 | } 19 | if (val && cm.display.wrapper.offsetHeight == 0) 20 | startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250}) 21 | }) 22 | 23 | function startListening(cm, state) { 24 | function check() { 25 | if (cm.display.wrapper.offsetHeight) { 26 | stopListening(cm, state) 27 | if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight) 28 | cm.refresh() 29 | } else { 30 | state.timeout = setTimeout(check, state.delay) 31 | } 32 | } 33 | state.timeout = setTimeout(check, state.delay) 34 | state.hurry = function() { 35 | clearTimeout(state.timeout) 36 | state.timeout = setTimeout(check, 50) 37 | } 38 | CodeMirror.on(window, "mouseup", state.hurry) 39 | CodeMirror.on(window, "keyup", state.hurry) 40 | } 41 | 42 | function stopListening(_cm, state) { 43 | clearTimeout(state.timeout) 44 | CodeMirror.off(window, "mouseup", state.hurry) 45 | CodeMirror.off(window, "keyup", state.hurry) 46 | } 47 | }); 48 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/display/fullscreen.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) { 15 | if (old == CodeMirror.Init) old = false; 16 | if (!old == !val) return; 17 | if (val) setFullscreen(cm); 18 | else setNormal(cm); 19 | }); 20 | 21 | function setFullscreen(cm) { 22 | var wrap = cm.getWrapperElement(); 23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, 24 | width: wrap.style.width, height: wrap.style.height}; 25 | wrap.style.width = ""; 26 | wrap.style.height = "auto"; 27 | wrap.className += " CodeMirror-fullscreen"; 28 | document.documentElement.style.overflow = "hidden"; 29 | cm.refresh(); 30 | } 31 | 32 | function setNormal(cm) { 33 | var wrap = cm.getWrapperElement(); 34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, ""); 35 | document.documentElement.style.overflow = ""; 36 | var info = cm.state.fullScreenRestore; 37 | wrap.style.width = info.width; wrap.style.height = info.height; 38 | window.scrollTo(info.scrollLeft, info.scrollTop); 39 | cm.refresh(); 40 | } 41 | }); 42 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/display/placeholder.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { 13 | var prev = old && old != CodeMirror.Init; 14 | if (val && !prev) { 15 | cm.on("blur", onBlur); 16 | cm.on("change", onChange); 17 | cm.on("swapDoc", onChange); 18 | onChange(cm); 19 | } else if (!val && prev) { 20 | cm.off("blur", onBlur); 21 | cm.off("change", onChange); 22 | cm.off("swapDoc", onChange); 23 | clearPlaceholder(cm); 24 | var wrapper = cm.getWrapperElement(); 25 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", ""); 26 | } 27 | 28 | if (val && !cm.hasFocus()) onBlur(cm); 29 | }); 30 | 31 | function clearPlaceholder(cm) { 32 | if (cm.state.placeholder) { 33 | cm.state.placeholder.parentNode.removeChild(cm.state.placeholder); 34 | cm.state.placeholder = null; 35 | } 36 | } 37 | function setPlaceholder(cm) { 38 | clearPlaceholder(cm); 39 | var elt = cm.state.placeholder = document.createElement("pre"); 40 | elt.style.cssText = "height: 0; overflow: visible"; 41 | elt.style.direction = cm.getOption("direction"); 42 | elt.className = "CodeMirror-placeholder CodeMirror-line-like"; 43 | var placeHolder = cm.getOption("placeholder") 44 | if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder) 45 | elt.appendChild(placeHolder) 46 | cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild); 47 | } 48 | 49 | function onBlur(cm) { 50 | if (isEmpty(cm)) setPlaceholder(cm); 51 | } 52 | function onChange(cm) { 53 | var wrapper = cm.getWrapperElement(), empty = isEmpty(cm); 54 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : ""); 55 | 56 | if (empty) setPlaceholder(cm); 57 | else clearPlaceholder(cm); 58 | } 59 | 60 | function isEmpty(cm) { 61 | return (cm.lineCount() === 1) && (cm.getLine(0) === ""); 62 | } 63 | }); 64 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/display/rulers.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("rulers", false, function(cm, val) { 15 | if (cm.state.rulerDiv) { 16 | cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv) 17 | cm.state.rulerDiv = null 18 | cm.off("refresh", drawRulers) 19 | } 20 | if (val && val.length) { 21 | cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement("div"), cm.display.lineSpace) 22 | cm.state.rulerDiv.className = "CodeMirror-rulers" 23 | drawRulers(cm) 24 | cm.on("refresh", drawRulers) 25 | } 26 | }); 27 | 28 | function drawRulers(cm) { 29 | cm.state.rulerDiv.textContent = "" 30 | var val = cm.getOption("rulers"); 31 | var cw = cm.defaultCharWidth(); 32 | var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left; 33 | cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + "px"; 34 | for (var i = 0; i < val.length; i++) { 35 | var elt = document.createElement("div"); 36 | elt.className = "CodeMirror-ruler"; 37 | var col, conf = val[i]; 38 | if (typeof conf == "number") { 39 | col = conf; 40 | } else { 41 | col = conf.column; 42 | if (conf.className) elt.className += " " + conf.className; 43 | if (conf.color) elt.style.borderColor = conf.color; 44 | if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle; 45 | if (conf.width) elt.style.borderLeftWidth = conf.width; 46 | } 47 | elt.style.left = (left + col * cw) + "px"; 48 | cm.state.rulerDiv.appendChild(elt) 49 | } 50 | } 51 | }); 52 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/edit/matchtags.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../fold/xml-fold")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "../fold/xml-fold"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("matchTags", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | cm.off("cursorActivity", doMatchTags); 17 | cm.off("viewportChange", maybeUpdateMatch); 18 | clear(cm); 19 | } 20 | if (val) { 21 | cm.state.matchBothTags = typeof val == "object" && val.bothTags; 22 | cm.on("cursorActivity", doMatchTags); 23 | cm.on("viewportChange", maybeUpdateMatch); 24 | doMatchTags(cm); 25 | } 26 | }); 27 | 28 | function clear(cm) { 29 | if (cm.state.tagHit) cm.state.tagHit.clear(); 30 | if (cm.state.tagOther) cm.state.tagOther.clear(); 31 | cm.state.tagHit = cm.state.tagOther = null; 32 | } 33 | 34 | function doMatchTags(cm) { 35 | cm.state.failedTagMatch = false; 36 | cm.operation(function() { 37 | clear(cm); 38 | if (cm.somethingSelected()) return; 39 | var cur = cm.getCursor(), range = cm.getViewport(); 40 | range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to); 41 | var match = CodeMirror.findMatchingTag(cm, cur, range); 42 | if (!match) return; 43 | if (cm.state.matchBothTags) { 44 | var hit = match.at == "open" ? match.open : match.close; 45 | if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"}); 46 | } 47 | var other = match.at == "close" ? match.open : match.close; 48 | if (other) 49 | cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"}); 50 | else 51 | cm.state.failedTagMatch = true; 52 | }); 53 | } 54 | 55 | function maybeUpdateMatch(cm) { 56 | if (cm.state.failedTagMatch) doMatchTags(cm); 57 | } 58 | 59 | CodeMirror.commands.toMatchingTag = function(cm) { 60 | var found = CodeMirror.findMatchingTag(cm, cm.getCursor()); 61 | if (found) { 62 | var other = found.at == "close" ? found.open : found.close; 63 | if (other) cm.extendSelection(other.to, other.from); 64 | } 65 | }; 66 | }); 67 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/fold/comment-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerGlobalHelper("fold", "comment", function(mode) { 15 | return mode.blockCommentStart && mode.blockCommentEnd; 16 | }, function(cm, start) { 17 | var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd; 18 | if (!startToken || !endToken) return; 19 | var line = start.line, lineText = cm.getLine(line); 20 | 21 | var startCh; 22 | for (var at = start.ch, pass = 0;;) { 23 | var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1); 24 | if (found == -1) { 25 | if (pass == 1) return; 26 | pass = 1; 27 | at = lineText.length; 28 | continue; 29 | } 30 | if (pass == 1 && found < start.ch) return; 31 | if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) && 32 | (found == 0 || lineText.slice(found - endToken.length, found) == endToken || 33 | !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) { 34 | startCh = found + startToken.length; 35 | break; 36 | } 37 | at = found - 1; 38 | } 39 | 40 | var depth = 1, lastLine = cm.lastLine(), end, endCh; 41 | outer: for (var i = line; i <= lastLine; ++i) { 42 | var text = cm.getLine(i), pos = i == line ? startCh : 0; 43 | for (;;) { 44 | var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos); 45 | if (nextOpen < 0) nextOpen = text.length; 46 | if (nextClose < 0) nextClose = text.length; 47 | pos = Math.min(nextOpen, nextClose); 48 | if (pos == text.length) break; 49 | if (pos == nextOpen) ++depth; 50 | else if (!--depth) { end = i; endCh = pos; break outer; } 51 | ++pos; 52 | } 53 | } 54 | if (end == null || line == end && endCh == startCh) return; 55 | return {from: CodeMirror.Pos(line, startCh), 56 | to: CodeMirror.Pos(end, endCh)}; 57 | }); 58 | 59 | }); 60 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | function lineIndent(cm, lineNo) { 15 | var text = cm.getLine(lineNo) 16 | var spaceTo = text.search(/\S/) 17 | if (spaceTo == -1 || /\bcomment\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1)))) 18 | return -1 19 | return CodeMirror.countColumn(text, null, cm.getOption("tabSize")) 20 | } 21 | 22 | CodeMirror.registerHelper("fold", "indent", function(cm, start) { 23 | var myIndent = lineIndent(cm, start.line) 24 | if (myIndent < 0) return 25 | var lastLineInFold = null 26 | 27 | // Go through lines until we find a line that definitely doesn't belong in 28 | // the block we're folding, or to the end. 29 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) { 30 | var indent = lineIndent(cm, i) 31 | if (indent == -1) { 32 | } else if (indent > myIndent) { 33 | // Lines with a greater indent are considered part of the block. 34 | lastLineInFold = i; 35 | } else { 36 | // If this line has non-space, non-comment content, and is 37 | // indented less or equal to the start line, it is the start of 38 | // another block. 39 | break; 40 | } 41 | } 42 | if (lastLineInFold) return { 43 | from: CodeMirror.Pos(start.line, cm.getLine(start.line).length), 44 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length) 45 | }; 46 | }); 47 | 48 | }); 49 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/fold/markdown-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerHelper("fold", "markdown", function(cm, start) { 15 | var maxDepth = 100; 16 | 17 | function isHeader(lineNo) { 18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0)); 19 | return tokentype && /\bheader\b/.test(tokentype); 20 | } 21 | 22 | function headerLevel(lineNo, line, nextLine) { 23 | var match = line && line.match(/^#+/); 24 | if (match && isHeader(lineNo)) return match[0].length; 25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/); 26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2; 27 | return maxDepth; 28 | } 29 | 30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1); 31 | var level = headerLevel(start.line, firstLine, nextLine); 32 | if (level === maxDepth) return undefined; 33 | 34 | var lastLineNo = cm.lastLine(); 35 | var end = start.line, nextNextLine = cm.getLine(end + 2); 36 | while (end < lastLineNo) { 37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break; 38 | ++end; 39 | nextLine = nextNextLine; 40 | nextNextLine = cm.getLine(end + 2); 41 | } 42 | 43 | return { 44 | from: CodeMirror.Pos(start.line, firstLine.length), 45 | to: CodeMirror.Pos(end, cm.getLine(end).length) 46 | }; 47 | }); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/hint/anyword-hint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var WORD = /[\w$]+/, RANGE = 500; 15 | 16 | CodeMirror.registerHelper("hint", "anyword", function(editor, options) { 17 | var word = options && options.word || WORD; 18 | var range = options && options.range || RANGE; 19 | var cur = editor.getCursor(), curLine = editor.getLine(cur.line); 20 | var end = cur.ch, start = end; 21 | while (start && word.test(curLine.charAt(start - 1))) --start; 22 | var curWord = start != end && curLine.slice(start, end); 23 | 24 | var list = options && options.list || [], seen = {}; 25 | var re = new RegExp(word.source, "g"); 26 | for (var dir = -1; dir <= 1; dir += 2) { 27 | var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir; 28 | for (; line != endLine; line += dir) { 29 | var text = editor.getLine(line), m; 30 | while (m = re.exec(text)) { 31 | if (line == cur.line && m[0] === curWord) continue; 32 | if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) { 33 | seen[m[0]] = true; 34 | list.push(m[0]); 35 | } 36 | } 37 | } 38 | } 39 | return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)}; 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/hint/css-hint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../../mode/css/css")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "../../mode/css/css"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var pseudoClasses = {"active":1, "after":1, "before":1, "checked":1, "default":1, 15 | "disabled":1, "empty":1, "enabled":1, "first-child":1, "first-letter":1, 16 | "first-line":1, "first-of-type":1, "focus":1, "hover":1, "in-range":1, 17 | "indeterminate":1, "invalid":1, "lang":1, "last-child":1, "last-of-type":1, 18 | "link":1, "not":1, "nth-child":1, "nth-last-child":1, "nth-last-of-type":1, 19 | "nth-of-type":1, "only-of-type":1, "only-child":1, "optional":1, "out-of-range":1, 20 | "placeholder":1, "read-only":1, "read-write":1, "required":1, "root":1, 21 | "selection":1, "target":1, "valid":1, "visited":1 22 | }; 23 | 24 | CodeMirror.registerHelper("hint", "css", function(cm) { 25 | var cur = cm.getCursor(), token = cm.getTokenAt(cur); 26 | var inner = CodeMirror.innerMode(cm.getMode(), token.state); 27 | if (inner.mode.name != "css") return; 28 | 29 | if (token.type == "keyword" && "!important".indexOf(token.string) == 0) 30 | return {list: ["!important"], from: CodeMirror.Pos(cur.line, token.start), 31 | to: CodeMirror.Pos(cur.line, token.end)}; 32 | 33 | var start = token.start, end = cur.ch, word = token.string.slice(0, end - start); 34 | if (/[^\w$_-]/.test(word)) { 35 | word = ""; start = end = cur.ch; 36 | } 37 | 38 | var spec = CodeMirror.resolveMode("text/css"); 39 | 40 | var result = []; 41 | function add(keywords) { 42 | for (var name in keywords) 43 | if (!word || name.lastIndexOf(word, 0) == 0) 44 | result.push(name); 45 | } 46 | 47 | var st = inner.state.state; 48 | if (st == "pseudo" || token.type == "variable-3") { 49 | add(pseudoClasses); 50 | } else if (st == "block" || st == "maybeprop") { 51 | add(spec.propertyKeywords); 52 | } else if (st == "prop" || st == "parens" || st == "at" || st == "params") { 53 | add(spec.valueKeywords); 54 | add(spec.colorKeywords); 55 | } else if (st == "media" || st == "media_parens") { 56 | add(spec.mediaTypes); 57 | add(spec.mediaFeatures); 58 | } 59 | 60 | if (result.length) return { 61 | list: result, 62 | from: CodeMirror.Pos(cur.line, start), 63 | to: CodeMirror.Pos(cur.line, end) 64 | }; 65 | }); 66 | }); 67 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | white-space: pre; 29 | color: black; 30 | cursor: pointer; 31 | } 32 | 33 | li.CodeMirror-hint-active { 34 | background: #08f; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | if (!window.coffeelint) { 21 | if (window.console) { 22 | window.console.error("Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run."); 23 | } 24 | return found; 25 | } 26 | var parseError = function(err) { 27 | var loc = err.lineNumber; 28 | found.push({from: CodeMirror.Pos(loc-1, 0), 29 | to: CodeMirror.Pos(loc, 0), 30 | severity: err.level, 31 | message: err.message}); 32 | }; 33 | try { 34 | var res = coffeelint.lint(text); 35 | for(var i = 0; i < res.length; i++) { 36 | parseError(res[i]); 37 | } 38 | } catch(e) { 39 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 40 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 41 | severity: 'error', 42 | message: e.message}); 43 | } 44 | return found; 45 | }); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text, options) { 19 | var found = []; 20 | if (!window.CSSLint) { 21 | if (window.console) { 22 | window.console.error("Error: window.CSSLint not defined, CodeMirror CSS linting cannot run."); 23 | } 24 | return found; 25 | } 26 | var results = CSSLint.verify(text, options), messages = results.messages, message = null; 27 | for ( var i = 0; i < messages.length; i++) { 28 | message = messages[i]; 29 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 30 | found.push({ 31 | from: CodeMirror.Pos(startLine, startCol), 32 | to: CodeMirror.Pos(endLine, endCol), 33 | message: message.message, 34 | severity : message.type 35 | }); 36 | } 37 | return found; 38 | }); 39 | 40 | }); 41 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/html-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js 5 | 6 | // declare global: HTMLHint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror"), require("htmlhint")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror", "htmlhint"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror, window.HTMLHint); 15 | })(function(CodeMirror, HTMLHint) { 16 | "use strict"; 17 | 18 | var defaultRules = { 19 | "tagname-lowercase": true, 20 | "attr-lowercase": true, 21 | "attr-value-double-quotes": true, 22 | "doctype-first": false, 23 | "tag-pair": true, 24 | "spec-char-escape": true, 25 | "id-unique": true, 26 | "src-not-empty": true, 27 | "attr-no-duplication": true 28 | }; 29 | 30 | CodeMirror.registerHelper("lint", "html", function(text, options) { 31 | var found = []; 32 | if (HTMLHint && !HTMLHint.verify) { 33 | if(typeof HTMLHint.default !== 'undefined') { 34 | HTMLHint = HTMLHint.default; 35 | } else { 36 | HTMLHint = HTMLHint.HTMLHint; 37 | } 38 | } 39 | if (!HTMLHint) HTMLHint = window.HTMLHint; 40 | if (!HTMLHint) { 41 | if (window.console) { 42 | window.console.error("Error: HTMLHint not found, not defined on window, or not available through define/require, CodeMirror HTML linting cannot run."); 43 | } 44 | return found; 45 | } 46 | var messages = HTMLHint.verify(text, options && options.rules || defaultRules); 47 | for (var i = 0; i < messages.length; i++) { 48 | var message = messages[i]; 49 | var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col; 50 | found.push({ 51 | from: CodeMirror.Pos(startLine, startCol), 52 | to: CodeMirror.Pos(endLine, endCol), 53 | message: message.message, 54 | severity : message.type 55 | }); 56 | } 57 | return found; 58 | }); 59 | }); 60 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/javascript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | // declare global: JSHINT 14 | 15 | function validator(text, options) { 16 | if (!window.JSHINT) { 17 | if (window.console) { 18 | window.console.error("Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run."); 19 | } 20 | return []; 21 | } 22 | if (!options.indent) // JSHint error.character actually is a column index, this fixes underlining on lines using tabs for indentation 23 | options.indent = 1; // JSHint default value is 4 24 | JSHINT(text, options, options.globals); 25 | var errors = JSHINT.data().errors, result = []; 26 | if (errors) parseErrors(errors, result); 27 | return result; 28 | } 29 | 30 | CodeMirror.registerHelper("lint", "javascript", validator); 31 | 32 | function parseErrors(errors, output) { 33 | for ( var i = 0; i < errors.length; i++) { 34 | var error = errors[i]; 35 | if (error) { 36 | if (error.line <= 0) { 37 | if (window.console) { 38 | window.console.warn("Cannot display JSHint error (invalid line " + error.line + ")", error); 39 | } 40 | continue; 41 | } 42 | 43 | var start = error.character - 1, end = start + 1; 44 | if (error.evidence) { 45 | var index = error.evidence.substring(start).search(/.\b/); 46 | if (index > -1) { 47 | end += index; 48 | } 49 | } 50 | 51 | // Convert to format expected by validation service 52 | var hint = { 53 | message: error.reason, 54 | severity: error.code ? (error.code.startsWith('W') ? "warning" : "error") : "error", 55 | from: CodeMirror.Pos(error.line - 1, start), 56 | to: CodeMirror.Pos(error.line - 1, end) 57 | }; 58 | 59 | output.push(hint); 60 | } 61 | } 62 | } 63 | }); 64 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | if (!window.jsonlint) { 21 | if (window.console) { 22 | window.console.error("Error: window.jsonlint not defined, CodeMirror JSON linting cannot run."); 23 | } 24 | return found; 25 | } 26 | // for jsonlint's web dist jsonlint is exported as an object with a single property parser, of which parseError 27 | // is a subproperty 28 | var jsonlint = window.jsonlint.parser || window.jsonlint 29 | jsonlint.parseError = function(str, hash) { 30 | var loc = hash.loc; 31 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 32 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 33 | message: str}); 34 | }; 35 | try { jsonlint.parse(text); } 36 | catch(e) {} 37 | return found; 38 | }); 39 | 40 | }); 41 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/lint.css: -------------------------------------------------------------------------------- 1 | /* The lint marker gutter */ 2 | .CodeMirror-lint-markers { 3 | width: 16px; 4 | } 5 | 6 | .CodeMirror-lint-tooltip { 7 | background-color: #ffd; 8 | border: 1px solid black; 9 | border-radius: 4px 4px 4px 4px; 10 | color: black; 11 | font-family: monospace; 12 | font-size: 10pt; 13 | overflow: hidden; 14 | padding: 2px 5px; 15 | position: fixed; 16 | white-space: pre; 17 | white-space: pre-wrap; 18 | z-index: 100; 19 | max-width: 600px; 20 | opacity: 0; 21 | transition: opacity .4s; 22 | -moz-transition: opacity .4s; 23 | -webkit-transition: opacity .4s; 24 | -o-transition: opacity .4s; 25 | -ms-transition: opacity .4s; 26 | } 27 | 28 | .CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning { 29 | background-position: left bottom; 30 | background-repeat: repeat-x; 31 | } 32 | 33 | .CodeMirror-lint-mark-error { 34 | background-image: 35 | url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==") 36 | ; 37 | } 38 | 39 | .CodeMirror-lint-mark-warning { 40 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); 41 | } 42 | 43 | .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { 44 | background-position: center center; 45 | background-repeat: no-repeat; 46 | cursor: pointer; 47 | display: inline-block; 48 | height: 16px; 49 | width: 16px; 50 | vertical-align: middle; 51 | position: relative; 52 | } 53 | 54 | .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { 55 | padding-left: 18px; 56 | background-position: top left; 57 | background-repeat: no-repeat; 58 | } 59 | 60 | .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { 61 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); 62 | } 63 | 64 | .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { 65 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); 66 | } 67 | 68 | .CodeMirror-lint-marker-multiple { 69 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC"); 70 | background-repeat: no-repeat; 71 | background-position: right bottom; 72 | width: 100%; height: 100%; 73 | } 74 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | if (!window.jsyaml) { 21 | if (window.console) { 22 | window.console.error("Error: window.jsyaml not defined, CodeMirror YAML linting cannot run."); 23 | } 24 | return found; 25 | } 26 | try { jsyaml.loadAll(text); } 27 | catch(e) { 28 | var loc = e.mark, 29 | // js-yaml YAMLException doesn't always provide an accurate lineno 30 | // e.g., when there are multiple yaml docs 31 | // --- 32 | // --- 33 | // foo:bar 34 | from = loc ? CodeMirror.Pos(loc.line, loc.column) : CodeMirror.Pos(0, 0), 35 | to = from; 36 | found.push({ from: from, to: to, message: e.message }); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/merge/merge.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-merge { 2 | position: relative; 3 | border: 1px solid #ddd; 4 | white-space: pre; 5 | } 6 | 7 | .CodeMirror-merge, .CodeMirror-merge .CodeMirror { 8 | height: 350px; 9 | } 10 | 11 | .CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; } 12 | .CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; } 13 | .CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; } 14 | .CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; } 15 | 16 | .CodeMirror-merge-pane { 17 | display: inline-block; 18 | white-space: normal; 19 | vertical-align: top; 20 | } 21 | .CodeMirror-merge-pane-rightmost { 22 | position: absolute; 23 | right: 0px; 24 | z-index: 1; 25 | } 26 | 27 | .CodeMirror-merge-gap { 28 | z-index: 2; 29 | display: inline-block; 30 | height: 100%; 31 | -moz-box-sizing: border-box; 32 | box-sizing: border-box; 33 | overflow: hidden; 34 | border-left: 1px solid #ddd; 35 | border-right: 1px solid #ddd; 36 | position: relative; 37 | background: #f8f8f8; 38 | } 39 | 40 | .CodeMirror-merge-scrolllock-wrap { 41 | position: absolute; 42 | bottom: 0; left: 50%; 43 | } 44 | .CodeMirror-merge-scrolllock { 45 | position: relative; 46 | left: -50%; 47 | cursor: pointer; 48 | color: #555; 49 | line-height: 1; 50 | } 51 | .CodeMirror-merge-scrolllock:after { 52 | content: "\21db\00a0\00a0\21da"; 53 | } 54 | .CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after { 55 | content: "\21db\21da"; 56 | } 57 | 58 | .CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right { 59 | position: absolute; 60 | left: 0; top: 0; 61 | right: 0; bottom: 0; 62 | line-height: 1; 63 | } 64 | 65 | .CodeMirror-merge-copy { 66 | position: absolute; 67 | cursor: pointer; 68 | color: #44c; 69 | z-index: 3; 70 | } 71 | 72 | .CodeMirror-merge-copy-reverse { 73 | position: absolute; 74 | cursor: pointer; 75 | color: #44c; 76 | } 77 | 78 | .CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; } 79 | .CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; } 80 | 81 | .CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted { 82 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==); 83 | background-position: bottom left; 84 | background-repeat: repeat-x; 85 | } 86 | 87 | .CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted { 88 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==); 89 | background-position: bottom left; 90 | background-repeat: repeat-x; 91 | } 92 | 93 | .CodeMirror-merge-r-chunk { background: #ffffe0; } 94 | .CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; } 95 | .CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; } 96 | .CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; } 97 | 98 | .CodeMirror-merge-l-chunk { background: #eef; } 99 | .CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; } 100 | .CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; } 101 | .CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; } 102 | 103 | .CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; } 104 | .CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; } 105 | .CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; } 106 | 107 | .CodeMirror-merge-collapsed-widget:before { 108 | content: "(...)"; 109 | } 110 | .CodeMirror-merge-collapsed-widget { 111 | cursor: pointer; 112 | color: #88b; 113 | background: #eef; 114 | border: 1px solid #ddf; 115 | font-size: 90%; 116 | padding: 0 3px; 117 | border-radius: 4px; 118 | } 119 | .CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; } 120 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/mode/loadmode.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), "cjs"); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); }); 9 | else // Plain browser env 10 | mod(CodeMirror, "plain"); 11 | })(function(CodeMirror, env) { 12 | if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js"; 13 | 14 | var loading = {}; 15 | function splitCallback(cont, n) { 16 | var countDown = n; 17 | return function() { if (--countDown == 0) cont(); }; 18 | } 19 | function ensureDeps(mode, cont) { 20 | var deps = CodeMirror.modes[mode].dependencies; 21 | if (!deps) return cont(); 22 | var missing = []; 23 | for (var i = 0; i < deps.length; ++i) { 24 | if (!CodeMirror.modes.hasOwnProperty(deps[i])) 25 | missing.push(deps[i]); 26 | } 27 | if (!missing.length) return cont(); 28 | var split = splitCallback(cont, missing.length); 29 | for (var i = 0; i < missing.length; ++i) 30 | CodeMirror.requireMode(missing[i], split); 31 | } 32 | 33 | CodeMirror.requireMode = function(mode, cont) { 34 | if (typeof mode != "string") mode = mode.name; 35 | if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont); 36 | if (loading.hasOwnProperty(mode)) return loading[mode].push(cont); 37 | 38 | var file = CodeMirror.modeURL.replace(/%N/g, mode); 39 | if (env == "plain") { 40 | var script = document.createElement("script"); 41 | script.src = file; 42 | var others = document.getElementsByTagName("script")[0]; 43 | var list = loading[mode] = [cont]; 44 | CodeMirror.on(script, "load", function() { 45 | ensureDeps(mode, function() { 46 | for (var i = 0; i < list.length; ++i) list[i](); 47 | }); 48 | }); 49 | others.parentNode.insertBefore(script, others); 50 | } else if (env == "cjs") { 51 | require(file); 52 | cont(); 53 | } else if (env == "amd") { 54 | requirejs([file], cont); 55 | } 56 | }; 57 | 58 | CodeMirror.autoLoadMode = function(instance, mode) { 59 | if (!CodeMirror.modes.hasOwnProperty(mode)) 60 | CodeMirror.requireMode(mode, function() { 61 | instance.setOption("mode", instance.getOption("mode")); 62 | }); 63 | }; 64 | }); 65 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/mode/overlay.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Utility function that allows modes to be combined. The mode given 5 | // as the base argument takes care of most of the normal mode 6 | // functionality, but a second (typically simple) mode is used, which 7 | // can override the style of text. Both modes get to parse all of the 8 | // text, but when both assign a non-null style to a piece of code, the 9 | // overlay wins, unless the combine argument was true and not overridden, 10 | // or state.overlay.combineTokens was true, in which case the styles are 11 | // combined. 12 | 13 | (function(mod) { 14 | if (typeof exports == "object" && typeof module == "object") // CommonJS 15 | mod(require("../../lib/codemirror")); 16 | else if (typeof define == "function" && define.amd) // AMD 17 | define(["../../lib/codemirror"], mod); 18 | else // Plain browser env 19 | mod(CodeMirror); 20 | })(function(CodeMirror) { 21 | "use strict"; 22 | 23 | CodeMirror.overlayMode = function(base, overlay, combine) { 24 | return { 25 | startState: function() { 26 | return { 27 | base: CodeMirror.startState(base), 28 | overlay: CodeMirror.startState(overlay), 29 | basePos: 0, baseCur: null, 30 | overlayPos: 0, overlayCur: null, 31 | streamSeen: null 32 | }; 33 | }, 34 | copyState: function(state) { 35 | return { 36 | base: CodeMirror.copyState(base, state.base), 37 | overlay: CodeMirror.copyState(overlay, state.overlay), 38 | basePos: state.basePos, baseCur: null, 39 | overlayPos: state.overlayPos, overlayCur: null 40 | }; 41 | }, 42 | 43 | token: function(stream, state) { 44 | if (stream != state.streamSeen || 45 | Math.min(state.basePos, state.overlayPos) < stream.start) { 46 | state.streamSeen = stream; 47 | state.basePos = state.overlayPos = stream.start; 48 | } 49 | 50 | if (stream.start == state.basePos) { 51 | state.baseCur = base.token(stream, state.base); 52 | state.basePos = stream.pos; 53 | } 54 | if (stream.start == state.overlayPos) { 55 | stream.pos = stream.start; 56 | state.overlayCur = overlay.token(stream, state.overlay); 57 | state.overlayPos = stream.pos; 58 | } 59 | stream.pos = Math.min(state.basePos, state.overlayPos); 60 | 61 | // state.overlay.combineTokens always takes precedence over combine, 62 | // unless set to null 63 | if (state.overlayCur == null) return state.baseCur; 64 | else if (state.baseCur != null && 65 | state.overlay.combineTokens || 66 | combine && state.overlay.combineTokens == null) 67 | return state.baseCur + " " + state.overlayCur; 68 | else return state.overlayCur; 69 | }, 70 | 71 | indent: base.indent && function(state, textAfter, line) { 72 | return base.indent(state.base, textAfter, line); 73 | }, 74 | electricChars: base.electricChars, 75 | 76 | innerMode: function(state) { return {state: state.base, mode: base}; }, 77 | 78 | blankLine: function(state) { 79 | var baseToken, overlayToken; 80 | if (base.blankLine) baseToken = base.blankLine(state.base); 81 | if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay); 82 | 83 | return overlayToken == null ? 84 | baseToken : 85 | (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken); 86 | } 87 | }; 88 | }; 89 | 90 | }); 91 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/runmode/runmode.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.runMode = function(string, modespec, callback, options) { 15 | var mode = CodeMirror.getMode(CodeMirror.defaults, modespec); 16 | var ie = /MSIE \d/.test(navigator.userAgent); 17 | var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9); 18 | 19 | if (callback.appendChild) { 20 | var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize; 21 | var node = callback, col = 0; 22 | node.innerHTML = ""; 23 | callback = function(text, style) { 24 | if (text == "\n") { 25 | // Emitting LF or CRLF on IE8 or earlier results in an incorrect display. 26 | // Emitting a carriage return makes everything ok. 27 | node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text)); 28 | col = 0; 29 | return; 30 | } 31 | var content = ""; 32 | // replace tabs 33 | for (var pos = 0;;) { 34 | var idx = text.indexOf("\t", pos); 35 | if (idx == -1) { 36 | content += text.slice(pos); 37 | col += text.length - pos; 38 | break; 39 | } else { 40 | col += idx - pos; 41 | content += text.slice(pos, idx); 42 | var size = tabSize - col % tabSize; 43 | col += size; 44 | for (var i = 0; i < size; ++i) content += " "; 45 | pos = idx + 1; 46 | } 47 | } 48 | 49 | if (style) { 50 | var sp = node.appendChild(document.createElement("span")); 51 | sp.className = "cm-" + style.replace(/ +/g, " cm-"); 52 | sp.appendChild(document.createTextNode(content)); 53 | } else { 54 | node.appendChild(document.createTextNode(content)); 55 | } 56 | }; 57 | } 58 | 59 | var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode); 60 | for (var i = 0, e = lines.length; i < e; ++i) { 61 | if (i) callback("\n"); 62 | var stream = new CodeMirror.StringStream(lines[i]); 63 | if (!stream.string && mode.blankLine) mode.blankLine(state); 64 | while (!stream.eol()) { 65 | var style = mode.token(stream, state); 66 | callback(stream.current(), style, i, stream.start, state); 67 | stream.start = stream.pos; 68 | } 69 | } 70 | }; 71 | 72 | }); 73 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/scroll/scrollpastend.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | cm.off("change", onChange); 17 | cm.off("refresh", updateBottomMargin); 18 | cm.display.lineSpace.parentNode.style.paddingBottom = ""; 19 | cm.state.scrollPastEndPadding = null; 20 | } 21 | if (val) { 22 | cm.on("change", onChange); 23 | cm.on("refresh", updateBottomMargin); 24 | updateBottomMargin(cm); 25 | } 26 | }); 27 | 28 | function onChange(cm, change) { 29 | if (CodeMirror.changeEnd(change).line == cm.lastLine()) 30 | updateBottomMargin(cm); 31 | } 32 | 33 | function updateBottomMargin(cm) { 34 | var padding = ""; 35 | if (cm.lineCount() > 1) { 36 | var totalH = cm.display.scroller.clientHeight - 30, 37 | lastLineH = cm.getLineHandle(cm.lastLine()).height; 38 | padding = (totalH - lastLineH) + "px"; 39 | } 40 | if (cm.state.scrollPastEndPadding != padding) { 41 | cm.state.scrollPastEndPadding = padding; 42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding; 43 | cm.off("refresh", updateBottomMargin); 44 | cm.setSize(); 45 | cm.on("refresh", updateBottomMargin); 46 | } 47 | } 48 | }); 49 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/scroll/simplescrollbars.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div { 2 | position: absolute; 3 | background: #ccc; 4 | -moz-box-sizing: border-box; 5 | box-sizing: border-box; 6 | border: 1px solid #bbb; 7 | border-radius: 2px; 8 | } 9 | 10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical { 11 | position: absolute; 12 | z-index: 6; 13 | background: #eee; 14 | } 15 | 16 | .CodeMirror-simplescroll-horizontal { 17 | bottom: 0; left: 0; 18 | height: 8px; 19 | } 20 | .CodeMirror-simplescroll-horizontal div { 21 | bottom: 0; 22 | height: 100%; 23 | } 24 | 25 | .CodeMirror-simplescroll-vertical { 26 | right: 0; top: 0; 27 | width: 8px; 28 | } 29 | .CodeMirror-simplescroll-vertical div { 30 | right: 0; 31 | width: 100%; 32 | } 33 | 34 | 35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler { 36 | display: none; 37 | } 38 | 39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div { 40 | position: absolute; 41 | background: #bcd; 42 | border-radius: 3px; 43 | } 44 | 45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical { 46 | position: absolute; 47 | z-index: 6; 48 | } 49 | 50 | .CodeMirror-overlayscroll-horizontal { 51 | bottom: 0; left: 0; 52 | height: 6px; 53 | } 54 | .CodeMirror-overlayscroll-horizontal div { 55 | bottom: 0; 56 | height: 100%; 57 | } 58 | 59 | .CodeMirror-overlayscroll-vertical { 60 | right: 0; top: 0; 61 | width: 6px; 62 | } 63 | .CodeMirror-overlayscroll-vertical div { 64 | right: 0; 65 | width: 100%; 66 | } 67 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/search/jump-to-line.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // Defines jumpToLine command. Uses dialog.js if present. 5 | 6 | (function(mod) { 7 | if (typeof exports == "object" && typeof module == "object") // CommonJS 8 | mod(require("../../lib/codemirror"), require("../dialog/dialog")); 9 | else if (typeof define == "function" && define.amd) // AMD 10 | define(["../../lib/codemirror", "../dialog/dialog"], mod); 11 | else // Plain browser env 12 | mod(CodeMirror); 13 | })(function(CodeMirror) { 14 | "use strict"; 15 | 16 | function dialog(cm, text, shortText, deflt, f) { 17 | if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true}); 18 | else f(prompt(shortText, deflt)); 19 | } 20 | 21 | function getJumpDialog(cm) { 22 | return cm.phrase("Jump to line:") + ' ' + cm.phrase("(Use line:column or scroll% syntax)") + ''; 23 | } 24 | 25 | function interpretLine(cm, string) { 26 | var num = Number(string) 27 | if (/^[-+]/.test(string)) return cm.getCursor().line + num 28 | else return num - 1 29 | } 30 | 31 | CodeMirror.commands.jumpToLine = function(cm) { 32 | var cur = cm.getCursor(); 33 | dialog(cm, getJumpDialog(cm), cm.phrase("Jump to line:"), (cur.line + 1) + ":" + cur.ch, function(posStr) { 34 | if (!posStr) return; 35 | 36 | var match; 37 | if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) { 38 | cm.setCursor(interpretLine(cm, match[1]), Number(match[2])) 39 | } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) { 40 | var line = Math.round(cm.lineCount() * Number(match[1]) / 100); 41 | if (/^[-+]/.test(match[1])) line = cur.line + line + 1; 42 | cm.setCursor(line - 1, cur.ch); 43 | } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) { 44 | cm.setCursor(interpretLine(cm, match[1]), cur.ch); 45 | } 46 | }); 47 | }; 48 | 49 | CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine"; 50 | }); 51 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/search/matchesonscrollbar.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./searchcursor"), require("../scroll/annotatescrollbar")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./searchcursor", "../scroll/annotatescrollbar"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineExtension("showMatchesOnScrollbar", function(query, caseFold, options) { 15 | if (typeof options == "string") options = {className: options}; 16 | if (!options) options = {}; 17 | return new SearchAnnotation(this, query, caseFold, options); 18 | }); 19 | 20 | function SearchAnnotation(cm, query, caseFold, options) { 21 | this.cm = cm; 22 | this.options = options; 23 | var annotateOptions = {listenForChanges: false}; 24 | for (var prop in options) annotateOptions[prop] = options[prop]; 25 | if (!annotateOptions.className) annotateOptions.className = "CodeMirror-search-match"; 26 | this.annotation = cm.annotateScrollbar(annotateOptions); 27 | this.query = query; 28 | this.caseFold = caseFold; 29 | this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1}; 30 | this.matches = []; 31 | this.update = null; 32 | 33 | this.findMatches(); 34 | this.annotation.update(this.matches); 35 | 36 | var self = this; 37 | cm.on("change", this.changeHandler = function(_cm, change) { self.onChange(change); }); 38 | } 39 | 40 | var MAX_MATCHES = 1000; 41 | 42 | SearchAnnotation.prototype.findMatches = function() { 43 | if (!this.gap) return; 44 | for (var i = 0; i < this.matches.length; i++) { 45 | var match = this.matches[i]; 46 | if (match.from.line >= this.gap.to) break; 47 | if (match.to.line >= this.gap.from) this.matches.splice(i--, 1); 48 | } 49 | var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), {caseFold: this.caseFold, multiline: this.options.multiline}); 50 | var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES; 51 | while (cursor.findNext()) { 52 | var match = {from: cursor.from(), to: cursor.to()}; 53 | if (match.from.line >= this.gap.to) break; 54 | this.matches.splice(i++, 0, match); 55 | if (this.matches.length > maxMatches) break; 56 | } 57 | this.gap = null; 58 | }; 59 | 60 | function offsetLine(line, changeStart, sizeChange) { 61 | if (line <= changeStart) return line; 62 | return Math.max(changeStart, line + sizeChange); 63 | } 64 | 65 | SearchAnnotation.prototype.onChange = function(change) { 66 | var startLine = change.from.line; 67 | var endLine = CodeMirror.changeEnd(change).line; 68 | var sizeChange = endLine - change.to.line; 69 | if (this.gap) { 70 | this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line); 71 | this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line); 72 | } else { 73 | this.gap = {from: change.from.line, to: endLine + 1}; 74 | } 75 | 76 | if (sizeChange) for (var i = 0; i < this.matches.length; i++) { 77 | var match = this.matches[i]; 78 | var newFrom = offsetLine(match.from.line, startLine, sizeChange); 79 | if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch); 80 | var newTo = offsetLine(match.to.line, startLine, sizeChange); 81 | if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch); 82 | } 83 | clearTimeout(this.update); 84 | var self = this; 85 | this.update = setTimeout(function() { self.updateAfterChange(); }, 250); 86 | }; 87 | 88 | SearchAnnotation.prototype.updateAfterChange = function() { 89 | this.findMatches(); 90 | this.annotation.update(this.matches); 91 | }; 92 | 93 | SearchAnnotation.prototype.clear = function() { 94 | this.cm.off("change", this.changeHandler); 95 | this.annotation.clear(); 96 | }; 97 | }); 98 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/selection/active-line.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | var WRAP_CLASS = "CodeMirror-activeline"; 14 | var BACK_CLASS = "CodeMirror-activeline-background"; 15 | var GUTT_CLASS = "CodeMirror-activeline-gutter"; 16 | 17 | CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) { 18 | var prev = old == CodeMirror.Init ? false : old; 19 | if (val == prev) return 20 | if (prev) { 21 | cm.off("beforeSelectionChange", selectionChange); 22 | clearActiveLines(cm); 23 | delete cm.state.activeLines; 24 | } 25 | if (val) { 26 | cm.state.activeLines = []; 27 | updateActiveLines(cm, cm.listSelections()); 28 | cm.on("beforeSelectionChange", selectionChange); 29 | } 30 | }); 31 | 32 | function clearActiveLines(cm) { 33 | for (var i = 0; i < cm.state.activeLines.length; i++) { 34 | cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS); 35 | cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS); 36 | cm.removeLineClass(cm.state.activeLines[i], "gutter", GUTT_CLASS); 37 | } 38 | } 39 | 40 | function sameArray(a, b) { 41 | if (a.length != b.length) return false; 42 | for (var i = 0; i < a.length; i++) 43 | if (a[i] != b[i]) return false; 44 | return true; 45 | } 46 | 47 | function updateActiveLines(cm, ranges) { 48 | var active = []; 49 | for (var i = 0; i < ranges.length; i++) { 50 | var range = ranges[i]; 51 | var option = cm.getOption("styleActiveLine"); 52 | if (typeof option == "object" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty()) 53 | continue 54 | var line = cm.getLineHandleVisualStart(range.head.line); 55 | if (active[active.length - 1] != line) active.push(line); 56 | } 57 | if (sameArray(cm.state.activeLines, active)) return; 58 | cm.operation(function() { 59 | clearActiveLines(cm); 60 | for (var i = 0; i < active.length; i++) { 61 | cm.addLineClass(active[i], "wrap", WRAP_CLASS); 62 | cm.addLineClass(active[i], "background", BACK_CLASS); 63 | cm.addLineClass(active[i], "gutter", GUTT_CLASS); 64 | } 65 | cm.state.activeLines = active; 66 | }); 67 | } 68 | 69 | function selectionChange(cm, sel) { 70 | updateActiveLines(cm, sel.ranges); 71 | } 72 | }); 73 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/selection/selection-pointer.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("selectionPointer", false, function(cm, val) { 15 | var data = cm.state.selectionPointer; 16 | if (data) { 17 | CodeMirror.off(cm.getWrapperElement(), "mousemove", data.mousemove); 18 | CodeMirror.off(cm.getWrapperElement(), "mouseout", data.mouseout); 19 | CodeMirror.off(window, "scroll", data.windowScroll); 20 | cm.off("cursorActivity", reset); 21 | cm.off("scroll", reset); 22 | cm.state.selectionPointer = null; 23 | cm.display.lineDiv.style.cursor = ""; 24 | } 25 | if (val) { 26 | data = cm.state.selectionPointer = { 27 | value: typeof val == "string" ? val : "default", 28 | mousemove: function(event) { mousemove(cm, event); }, 29 | mouseout: function(event) { mouseout(cm, event); }, 30 | windowScroll: function() { reset(cm); }, 31 | rects: null, 32 | mouseX: null, mouseY: null, 33 | willUpdate: false 34 | }; 35 | CodeMirror.on(cm.getWrapperElement(), "mousemove", data.mousemove); 36 | CodeMirror.on(cm.getWrapperElement(), "mouseout", data.mouseout); 37 | CodeMirror.on(window, "scroll", data.windowScroll); 38 | cm.on("cursorActivity", reset); 39 | cm.on("scroll", reset); 40 | } 41 | }); 42 | 43 | function mousemove(cm, event) { 44 | var data = cm.state.selectionPointer; 45 | if (event.buttons == null ? event.which : event.buttons) { 46 | data.mouseX = data.mouseY = null; 47 | } else { 48 | data.mouseX = event.clientX; 49 | data.mouseY = event.clientY; 50 | } 51 | scheduleUpdate(cm); 52 | } 53 | 54 | function mouseout(cm, event) { 55 | if (!cm.getWrapperElement().contains(event.relatedTarget)) { 56 | var data = cm.state.selectionPointer; 57 | data.mouseX = data.mouseY = null; 58 | scheduleUpdate(cm); 59 | } 60 | } 61 | 62 | function reset(cm) { 63 | cm.state.selectionPointer.rects = null; 64 | scheduleUpdate(cm); 65 | } 66 | 67 | function scheduleUpdate(cm) { 68 | if (!cm.state.selectionPointer.willUpdate) { 69 | cm.state.selectionPointer.willUpdate = true; 70 | setTimeout(function() { 71 | update(cm); 72 | cm.state.selectionPointer.willUpdate = false; 73 | }, 50); 74 | } 75 | } 76 | 77 | function update(cm) { 78 | var data = cm.state.selectionPointer; 79 | if (!data) return; 80 | if (data.rects == null && data.mouseX != null) { 81 | data.rects = []; 82 | if (cm.somethingSelected()) { 83 | for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling) 84 | data.rects.push(sel.getBoundingClientRect()); 85 | } 86 | } 87 | var inside = false; 88 | if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) { 89 | var rect = data.rects[i]; 90 | if (rect.left <= data.mouseX && rect.right >= data.mouseX && 91 | rect.top <= data.mouseY && rect.bottom >= data.mouseY) 92 | inside = true; 93 | } 94 | var cursor = inside ? data.value : ""; 95 | if (cm.display.lineDiv.style.cursor != cursor) 96 | cm.display.lineDiv.style.cursor = cursor; 97 | } 98 | }); 99 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/tern/tern.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-Tern-completion { 2 | padding-left: 22px; 3 | position: relative; 4 | line-height: 1.5; 5 | } 6 | .CodeMirror-Tern-completion:before { 7 | position: absolute; 8 | left: 2px; 9 | bottom: 2px; 10 | border-radius: 50%; 11 | font-size: 12px; 12 | font-weight: bold; 13 | height: 15px; 14 | width: 15px; 15 | line-height: 16px; 16 | text-align: center; 17 | color: white; 18 | -moz-box-sizing: border-box; 19 | box-sizing: border-box; 20 | } 21 | .CodeMirror-Tern-completion-unknown:before { 22 | content: "?"; 23 | background: #4bb; 24 | } 25 | .CodeMirror-Tern-completion-object:before { 26 | content: "O"; 27 | background: #77c; 28 | } 29 | .CodeMirror-Tern-completion-fn:before { 30 | content: "F"; 31 | background: #7c7; 32 | } 33 | .CodeMirror-Tern-completion-array:before { 34 | content: "A"; 35 | background: #c66; 36 | } 37 | .CodeMirror-Tern-completion-number:before { 38 | content: "1"; 39 | background: #999; 40 | } 41 | .CodeMirror-Tern-completion-string:before { 42 | content: "S"; 43 | background: #999; 44 | } 45 | .CodeMirror-Tern-completion-bool:before { 46 | content: "B"; 47 | background: #999; 48 | } 49 | 50 | .CodeMirror-Tern-completion-guess { 51 | color: #999; 52 | } 53 | 54 | .CodeMirror-Tern-tooltip { 55 | border: 1px solid silver; 56 | border-radius: 3px; 57 | color: #444; 58 | padding: 2px 5px; 59 | font-size: 90%; 60 | font-family: monospace; 61 | background-color: white; 62 | white-space: pre-wrap; 63 | 64 | max-width: 40em; 65 | position: absolute; 66 | z-index: 10; 67 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 68 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 69 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 70 | 71 | transition: opacity 1s; 72 | -moz-transition: opacity 1s; 73 | -webkit-transition: opacity 1s; 74 | -o-transition: opacity 1s; 75 | -ms-transition: opacity 1s; 76 | } 77 | 78 | .CodeMirror-Tern-hint-doc { 79 | max-width: 25em; 80 | margin-top: -3px; 81 | } 82 | 83 | .CodeMirror-Tern-fname { color: black; } 84 | .CodeMirror-Tern-farg { color: #70a; } 85 | .CodeMirror-Tern-farg-current { text-decoration: underline; } 86 | .CodeMirror-Tern-type { color: #07c; } 87 | .CodeMirror-Tern-fhint-guess { opacity: .7; } 88 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | this.console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta { color: #FF1717; } 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom { color: #219; } 4 | .cm-s-eclipse span.cm-number { color: #164; } 5 | .cm-s-eclipse span.cm-def { color: #00f; } 6 | .cm-s-eclipse span.cm-variable { color: black; } 7 | .cm-s-eclipse span.cm-variable-2 { color: #0000C0; } 8 | .cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; } 9 | .cm-s-eclipse span.cm-property { color: black; } 10 | .cm-s-eclipse span.cm-operator { color: black; } 11 | .cm-s-eclipse span.cm-comment { color: #3F7F5F; } 12 | .cm-s-eclipse span.cm-string { color: #2A00FF; } 13 | .cm-s-eclipse span.cm-string-2 { color: #f50; } 14 | .cm-s-eclipse span.cm-qualifier { color: #555; } 15 | .cm-s-eclipse span.cm-builtin { color: #30a; } 16 | .cm-s-eclipse span.cm-bracket { color: #cc7; } 17 | .cm-s-eclipse span.cm-tag { color: #170; } 18 | .cm-s-eclipse span.cm-attribute { color: #00c; } 19 | .cm-s-eclipse span.cm-link { color: #219; } 20 | .cm-s-eclipse span.cm-error { color: #f00; } 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; } 23 | .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; } -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/htmlembedded/htmlembedded.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), 7 | require("../../addon/mode/multiplex")); 8 | else if (typeof define == "function" && define.amd) // AMD 9 | define(["../../lib/codemirror", "../htmlmixed/htmlmixed", 10 | "../../addon/mode/multiplex"], mod); 11 | else // Plain browser env 12 | mod(CodeMirror); 13 | })(function(CodeMirror) { 14 | "use strict"; 15 | 16 | CodeMirror.defineMode("htmlembedded", function(config, parserConfig) { 17 | var closeComment = parserConfig.closeComment || "--%>" 18 | return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), { 19 | open: parserConfig.openComment || "<%--", 20 | close: closeComment, 21 | delimStyle: "comment", 22 | mode: {token: function(stream) { 23 | stream.skipTo(closeComment) || stream.skipToEnd() 24 | return "comment" 25 | }} 26 | }, { 27 | open: parserConfig.open || parserConfig.scriptStartRegex || "<%", 28 | close: parserConfig.close || parserConfig.scriptEndRegex || "%>", 29 | mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec) 30 | }); 31 | }, "htmlmixed"); 32 | 33 | CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"}); 34 | CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"}); 35 | CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"}); 36 | CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"}); 37 | }); 38 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/htmlembedded/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Html Embedded Scripts mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 29 | 30 |
31 |

Html Embedded Scripts mode

32 |
44 | 45 | 53 | 54 |

Mode for html embedded scripts like JSP and ASP.NET. Depends on multiplex and HtmlMixed which in turn depends on 55 | JavaScript, CSS and XML.
Other dependencies include those of the scripting language chosen.

56 | 57 |

MIME types defined: application/x-aspx (ASP.NET), 58 | application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages) 59 | and application/x-erb

60 |
61 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/htmlmixed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTML mixed mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 29 | 30 |
31 |

HTML mixed mode

32 |
56 | 71 | 72 |

The HTML mixed mode depends on the XML, JavaScript, and CSS modes.

73 | 74 |

It takes an optional mode configuration 75 | option, tags, which can be used to add custom 76 | behavior for specific tags. When given, it should be an object 77 | mapping tag names (for example script) to arrays or 78 | three-element arrays. Those inner arrays indicate [attributeName, 79 | valueRegexp, modeSpec] 80 | specifications. For example, you could use ["type", /^foo$/, 81 | "foo"] to map the attribute type="foo" to 82 | the foo mode. When the first two fields are null 83 | ([null, null, "mode"]), the given mode is used for 84 | any such tag that doesn't match any of the previously given 85 | attributes. For example:

86 | 87 |
var myModeSpec = {
 88 |   name: "htmlmixed",
 89 |   tags: {
 90 |     style: [["type", /^text\/(x-)?scss$/, "text/x-scss"],
 91 |             [null, null, "css"]],
 92 |     custom: [[null, null, "customMode"]]
 93 |   }
 94 | }
95 | 96 |

MIME types defined: text/html 97 | (redefined, only takes effect if you load this parser after the 98 | XML parser).

99 | 100 |
101 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/http/http.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("http", function() { 15 | function failFirstLine(stream, state) { 16 | stream.skipToEnd(); 17 | state.cur = header; 18 | return "error"; 19 | } 20 | 21 | function start(stream, state) { 22 | if (stream.match(/^HTTP\/\d\.\d/)) { 23 | state.cur = responseStatusCode; 24 | return "keyword"; 25 | } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) { 26 | state.cur = requestPath; 27 | return "keyword"; 28 | } else { 29 | return failFirstLine(stream, state); 30 | } 31 | } 32 | 33 | function responseStatusCode(stream, state) { 34 | var code = stream.match(/^\d+/); 35 | if (!code) return failFirstLine(stream, state); 36 | 37 | state.cur = responseStatusText; 38 | var status = Number(code[0]); 39 | if (status >= 100 && status < 200) { 40 | return "positive informational"; 41 | } else if (status >= 200 && status < 300) { 42 | return "positive success"; 43 | } else if (status >= 300 && status < 400) { 44 | return "positive redirect"; 45 | } else if (status >= 400 && status < 500) { 46 | return "negative client-error"; 47 | } else if (status >= 500 && status < 600) { 48 | return "negative server-error"; 49 | } else { 50 | return "error"; 51 | } 52 | } 53 | 54 | function responseStatusText(stream, state) { 55 | stream.skipToEnd(); 56 | state.cur = header; 57 | return null; 58 | } 59 | 60 | function requestPath(stream, state) { 61 | stream.eatWhile(/\S/); 62 | state.cur = requestProtocol; 63 | return "string-2"; 64 | } 65 | 66 | function requestProtocol(stream, state) { 67 | if (stream.match(/^HTTP\/\d\.\d$/)) { 68 | state.cur = header; 69 | return "keyword"; 70 | } else { 71 | return failFirstLine(stream, state); 72 | } 73 | } 74 | 75 | function header(stream) { 76 | if (stream.sol() && !stream.eat(/[ \t]/)) { 77 | if (stream.match(/^.*?:/)) { 78 | return "atom"; 79 | } else { 80 | stream.skipToEnd(); 81 | return "error"; 82 | } 83 | } else { 84 | stream.skipToEnd(); 85 | return "string"; 86 | } 87 | } 88 | 89 | function body(stream) { 90 | stream.skipToEnd(); 91 | return null; 92 | } 93 | 94 | return { 95 | token: function(stream, state) { 96 | var cur = state.cur; 97 | if (cur != header && cur != body && stream.eatSpace()) return null; 98 | return cur(stream, state); 99 | }, 100 | 101 | blankLine: function(state) { 102 | state.cur = body; 103 | }, 104 | 105 | startState: function() { 106 | return {cur: start}; 107 | } 108 | }; 109 | }); 110 | 111 | CodeMirror.defineMIME("message/http", "http"); 112 | 113 | }); 114 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTTP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

HTTP mode

27 | 28 | 29 |
39 | 40 | 43 | 44 |

MIME types defined: message/http.

45 |
46 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/javascript/json-ld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: JSON-LD mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 27 | 28 |
29 |

JSON-LD mode

30 | 31 | 32 |
61 | 62 | 70 | 71 |

This is a specialization of the JavaScript mode.

72 |
73 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/javascript/typescript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: TypeScript mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

TypeScript mode

28 | 29 | 30 |
52 | 53 | 60 | 61 |

This is a specialization of the JavaScript mode.

62 |
63 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/jsx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: JSX mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

JSX mode

29 | 30 |
76 | 77 | 83 | 84 |

JSX Mode for React's 85 | JavaScript syntax extension.

86 | 87 |

MIME types defined: text/jsx, text/typescript-jsx.

88 | 89 |
90 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/python/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 4}, 6 | {name: "python", 7 | version: 3, 8 | singleLineStringErrors: false}); 9 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 10 | 11 | // Error, because "foobarhello" is neither a known type or property, but 12 | // property was expected (after "and"), and it should be in parentheses. 13 | MT("decoratorStartOfLine", 14 | "[meta @dec]", 15 | "[keyword def] [def function]():", 16 | " [keyword pass]"); 17 | 18 | MT("decoratorIndented", 19 | "[keyword class] [def Foo]:", 20 | " [meta @dec]", 21 | " [keyword def] [def function]():", 22 | " [keyword pass]"); 23 | 24 | MT("matmulWithSpace:", "[variable a] [operator @] [variable b]"); 25 | MT("matmulWithoutSpace:", "[variable a][operator @][variable b]"); 26 | MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]"); 27 | var before_equal_sign = ["+", "-", "*", "/", "=", "!", ">", "<"]; 28 | for (var i = 0; i < before_equal_sign.length; ++i) { 29 | var c = before_equal_sign[i] 30 | MT("before_equal_sign_" + c, "[variable a] [operator " + c + "=] [variable b]"); 31 | } 32 | 33 | MT("fValidStringPrefix", "[string f'this is a]{[variable formatted]}[string string']"); 34 | MT("fValidExpressioninFString", "[string f'expression ]{[number 100][operator *][number 5]}[string string']"); 35 | MT("fInvalidFString", "[error f'this is wrong}]"); 36 | MT("fNestedFString", "[string f'expression ]{[number 100] [operator +] [string f'inner]{[number 5]}[string ']}[string string']"); 37 | MT("uValidStringPrefix", "[string u'this is an unicode string']"); 38 | 39 | MT("nestedString", "[string f']{[variable b][[ [string \"c\"] ]]}[string f'] [comment # oops]") 40 | 41 | MT("bracesInFString", "[string f']{[variable x] [operator +] {}}[string !']") 42 | 43 | MT("nestedFString", "[string f']{[variable b][[ [string f\"c\"] ]]}[string f'] [comment # oops]") 44 | })(); 45 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/xml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: XML mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

XML mode

27 |
39 | 45 |

The XML mode supports these configuration parameters:

46 |
47 |
htmlMode (boolean)
48 |
This switches the mode to parse HTML instead of XML. This 49 | means attributes do not have to be quoted, and some elements 50 | (such as br) do not require a closing tag.
51 |
matchClosing (boolean)
52 |
Controls whether the mode checks that close tags match the 53 | corresponding opening tag, and highlights mismatches as errors. 54 | Defaults to true.
55 |
alignCDATA (boolean)
56 |
Setting this to true will force the opening tag of CDATA 57 | blocks to not be indented.
58 |
59 | 60 |

MIME types defined: application/xml, text/html.

61 |
62 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/lib/mode/xml/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: https://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml"; 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); } 7 | 8 | MT("matching", 9 | "[tag&bracket <][tag top][tag&bracket >]", 10 | " text", 11 | " [tag&bracket <][tag inner][tag&bracket />]", 12 | "[tag&bracket ]"); 13 | 14 | MT("nonmatching", 15 | "[tag&bracket <][tag top][tag&bracket >]", 16 | " [tag&bracket <][tag inner][tag&bracket />]", 17 | " [tag&bracket ]"); 18 | 19 | MT("doctype", 20 | "[meta ]", 21 | "[tag&bracket <][tag top][tag&bracket />]"); 22 | 23 | MT("cdata", 24 | "[tag&bracket <][tag top][tag&bracket >]", 25 | " [atom ]", 27 | "[tag&bracket ]"); 28 | 29 | // HTML tests 30 | mode = CodeMirror.getMode({indentUnit: 2}, "text/html"); 31 | 32 | MT("selfclose", 33 | "[tag&bracket <][tag html][tag&bracket >]", 34 | " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]", 35 | "[tag&bracket ]"); 36 | 37 | MT("list", 38 | "[tag&bracket <][tag ol][tag&bracket >]", 39 | " [tag&bracket <][tag li][tag&bracket >]one", 40 | " [tag&bracket <][tag li][tag&bracket >]two", 41 | "[tag&bracket ]"); 42 | 43 | MT("valueless", 44 | "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]"); 45 | 46 | MT("pThenArticle", 47 | "[tag&bracket <][tag p][tag&bracket >]", 48 | " foo", 49 | "[tag&bracket <][tag article][tag&bracket >]bar"); 50 | 51 | })(); 52 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | node_modules 3 | .c9revisions 4 | coverage 5 | projs.js 6 | .DS_STORE 7 | dist 8 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 6, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "latedef": "nofunc", 6 | "undef": true, 7 | "unused": true, 8 | "trailing": true, 9 | "indent": 2, 10 | "browser": true, 11 | "node": true 12 | } -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.npmignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .c9revisions 3 | coverage 4 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "10" 5 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/AUTHORS: -------------------------------------------------------------------------------- 1 | Mike Adair 2 | Richard Greenwood 3 | Calvin Metcalf 4 | Richard Marsden (http://www.winwaed.com) 5 | #credit for 6 | #src/projCode/gnom.js 7 | #src/projCode/cea.js 8 | T. Mittan 9 | #credit for 10 | #src/projCode/eqdc.js 11 | #src/projCode/equi.js 12 | #src/projCode/merc.js 13 | #src/projCode/mill.js 14 | #src/projCode/omerc.js 15 | #src/projCode/ortho.js 16 | #src/projCode/poly.js 17 | #src/projCode/poly.js 18 | D. Steinwand 19 | #credit for 20 | #src/projCode/merc.js 21 | #src/projCode/laea.js 22 | #src/projCode/moll.js 23 | S. Nelson 24 | #credit for 25 | #src/projCode/moll.js -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/Gruntfile.js: -------------------------------------------------------------------------------- 1 | var json = require('rollup-plugin-json'); 2 | var nodeResolve = require('rollup-plugin-node-resolve'); 3 | var replace = require('rollup-plugin-replace'); 4 | var pkg = require('./package.json'); 5 | 6 | var projs = [ 7 | 'tmerc', 8 | 'etmerc', 9 | 'utm', 10 | 'sterea', 11 | 'stere', 12 | 'somerc', 13 | 'omerc', 14 | 'lcc', 15 | 'krovak', 16 | 'cass', 17 | 'laea', 18 | 'aea', 19 | 'gnom', 20 | 'cea', 21 | 'eqc', 22 | 'poly', 23 | 'nzmg', 24 | 'mill', 25 | 'sinu', 26 | 'moll', 27 | 'eqdc', 28 | 'vandg', 29 | 'aeqd', 30 | 'ortho', 31 | 'qsc', 32 | 'robin', 33 | 'geocent' 34 | ]; 35 | module.exports = function (grunt) { 36 | grunt.initConfig({ 37 | pkg: grunt.file.readJSON('package.json'), 38 | connect: { 39 | server: { 40 | options: { 41 | port: process.env.PORT || 8080, 42 | base: '.' 43 | } 44 | } 45 | }, 46 | mocha_phantomjs: { 47 | all: { 48 | options: { 49 | reporter: "dot", 50 | urls: [ //my ide requries process.env.IP and PORT 51 | "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/amd.html", 52 | "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/opt.html" 53 | ] 54 | } 55 | } 56 | }, 57 | jshint: { 58 | options: { 59 | jshintrc: "./.jshintrc" 60 | }, 61 | all: ['./lib/*.js', './lib/*/*.js'] 62 | }, 63 | rollup: { 64 | options: { 65 | format: "umd", 66 | moduleName: "proj4", 67 | plugins: [ 68 | replace({ 69 | __VERSION__: pkg.version 70 | }), 71 | json(), 72 | nodeResolve() 73 | ] 74 | }, 75 | files: { 76 | dest: './dist/proj4-src.js', 77 | src: './lib/index.js', 78 | }, 79 | }, 80 | uglify: { 81 | options: { 82 | report: 'gzip', 83 | mangle:{ 84 | reserved: ['proj4','Projection','Point'] 85 | }, 86 | }, 87 | all: { 88 | src: 'dist/proj4-src.js', 89 | dest: 'dist/proj4.js' 90 | } 91 | } 92 | }); 93 | grunt.loadNpmTasks('grunt-rollup'); 94 | grunt.loadNpmTasks('grunt-contrib-uglify'); 95 | grunt.loadNpmTasks('grunt-contrib-jshint'); 96 | grunt.loadNpmTasks('grunt-contrib-connect'); 97 | grunt.loadNpmTasks('grunt-mocha-phantomjs'); 98 | grunt.registerTask('custom',function(){ 99 | grunt.task.run('rollup', 'uglify'); 100 | var projections = this.args; 101 | if(projections[0]==='default'){ 102 | grunt.file.write('./projs.js','export default function(){}'); 103 | return; 104 | } 105 | if(projections[0]==='all'){ 106 | projections = projs; 107 | } 108 | grunt.file.write('./projs.js',[ 109 | projections.map(function(proj) { 110 | return "import " + proj + " from './lib/projections/" + proj + "';"; 111 | }).join("\n"), 112 | "export default function(proj4){", 113 | projections.map(function(proj) { 114 | return " proj4.Proj.projections.add(" + proj + ");" 115 | }).join("\n"), 116 | "}" 117 | ].join("\n")); 118 | }); 119 | grunt.registerTask('build',function(){ 120 | var args = this.args.length?this.args[0].split(','):['default']; 121 | grunt.task.run('jshint', 'custom:'+args.join(':')); 122 | }); 123 | grunt.registerTask('default', ['build:all', 'connect','mocha_phantomjs']); 124 | }; 125 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/LICENSE.md: -------------------------------------------------------------------------------- 1 | ## Proj4js -- Javascript reprojection library. 2 | 3 | Authors: 4 | - Mike Adair madairATdmsolutions.ca 5 | - Richard Greenwood richATgreenwoodmap.com 6 | - Didier Richard didier.richardATign.fr 7 | - Stephen Irons stephen.ironsATclear.net.nz 8 | - Olivier Terral oterralATgmail.com 9 | - Calvin Metcalf cmetcalfATappgeo.com 10 | 11 | Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a 14 | copy of this software and associated documentation files (the "Software"), 15 | to deal in the Software without restriction, including without limitation 16 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 17 | and/or sell copies of the Software, and to permit persons to whom the 18 | Software is furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included 21 | in all copies or substantial portions of the Software. 22 | 23 | _THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 24 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 29 | DEALINGS IN THE SOFTWARE._ 30 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/PUBLISHING.md: -------------------------------------------------------------------------------- 1 | Publishing 2 | === 3 | 4 | Use `tin` to update the version number in the `package.json`, `component.json` & `bower.json`. 5 | 6 | tin -v x.y.z 7 | 8 | Then run the publish script 9 | 10 | ./publish.sh 11 | 12 | afterwards don't forget to update the versions to be a prerelease of the next version, so if you just published 1.1.1 then: 13 | 14 | tin -v 1.1.2-alpha 15 | git add package.json component.json bower.json 16 | git commit -m 'update version to 1.1.2-alpha' 17 | git push origin master -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/REFERENCES.md: -------------------------------------------------------------------------------- 1 | 1. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological Survey 2 | Professional Paper 1395 (Supersedes USGS Bulletin 1532), 3 | United States Government Printing Office, Washington D.C., 1987. 4 | Accessed: 2016-05-09. https://pubs.er.usgs.gov/publication/pp1395 5 | 2. Snyder, John P. and Voxland, Philip M., "An Album of Map Projections", 6 | U.S. Geological Survey Professional Paper 1453 , 7 | United State Government Printing Office, Washington D.C., 1989. 8 | Accessed: 2016-05-09. https://pubs.er.usgs.gov/publication/pp1453 9 | 3. "Cartographic Projection Procedures for the UNIX Environment- 10 | A User's Manual" by Gerald I. Evenden, 11 | USGS Open File Report 90-284 and Release 4 Interim Reports (2003). 12 | Accessed: 2016-06-09. http://www2.bren.ucsb.edu/~frew/ESM264/private/proj_manual.pdf 13 | 4. Snyder, John P., "Flattening the Earth - 14 | Two Thousand Years of Map Projections", Univ. Chicago Press, 1993 15 | 5. Wolfram Mathworld "Gnomonic Projection" 16 | http://mathworld.wolfram.com/GnomonicProjection.html 17 | Accessed: 12th November 2009 18 | 6. "New Equal-Area Map Projections for Noncircular Regions", John P. Snyder, 19 | The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355. 20 | 7. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological 21 | Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United 22 | State Government Printing Office, Washington D.C., 1987. 23 | Access date 2016-05-09. https://pubs.er.usgs.gov/publication/pp1395 24 | 8. "Software Documentation for GCTP General Cartographic Transformation 25 | Package", U.S. Geological Survey National Mapping Division, May 1982. 26 | 9. Department of Land and Survey Technical Circular 1973/32 27 | http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf 28 | 10. OSG Technical Report 4.1 29 | http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf 30 | 11. Formules et constantes pour le Calcul pour la 31 | projection cylindrique conforme à axe oblique et pour la transformation entre 32 | des systèmes de référence. 33 | http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf 34 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "proj4", 3 | "version": "2.6.0", 4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", 5 | "homepage": "https://github.com/proj4js/proj4js", 6 | "main": "dist/proj4.js", 7 | "keywords": [ 8 | "gis", 9 | "projections", 10 | "geospatial", 11 | "transform", 12 | "datum" 13 | ], 14 | "license": "MIT", 15 | "ignore": [ 16 | "**/.*", 17 | "node_modules", 18 | "bower_components", 19 | "test", 20 | "tests", 21 | "almond", 22 | "src" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/changelog.md: -------------------------------------------------------------------------------- 1 | Change log 2 | === 3 | - 2.2.1: Documentation fixes and added proj4.defs('name') as an alias for proj4.defs['name']; 4 | 5 | - 2.1.4: dist folder is added back in after accidentally omitting it in 2.1.1 6 | 7 | - 2.1.3: skipped as issues with the dist folder are ironed out. 8 | 9 | - 2.1.2: added sensible defaults for false eastings/northings 10 | 11 | - 2.1.1: tweaks to how we publish it, fixes related to errors with the OSGB36 and Reseau National Belge 1972 datums, we took the first steps towards depreciating the proj4.Point class. 12 | 13 | - 2.1.0: targeted builds for projections are now supported, and internally projection creation is more modular. 14 | 15 | - 2.0.3: mgrs is broken out into it's own module loaded via npm. 16 | 17 | - 2.0.2: module common is broken up into a collection of smaller modules. 18 | 19 | - 2.0.1: fix typo in eqc projection. 20 | 21 | - 2.0.0: we start the change log. -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "proj4", 3 | "version": "2.6.0", 4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", 5 | "repo": "proj4js/proj4js", 6 | "keywords": [ 7 | "projections", 8 | "proj4", 9 | "transform", 10 | "crs" 11 | ], 12 | "license": "MIT", 13 | "main": "dist/proj4.js", 14 | "scripts": [ 15 | "dist/proj4.js" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "proj4", 3 | "version": "2.6.0", 4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.", 5 | "main": "dist/proj4-src.js", 6 | "module": "lib/index.js", 7 | "directories": { 8 | "test": "test", 9 | "doc": "docs" 10 | }, 11 | "scripts": { 12 | "prepare": "grunt", 13 | "build": "grunt", 14 | "build:tmerc": "grunt build:tmerc", 15 | "test": "npm run build && istanbul test _mocha test/test.js" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/proj4js/proj4js.git" 20 | }, 21 | "author": "", 22 | "license": "MIT", 23 | "devDependencies": { 24 | "chai": "~4.1.2", 25 | "curl-amd": "github:cujojs/curl", 26 | "grunt": "^1.0.1", 27 | "grunt-cli": "~1.2.0", 28 | "grunt-contrib-connect": "~1.0.2", 29 | "grunt-contrib-jshint": "~1.1.0", 30 | "grunt-contrib-uglify": "~3.1.0", 31 | "grunt-mocha-phantomjs": "~4.0.0", 32 | "grunt-rollup": "^6.0.0", 33 | "istanbul": "~0.4.5", 34 | "mocha": "~4.0.0", 35 | "rollup": "^0.50.0", 36 | "rollup-plugin-json": "^2.3.0", 37 | "rollup-plugin-node-resolve": "^3.0.0", 38 | "rollup-plugin-replace": "^2.0.0", 39 | "tin": "~0.5.0" 40 | }, 41 | "dependencies": { 42 | "mgrs": "1.0.0", 43 | "wkt-parser": "^1.2.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/publish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # get current version 4 | VERSION=$(npm ls --json=true proj4js | grep version | awk '{ print $2}'| sed -e 's/^"//' -e 's/"$//') 5 | 6 | # Build 7 | git checkout -b build 8 | node_modules/.bin/grunt 9 | git add dist -f 10 | git commit -m "build $VERSION" 11 | 12 | # Tag and push 13 | git tag $VERSION 14 | git push --tags git@github.com:proj4js/proj4js.git $VERSION 15 | 16 | # Publish 17 | npm publish 18 | 19 | # Cleanup 20 | git checkout master 21 | git branch -D build 22 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/amd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mocha Tests 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/opt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mocha Tests 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 24 | 25 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/package.json.js: -------------------------------------------------------------------------------- 1 | define({version : "curl is dumb"}); -------------------------------------------------------------------------------- /Stinuum Web/src/js/mf-cesium/runServer.py: -------------------------------------------------------------------------------- 1 | 2 | import requests 3 | class MyApp(): 4 | def __init__(self): 5 | self.URL = "https://dpsdev.aaic.hpcc.jp/pntml/csrf" 6 | self.URL2 = "https://dpsdev.aaic.hpcc.jp/pntml/login" 7 | self.URL3 = "https://dpsdev.aaic.hpcc.jp/mf/collections" 8 | self.token = "" 9 | self.cookies = "" 10 | def getCsrt(self): 11 | rg = requests.request('GET', self.URL) 12 | self.token = rg.text 13 | self.cookies = rg.cookies 14 | print(self.token) 15 | # return self.rg_token 16 | # print(rg.headers) 17 | # print(rg_token) 18 | # print(rg.) 19 | 20 | def Login(self): 21 | 22 | rp_headers = {'Content-Type': 'application/x-www-form-urlencoded'} 23 | rp_headers['X-XSRF-TOKEN'] = self.token 24 | rp_headers['Accept'] = '*/*' 25 | # print(rp_headers) 26 | login_data = {'name': 'gsrt4crt', 'password': 'Y]3>F2$//j|4>o2NTT|UB*0u2{Cf7R|HD=8'} 27 | jar = requests.cookies.RequestsCookieJar() 28 | jar.set('XSRF-TOKEN', self.token) 29 | # print(jar) 30 | rp = requests.request('POST', self.URL2, data=login_data, headers=rp_headers, cookies=jar) 31 | self.cookies = rp.cookies.get_dict() 32 | 33 | print(rp.headers) 34 | def getData(self): 35 | rc_cookies = requests.cookies.RequestsCookieJar() 36 | rc_cookies.set('SESSION', self.cookies['SESSION']) 37 | rc_cookies.set('XSRF-TOKEN', self.cookies['XSRF-TOKEN']) 38 | # rc_cookies = {'Cookie': "SESSION="+a['SESSION']+";"+" XSRF-TOKEN="+a['XSRF-TOKEN']} 39 | rc_headers = {'X-XSRF-TOKEN': self.cookies['XSRF-TOKEN']} 40 | rc_headers['Content-Type'] = 'application/json' 41 | rc_headers['Accept'] = 'application/json' 42 | # print(rc_cookies) 43 | # print(rc_headers) 44 | rc = requests.request('GET', self.URL3, headers=rc_headers, cookies=rc_cookies) 45 | 46 | print(rc.json()) 47 | 48 | if __name__ == '__main__': 49 | a = MyApp() 50 | a.getCsrt() 51 | a.Login() 52 | a.getData() -------------------------------------------------------------------------------- /Stinuum Web/src/js/movie.js: -------------------------------------------------------------------------------- 1 | var viewer = new Cesium.Viewer('cesiumContainer', {showRenderLoopErrors : false}); 2 | 3 | var videoElement = document.getElementById('trailer'); 4 | 5 | var sphere = viewer.entities.add({ 6 | position : Cesium.Cartesian3.fromDegrees(-79, 39, 1000), 7 | ellipsoid : { 8 | radii : new Cesium.Cartesian3(1000, 1000, 1000), 9 | material : videoElement 10 | } 11 | }); 12 | 13 | viewer.trackedEntity = sphere; 14 | 15 | var synchronizer; 16 | Sandcastle.addToggleButton('Clock synchronization', false, function(checked) { 17 | // By default, the video plays normally and simply shows 18 | // whatever frame the video is currently on. 19 | // We can synchronize the video with the scene clock 20 | // using a VideoSynchronizer. 21 | 22 | if (Cesium.defined(synchronizer)) { 23 | synchronizer = synchronizer.destroy(); 24 | videoElement.playbackRate = 1.0; 25 | return; 26 | } 27 | 28 | synchronizer = new Cesium.VideoSynchronizer({ 29 | clock : viewer.clock, 30 | element : videoElement 31 | }); 32 | }); 33 | 34 | // Since it's just an image material, we can modify the number 35 | // of times the video repeats in each direction.. 36 | var isRepeating = true; 37 | Sandcastle.addToggleButton('Image Repeat', isRepeating, function(checked) { 38 | isRepeating = checked; 39 | }); 40 | 41 | sphere.ellipsoid.material.repeat = new Cesium.CallbackProperty(function(time, result) { 42 | if (!Cesium.defined(result)) { 43 | result = new Cesium.Cartesian2(); 44 | } 45 | if (isRepeating) { 46 | result.x = 8; 47 | result.y = 8; 48 | } else { 49 | result.x = 1; 50 | result.y = 1; 51 | } 52 | return result; 53 | }, false); 54 | 55 | // Like Image, the video element doesn't have to be part of the DOM or 56 | // otherwise on the screen to be used as a texture. 57 | Sandcastle.addToggleButton('Video Overlay', false, function(checked) { 58 | if (checked){ 59 | videoElement.style.display = ''; 60 | } else { 61 | videoElement.style.display = 'none'; 62 | } 63 | }); 64 | 65 | // Older browsers do not support WebGL video textures, 66 | // put up a friendly error message indicating such. 67 | viewer.scene.renderError.addEventListener(function() { 68 | if(!videoElement.paused){ 69 | videoElement.pause(); 70 | } 71 | viewer.cesiumWidget.showErrorPanel('This browser does not support cross-origin WebGL video textures.', '', ''); 72 | }); 73 | 74 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/.Rhistory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/js/temp/.Rhistory -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/makeJS.bat: -------------------------------------------------------------------------------- 1 | copy /b model.js +direction_radar.js +geometry_viewer.js +mf_collection.js +movement_draw.js +occurrence_map.js +path_drawing.js +property_graph.js +query_processor.js +super.js +temporal_map.js +utility.js ..\stinuum.js 2 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/model.js: -------------------------------------------------------------------------------- 1 | 2 | var LOG = console.log; 3 | var ERR = Stinuum.Exception; 4 | var debug_mode = true; 5 | var debug_var = undefined; 6 | 7 | function Stinuum(viewer){ 8 | this.cesiumViewer = viewer; 9 | this.mode = 'STATICMAP'; //'STATICMAP' : 2d, 'SPACETIME' : perspective view, and 'ANIMATEDMAP' : 3d globe 10 | this.maxHeight = 30000000; 11 | this.s_query_on = false; 12 | 13 | this.geometryViewer = new Stinuum.GeometryViewer(this); 14 | this.mfCollection = new Stinuum.MFCollection(this); 15 | this.directionRadar = new Stinuum.DirectionRadar(this); 16 | this.temporalMap = new Stinuum.TemporalMap(this); 17 | this.occurrenceMap = new Stinuum.OccurrenceMap(this); 18 | this.propertyGraph = new Stinuum.PropertyGraph(this); 19 | this.queryProcessor = new Stinuum.QueryProcessor(this); 20 | } 21 | 22 | Stinuum.Exception = function(message, data){ 23 | this.name = "StinuumException"; 24 | this.message = message; 25 | this.data = data; 26 | } 27 | 28 | Stinuum.Exception.prototype.toString = function(){ 29 | if (!debug_mode || this.data == undefined) 30 | return this.name + ' : "' + this.message + '"'; 31 | else { 32 | return [this.name + ' : "' + this.message + '"', this.data]; 33 | } 34 | } 35 | 36 | Stinuum.MFPair = function(id, feature){ 37 | this.id = id; 38 | this.feature = feature; 39 | } 40 | 41 | Stinuum.OccurrenceMap = function(stinuum){ 42 | this.super = stinuum; 43 | this.max_num = 0; 44 | this.primitive = null; 45 | } 46 | 47 | Stinuum.QueryProcessor = function(stinuum){ 48 | this.super = stinuum; 49 | this.result_pairs = []; 50 | } 51 | 52 | Stinuum.MFCollection = function(stinuum){ 53 | this.super = stinuum; 54 | this.features = []; 55 | this.wholeFeatures = []; 56 | this.colorCollection = {}; 57 | this.min_max = {}; 58 | this.whole_min_max = {}; 59 | } 60 | 61 | 62 | Stinuum.PathDrawing = function(g_viewer){ 63 | this.g_viewer = g_viewer; 64 | this.supersuper = g_viewer.super; 65 | } 66 | 67 | Stinuum.MovementDrawing = function(g_viewer){ 68 | this.g_viewer = g_viewer; 69 | this.supersuper = g_viewer.super; 70 | } 71 | 72 | Stinuum.GeometryViewer = function(stinuum){ 73 | this.super = stinuum; 74 | this.primitives = {}; 75 | this.drawing = new Stinuum.PathDrawing(this); 76 | this.moving = new Stinuum.MovementDrawing(this); 77 | this.projection = null; 78 | this.time_label = []; 79 | this.label_timeout = undefined; 80 | } 81 | 82 | Stinuum.TemporalMap = function(stinuum){ 83 | this.super = stinuum; 84 | this.temp_primitive = {}; 85 | } 86 | 87 | 88 | Stinuum.DirectionRadar = function(stinuum){ 89 | this.super = stinuum; 90 | } 91 | 92 | 93 | 94 | Stinuum.PropertyGraph = function(stinuum){ 95 | this.super = stinuum; 96 | this.graph_id; 97 | } 98 | 99 | Stinuum.BoxCoord = function(){ 100 | this.minimum = {}; 101 | this.maximum = {}; 102 | }; 103 | 104 | Stinuum.SpatialInfo = function(){ 105 | this.west = new Stinuum.DirectionInfo(); 106 | this.east = new Stinuum.DirectionInfo(); 107 | this.north = new Stinuum.DirectionInfo(); 108 | this.south = new Stinuum.DirectionInfo(); 109 | } 110 | 111 | Stinuum.DirectionInfo =function(life=0, leng=0){ 112 | this.total_life = life; 113 | this.total_length = leng; 114 | this.velocity = []; 115 | this.avg_velocity = 0; 116 | } 117 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/sh_makeJS.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cat model.js direction_radar.js movement_draw.js geometry_viewer.js occurrence_map.js super.js path_drawing.js temporal_map.js mf_collection.js property_graph.js utility.js query_processor.js > ../stinuum.js 4 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/super.js: -------------------------------------------------------------------------------- 1 | /** 2 | * change mode of stinuum. It is one-to-one correspondence with cesium mode. 3 | * @param {string} [mode] 4 | * ` ``js 5 | * stinuum.changmeMode("SPACETIME"); 6 | * ` `` 7 | */ 8 | 9 | Stinuum.prototype.changeMode = function(mode){ 10 | if (mode == undefined){ 11 | if (this.mode == 'STATICMAP' || this.mode == 'ANIMATEDMAP'){ 12 | this.mode = 'SPACETIME'; 13 | } 14 | else{ 15 | this.mode = 'STATICMAP'; 16 | } 17 | } 18 | else{ 19 | this.mode = mode; 20 | } 21 | 22 | this.geometryViewer.update({ 23 | change : true 24 | }); 25 | 26 | } 27 | 28 | Stinuum.prototype.getListOfHeight = function(datetimes, min_max_date){ 29 | if (min_max_date == undefined){ 30 | min_max_date = this.mfCollection.min_max.date; 31 | } 32 | var heights = []; 33 | for(var i = 0 ; i < datetimes.length ; i++){ 34 | heights.push(Stinuum.normalizeTime(new Date(datetimes[i]), min_max_date, this.maxHeight)); 35 | } 36 | return heights; 37 | } 38 | 39 | 40 | Stinuum.getCenter = function(coordinates, type){ 41 | var x=0,y=0; 42 | var length = coordinates.length; 43 | if (type == 'MovingPolygon'){ 44 | length -= 1; 45 | } 46 | for (var i = 0 ; i < length ; i++){ 47 | x += coordinates[i][0]; 48 | y += coordinates[i][1]; 49 | 50 | } 51 | x /= length; 52 | y /= length; 53 | 54 | return [x,y]; 55 | } 56 | -------------------------------------------------------------------------------- /Stinuum Web/src/js/temp/temporal_map.js: -------------------------------------------------------------------------------- 1 | 2 | Stinuum.TemporalMap.prototype.show = function(mf_id,propertyName){ 3 | var pro_name = propertyName; 4 | 5 | var mf = this.super.mfCollection.getMFPairById(mf_id); 6 | if (mf == -1){ 7 | console.log("please add mf first."); 8 | return; 9 | } 10 | 11 | //Only this feature is viewed in graph. 12 | this.super.mfCollection.hideAll(mf_id); 13 | 14 | var property = Stinuum.getPropertyByName(mf.feature, pro_name, mf_id)[0]; 15 | if (property == -1){ 16 | console.log("that property is not in this moving feature"); 17 | return; 18 | } 19 | 20 | if (this.super.geometryViewer.primitives[mf_id] != undefined){ 21 | this.super.cesiumViewer.scene.primitives.remove(this.super.geometryViewer.primitives[mf_id]); 22 | this.super.geometryViewer.primitives[mf_id] = undefined; 23 | } 24 | 25 | this.super.mfCollection.min_max = this.super.mfCollection.findMinMaxGeometry([mf]); 26 | var type = mf.feature.temporalGeometry.type; 27 | this.super.geometryViewer.clear(); 28 | 29 | if (this.super.mode == 'SPACETIME'){ 30 | //this.bounding_sphere = Stinuum.getBoundingSphere(this.min_max, [0, this.max_height] ); 31 | this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawZaxis()); 32 | var entities = this.super.geometryViewer.drawZaxisLabel(); 33 | for (var i = 0 ; i < entities.values.length ; i ++ ){ 34 | this.super.cesiumViewer.entities.add(entities.values[i]); 35 | } 36 | } 37 | else{ 38 | // this.bounding_sphere = Stinuum.getBoundingSphere(this.min_max, [0,0] ); 39 | } 40 | 41 | var highlight_prim; 42 | if (type == 'MovingPolygon'){ 43 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingPolygon({ 44 | temporalGeometry : mf.feature.temporalGeometry, 45 | temporalProperty : property, 46 | id : mf_id 47 | })); 48 | } 49 | else if (type == 'MovingPoint'){ 50 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingPoint({ 51 | temporalGeometry : mf.feature.temporalGeometry, 52 | temporalProperty : property, 53 | id : mf_id 54 | })); 55 | } 56 | else if (type == 'MovingLineString'){ 57 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingLineString({ 58 | temporalGeometry : mf.feature.temporalGeometry, 59 | temporalProperty : property, 60 | id : mf_id 61 | })); 62 | } 63 | else{ 64 | LOG('this type is not implemented.'); 65 | } 66 | 67 | this.super.geometryViewer.primitives[mf_id] = highlight_prim; 68 | this.super.geometryViewer.animate({ 69 | id : mf_id 70 | }); 71 | 72 | return 0; 73 | } 74 | -------------------------------------------------------------------------------- /Stinuum Web/system.json: -------------------------------------------------------------------------------- 1 | { 2 | "mf_api_server_url": "http://localhost:8085", 3 | "mfc_limit": 10, 4 | "mf_tg_limit": 100, 5 | "mf_tp_limit": 100 6 | } --------------------------------------------------------------------------------