Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.10 KB | None | 0 0
  1. const {dialog} = require('electron')
  2.  
  3.  
  4. /*Create Globe with high Quality Texture */
  5. /*var viewer = new Cesium.Viewer('cesiumContainer', {
  6. infoBox : true,
  7. selectionIndicator : false,
  8. shadows : true
  9. });*/
  10. var viewer = new Cesium.Viewer('cesiumContainer');
  11.  
  12.  
  13. //create3DModel()
  14. //createModel( 5000) ;
  15.  
  16. //viewer.dataSources.add('./data/simple.czml');
  17. //viewer.dataSources.add(Cesium.CzmlDataSource.load('8./data/simple.czml'));
  18.  
  19. //Load with default styling Add Pakistan Map topojson.
  20. /*var pak = viewer.dataSources.add(Cesium.GeoJsonDataSource.load('./images/map.topojson', {
  21. //stroke: Cesium.Color.FIREBRICK ,
  22. fill: Cesium.Color.GREEN.withAlpha(0.7)
  23. //strokeWidth: 3
  24. }));
  25. */
  26. var nust = viewer.dataSources.add(Cesium.GeoJsonDataSource.load('./data/geo-json-data/geojason-places.geojson', {
  27. //stroke: Cesium.Color.FIREBRICK ,
  28. //fill: Cesium.Color.GREEN.withAlpha(0.7)
  29. //strokeWidth: 3
  30. }));
  31.  
  32. viewer.dataSources.add(Cesium.GeoJsonDataSource.load('./data/geo-json-data/geojason-places.geojson', {}));
  33. viewer.dataSources.add(Cesium.GeoJsonDataSource.load('./data/geo-json-data/geojson-natural.geojson', {}));
  34.  
  35. function isb(){
  36.  
  37. var isb = viewer.entities.add({
  38. name : 'Islamabad',
  39. position : Cesium.Cartesian3.fromDegrees( 73.008150,33.722069),
  40. point : {
  41. pixelSize : 5,
  42. color : Cesium.Color.BLUE,
  43. outlineColor : Cesium.Color.WHITE,
  44. outlineWidth : 2,
  45. scaleByDistance : new Cesium.NearFarScalar(1.5e2, 2.0, 1.5e7, 0.5)
  46. },
  47. label : {
  48. text : 'Islamabad',
  49. font : '14pt serif',
  50. style: Cesium.LabelStyle.FILL_AND_OUTLINE,
  51. outlineWidth : 2,
  52. //verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
  53. pixelOffset : new Cesium.Cartesian2(0, -9),
  54. //scaleByDistance : new Cesium.NearFarScalar(1.5e2, 2.0, 1.5e7, 0.5)
  55. translucencyByDistance : new Cesium.NearFarScalar(1.5e2, 1.0, 8.0e6, 0.0)
  56. }
  57. });
  58.  
  59. }
  60.  
  61. var positionsA = [73.1201564972098,33.644409775774,
  62.  
  63. 73.1458920949878,33.6927135131419,
  64.  
  65. 73.1716276927658,33.7410172505099,
  66.  
  67. 73.1973632905439,33.7893209878779,
  68.  
  69. 73.2230988883219,33.8376247252459,
  70.  
  71. 73.2488344860999,33.8859284626138,
  72.  
  73. 73.2745700838779,33.9342321999818,
  74.  
  75. 73.3003056816559,33.9825359373498,
  76.  
  77. 73.326041279434,34.0308396747178,
  78.  
  79. 73.351776877212,34.0791434120857,
  80.  
  81. 73.37751247499,34.1274471494537,
  82.  
  83. 73.403248072768,34.1757508868217,
  84.  
  85. 73.428983670546,34.2240546241897,
  86.  
  87. 73.4547192683241,34.2723583615576,
  88.  
  89. 73.4804548661021,34.3206620989256,
  90.  
  91. 73.5061904638801,34.3689658362936,
  92.  
  93. 73.5319260616581,34.4172695736616,
  94.  
  95. 73.5576616594361,34.4655733110295,
  96.  
  97. 73.5833972572141,34.5138770483975,
  98.  
  99. 73.6091328549922,34.5621807857655,
  100.  
  101. 73.6348684527702,34.6104845231335,
  102.  
  103. 73.6606040505482,34.6587882605014,
  104.  
  105. 73.6863396483262,34.7070919978694,
  106.  
  107. 73.7120752461042,34.7553957352374,
  108.  
  109. 73.7378108438823,34.8036994726054,
  110.  
  111. 73.7635464416603,34.8520032099733,
  112.  
  113. 73.7892820394383,34.9003069473413,
  114.  
  115. 73.8150176372163,34.9486106847093,
  116.  
  117. 73.8407532349943,34.9969144220772,
  118.  
  119. 73.8664888327724,35.0452181594452,
  120.  
  121. 73.8922244305504,35.0935218968132,
  122.  
  123. 73.9179600283284,35.1418256341812,
  124.  
  125. 73.9436956261064,35.1901293715491,
  126.  
  127. 73.9694312238844,35.2384331089171,
  128.  
  129. 73.9951668216625,35.2867368462851,
  130.  
  131. 74.0209024194405,35.3350405836531,
  132.  
  133. 74.0466380172185,35.383344321021,
  134.  
  135. 74.0723736149965,35.431648058389,
  136.  
  137. 74.0981092127745,35.479951795757,
  138.  
  139. 74.1238448105526,35.528255533125,
  140.  
  141. 74.1495804083306,35.5765592704929,
  142.  
  143. 74.1753160061086,35.6248630078609,
  144.  
  145. 74.2010516038866,35.6731667452289,
  146.  
  147. 74.2267872016646,35.7214704825969,
  148.  
  149. 74.2525227994426,35.7697742199648,
  150.  
  151. 74.2782583972207,35.8180779573328,
  152.  
  153. 74.3039939949987,35.8663816947008,
  154.  
  155. 74.3297295927767,35.9146854320688 ];
  156. var timeDynamicCoordinatesR = [];
  157. k=0;j=0;l=0;
  158. tstep =0;
  159. for(i =0 ; i< (positionsA.length/2); )
  160. {
  161. timeDynamicCoordinatesR[i] = tstep;
  162. timeDynamicCoordinatesR[i + 1] = positionsA[k];
  163. timeDynamicCoordinatesR[i + 2] = positionsA[k+1];
  164. timeDynamicCoordinatesR[i + 3] = 500; // convert radius to meters
  165.  
  166. i = i + 4;
  167. k = k + 2;
  168. tstep = tstep + 60;
  169. }
  170.  
  171.  
  172. var builtInCzml = [{
  173. "id" : "document",
  174. "version" : "1.0",
  175. "clock" : {
  176. "interval" : "2017-08-04T16:00:00Z/2017-08-04T16:02:00Z",
  177. "currentTime" : "2017-08-04T16:00:00Z",
  178. "multiplier" : 1,
  179. "range" : "LOOP_STOP",
  180. "step" : "SYSTEM_CLOCK_MULTIPLIER"
  181. }
  182. }, {
  183. "id" : "Flight",
  184. "availability" : "2017-08-04T16:00:00Z/2017-08-04T16:02:00Z",
  185. "model" : {
  186. "show" : false,
  187. "gltf" : "../node_modules/cesium/SampleData/models/CesiumAir/Cesium_Air.glb"
  188. },
  189. "billboard" : {
  190. "eyeOffset" : {
  191. "cartesian" : [0.0, 0.0, 0.0]
  192. },
  193. "horizontalOrigin" : "CENTER",
  194. "image" : "../source/images/airport.png",
  195. "pixelOffset" : {
  196. "cartesian2" : [0.0, 0.0]
  197. },
  198. "scale" : 0.8,
  199. "show" : true,
  200. "verticalOrigin" : "BOTTOM"
  201. },
  202. "label" : {
  203. "fillColor" : {
  204. "rgba" : [255, 255, 0, 255]
  205. },
  206. "font" : "bold 10pt Segoe UI Semibold",
  207. "horizontalOrigin" : "LEFT",
  208. "outlineColor" : {
  209. "rgba" : [0, 0, 0, 255]
  210. },
  211. "pixelOffset" : {
  212. "cartesian2" : [10.0, 0.0]
  213. },
  214. "scale" : 1.0,
  215. "show" : true,
  216. "style" : "FILL",
  217. "text" : "Vehicle",
  218. "verticalOrigin" : "CENTER"
  219. },
  220. "path" : {
  221. "material" : {
  222. "solidColor" : {
  223. "color" : {
  224. "rgba" : [255, 255, 0, 255]
  225. }
  226. }
  227. },
  228. "width" : 5.0,
  229. "show" : true
  230. },
  231. "position" : {
  232. "interpolationAlgorithm" : "LAGRANGE",
  233. "interpolationDegree" : 1,
  234. "epoch" : "2017-08-04T16:00:00Z",
  235. "cartographicDegrees" : timeDynamicCoordinatesR
  236. }
  237. }];
  238.  
  239. var czmlDataSource = new Cesium.CzmlDataSource();
  240. czmlDataSource.load(builtInCzml, 'Sample CZML with 3D model');
  241. viewer.dataSources.add(czmlDataSource);
  242.  
  243.  
  244.  
  245. var pinBuilder = new Cesium.PinBuilder();
  246.  
  247. var bluePin = viewer.entities.add({
  248. name : 'Blank blue pin',
  249. position : Cesium.Cartesian3.fromDegrees(-75.170726, 39.9208667),
  250. billboard : {
  251. image : pinBuilder.fromColor(Cesium.Color.ROYALBLUE, 48).toDataURL(),
  252. verticalOrigin : Cesium.VerticalOrigin.BOTTOM
  253. }
  254. });
  255.  
  256. var questionPin = viewer.entities.add({
  257. name : 'Question mark',
  258. position : Cesium.Cartesian3.fromDegrees(-75.1698529, 39.9220071),
  259. billboard : {
  260. image : pinBuilder.fromText('?', Cesium.Color.BLACK, 48).toDataURL(),
  261. verticalOrigin : Cesium.VerticalOrigin.BOTTOM
  262. }
  263. });
  264.  
  265. var url = Cesium.buildModuleUrl('Assets/Textures/maki/grocery.png');
  266. var groceryPin = Cesium.when(pinBuilder.fromUrl(url, Cesium.Color.GREEN, 48), function(canvas) {
  267. return viewer.entities.add({
  268. name : 'Grocery store',
  269. position : Cesium.Cartesian3.fromDegrees(-75.1705217, 39.921786),
  270. billboard : {
  271. image : canvas.toDataURL(),
  272. verticalOrigin : Cesium.VerticalOrigin.BOTTOM
  273. }
  274. });
  275. });
  276.  
  277. //Create a red pin representing a hospital from the maki icon set.
  278. var hospitalPin = Cesium.when(pinBuilder.fromMakiIconId('hospital', Cesium.Color.RED, 48), function(canvas) {
  279. return viewer.entities.add({
  280. name : 'Hospital',
  281. position : Cesium.Cartesian3.fromDegrees(-75.1698606, 39.9211275),
  282. billboard : {
  283. image : canvas.toDataURL(),
  284. verticalOrigin : Cesium.VerticalOrigin.BOTTOM
  285. }
  286. });
  287. });
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294. /*
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301. var start = Cesium.JulianDate.fromDate(new Date(2017, 4, 30, 16));
  302. var stop = Cesium.JulianDate.addSeconds(start, 360, new Cesium.JulianDate());
  303. positionsA = [73.1201564972098,33.644409775774, 0, 500,
  304.  
  305. 73.1458920949878,33.6927135131419 ,60, 500
  306. ];
  307.  
  308. var czml = [{
  309. "id" : "document",
  310. "name" : "CZML Satellite - Time Dynamic",
  311. "version" : "1.0"
  312. }, {
  313. "id" : "ISB - GILGIT",
  314. "name" : "ISB - GILGIT",
  315. "availability" :"2012-08-04T16:00:00Z/2012-08-04T16:05:00Z",
  316. "position" : {
  317. "epoch" : "2012-08-04T16:00:00Z",
  318. "cartographicDegrees" : [
  319. 0, -70, 20, 150000,
  320. 100, -80, 44, 150000,
  321. 200, -90, 18, 150000,
  322. 300, -98, 52, 150000
  323. ]
  324. },
  325. "model": {
  326. "gltf" : "../node_modules/cesium/SampleData/models/CesiumAir/Cesium_Air.glb",
  327. "scale" : 2.0,
  328. "minimumPixelSize": 128
  329. },
  330. "path" : {
  331. "color" : { "rgba" : [255, 255, 255, 255] },
  332. "outlineColor" : { "rgba" : [255, 0, 0, 255] },
  333. "width" : 1,
  334. "outlineWidth" : 2,
  335. "leadTime" : 10,
  336. "trailTime" :10,
  337. "resolution" : 5
  338. }
  339.  
  340. }]
  341.  
  342.  
  343.  
  344.  
  345. viewer.dataSources.add(Cesium.CzmlDataSource.load(czml));
  346.  
  347.  
  348. */
  349.  
  350.  
  351.  
  352. function createModel( height) {
  353.  
  354. positionsA = [73.1201564972098,33.644409775774, 0, 500,
  355.  
  356. 73.1458920949878,33.6927135131419 ,60, 500
  357. ];
  358. var timeDynamicCoordinatesR = [];
  359. k=0;j=0;l=0;
  360. tstep =0;
  361. /*for(i =0 ; i< positionsA.length/2; )
  362. {
  363. timeDynamicCoordinatesR[i] = tstep;
  364. timeDynamicCoordinatesR[i + 1] = positionsA[k];
  365. timeDynamicCoordinatesR[i + 2] = positionsA[k+1];
  366. // timeDynamicCoordinatesR[i + 3] = 500; // convert radius to meters
  367.  
  368. i = i + 3;
  369. k = k + 2;
  370. tstep = tstep + 60;
  371. }*/
  372.  
  373.  
  374.  
  375.  
  376.  
  377. viewer.entities.removeAll();
  378.  
  379. var position = Cesium.Cartesian3.fromDegrees( 73.1201564972098,33.644409775774, height);
  380. var heading = Cesium.Math.toRadians(295);
  381. var pitch = 0;
  382. var roll = 0;
  383. var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
  384. var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
  385. //Set bounds of our simulation time
  386. var start = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 16));
  387. var stop = Cesium.JulianDate.addSeconds(start, 360, new Cesium.JulianDate());
  388.  
  389. //Make sure viewer is at the desired time.
  390. viewer.clock.startTime = start.clone();
  391. viewer.clock.stopTime = stop.clone();
  392. viewer.clock.currentTime = start.clone();
  393. viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; //Loop at the end
  394. viewer.clock.multiplier = 10;
  395.  
  396. //Set timeline to simulation bounds
  397. viewer.timeline.zoomTo(start, stop);
  398. var entity = viewer.entities.add({
  399. name : 'Flight Path',
  400.  
  401. availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
  402. start : start,
  403. stop : stop
  404. })]),
  405. position : positionsA,
  406. /*
  407. polyline : {
  408. interpolationAlgorithm:"LAGRANGE",
  409. interpolationDegree:5,
  410. referenceFrame:"INERTIAL",
  411. epoch :start,
  412. positions : positionsA,
  413. width : 5,
  414. material : Cesium.Color.RED
  415. },*/
  416. path : {
  417. show : true,
  418. leadTime : 0,
  419. trailTime : 60,
  420. width : 10,
  421. resolution : 1,
  422. material : new Cesium.PolylineGlowMaterialProperty({
  423. glowPower : 0.3,
  424. color : Cesium.Color.PALEGOLDENROD
  425. })
  426. },
  427. orientation : orientation,
  428. model : {
  429. uri : '../node_modules/cesium/SampleData/models/CesiumAir/Cesium_Air.glb',
  430. minimumPixelSize : 128,
  431. maximumScale : 20000
  432. }
  433.  
  434. });
  435. viewer.trackedEntity = entity;
  436. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement