cc-tools-utils 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1 -0
- package/dist/index.js +1 -1
- package/package.json +7 -6
- package/vite-config-helper.js +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
if(void 0===e)var e={platform:"browser",env:{}};import{CallbackProperty as t,Cartesian2 as n,Cartesian3 as r,Cartographic as i,Color as o,Ellipsoid as a,GeoJsonDataSource as l,HeadingPitchRoll as s,HeightReference as c,HorizontalOrigin as u,Ion as d,JulianDate as f,Math as g,Matrix4 as m,NearFarScalar as p,PolylineDashMaterialProperty as h,Resource as b,Rotation as v,SampledProperty as y,ScreenSpaceEventHandler as w,ScreenSpaceEventType as E,Transforms as T,VelocityOrientationProperty as O,VerticalOrigin as I,Viewer as P,defined as S}from"cesium";var C={d:(e,t)=>{for(var n in t)C.o(t,n)&&!C.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},D={};C.r(D),C.d(D,{debounce:()=>_,throttle:()=>N});var A={};C.r(A),C.d(A,{DEFAULT_HEIGHT:()=>L,DEFAULT_POSITION:()=>B,MODEL_DISPLAY_DISTANCE:()=>W,add3DModel:()=>le,addEquatorialLine:()=>te,addHover:()=>fe,addLine:()=>ae,addPointer:()=>oe,airRouteFn:()=>ne,backToChina:()=>X,cameraAnimation:()=>ie,cc:()=>ge,combineIconAndLabel:()=>de,divergingWaves:()=>ee,followModel:()=>ce,getHeading:()=>Y,getPitch:()=>K,getRhumbBearing:()=>G,initCesium:()=>Z,initCluster:()=>ue,initEvents:()=>se,isArrayEqual:()=>U,setCesiumAccessToken:()=>z,toCesiumColor:()=>Q,toCesiumPosition:()=>$,transformCartesian3ToWGS84:()=>J,updataModelPosition:()=>q});var _=function(e,t){if("function"!=typeof t)throw new Error("debounce的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("debounce的第一个参数必须是非负数");var n=null;return function(){var r=arguments,i=this;n&&clearTimeout(n),n=setTimeout(function(){t.apply(i,r),n=null},e)}},N=function(e,t){if("function"!=typeof t)throw new Error("throttle的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("throttle的第一个参数必须是非负数");var n=!1;return function(){n||(n=!0,t.apply(this,arguments),setTimeout(function(){n=!1},e))}};function x(e){return x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x(e)}function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function V(e,t,n){return(t=function(e){var t=function(e){if("object"!=x(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=x(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==x(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e){return function(e){if(Array.isArray(e))return H(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,l=[],s=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return l}}(e,t)||k(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return H(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?H(e,t):void 0}}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var L=25e6,B=[109,35.5,L],W=5e6,z=function(e){e&&"string"==typeof e?d.defaultAccessToken=e:console.warn("setCesiumAccessToken: token必须是非空字符串")};function U(e,t){var n=e.slice().sort(),r=t.slice().sort();return n.length===r.length&&n.every(function(e,t){return e===r[t]})}var Y=function(e,t){var n=T.eastNorthUpToFixedFrame(e),i=r.subtract(t,e,new r),o=m.multiplyByPointAsVector(m.inverse(n,new m),i,new r),a=r.normalize(o,new r),l=Math.atan2(a.y,a.x)-g.PI_OVER_TWO;return g.TWO_PI-g.zeroToTwoPi(l)},G=function(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("getRhumbBearing: 参数必须是数组");if(e.length<2||t.length<2)throw new Error("getRhumbBearing: 参数数组至少需要两个元素[经度, 纬度]");var n=F(e,2),r=n[0],i=n[1],o=F(t,2),a=o[0],l=o[1],s=g.toRadians(i),c=g.toRadians(l),u=g.toRadians(a-r),d=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),f=Math.atan2(u,d);return(g.toDegrees(f)+360)%360},K=function(e,t){var n=T.eastNorthUpToFixedFrame(e),i=r.subtract(t,e,new r),o=m.multiplyByPointAsVector(m.inverse(n,n),i,i);return r.normalize(o,o),g.PI_OVER_TWO-g.acosClamped(o.z)},q=function(e,t){var n=t.model,i=t.targetPosition,o=t.totalDuration,a=void 0===o?2:o;e.clock.onTick.addEventListener(function(e){var t=e.currentTime.secondsOfDay;if(t<=a){var o=new r;r.lerp(n.position.getValue(e.currentTime),i,t/a,o),n.position.setValue(o)}})},J=function(e){var t=a.WGS84.cartesianToCartographic(e);return[g.toDegrees(t.longitude),g.toDegrees(t.latitude),t.height]},Q=function(e){if(!e||"string"!=typeof e)return console.warn("toCesiumColor: color必须是字符串,使用默认颜色"),o.WHITE;try{return o.fromCssColorString(e)}catch(t){return console.warn("toCesiumColor: 无效的颜色值 ".concat(e,",使用默认颜色")),o.WHITE}},$=function(e){var t;if(!Array.isArray(e))throw new Error("toCesiumPosition: position必须是数组");if(e.length<2)throw new Error("toCesiumPosition: position数组至少需要两个元素[经度, 纬度]");if(e.some(function(e){return"number"!=typeof e||isNaN(e)}))throw new Error("toCesiumPosition: position数组元素必须是有效数字");return(t=r).fromDegrees.apply(t,j(e))},X=function(e,t,n){if(!e)throw new Error("backToChina: viewer参数是必需的");e.camera.flyTo({destination:$(B),duration:n||1.5,complete:function(){t&&t()}})},Z=function(e,t){if(!e)throw new Error("initCesium: boxID参数是必需的");var n=new P(e,{contextOptions:{webgl:{alpha:!0,powerPreference:"high-performance"}},infoBox:!1,timeline:!1,geocoder:!1,homeButton:!1,sceneModePicker:!0,baseLayerPicker:!1,navigationHelpButton:!1,animation:!1,selectionIndicator:!1});return t&&setTimeout(function(){console.log("执行回调函数"),t(n)},0),{viewer:n}},ee=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.defaultPosition,i=void 0===r?[120.38017292236532,31.480874872499374]:r,o=n.r,a=void 0===o?0:o,l=n.r2,s=void 0===l?0:l,c=n.step,u=void 0===c?2e3:c,d=n.max,f=void 0===d?8e4:d,g=n.speed,m=void 0===g?1:g,p=n.defaultColor,h=void 0===p?"#ff0000":p,b=n.id,v=void 0===b?"":b;if(!S(e))throw new Error("divergingWaves: viewer参数是必需的");if(!Array.isArray(i)||i.length<2)throw new Error("divergingWaves: defaultPosition必须是有效的坐标数组");return e.entities.add({id:v,position:$(i),ellipse:{semiMinorAxis:new t(function(){return a<f?a+=u*m:a=0},!1),semiMajorAxis:new t(function(){return s<f?s+=u*m:s=0},!1),height:0,material:Q(h),outline:!1}})},te=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#DC143C",n=[[180,0,1e5],[60,0,1e5],[-60,0,1e5],[-180,0,1e5]].reduce(function(e,t){return e.concat(t)},[]);e.entities.add({id:"赤道线",polyline:{positions:r.fromDegreesArrayHeights(n),width:5,material:Q(t)}})},ne=function(e){var i=1e6,a=e.clock,l={from:[102.5,30,i],to:[150.5,-33,i],last:15,stopFlag:!1},s=new y(r),d=new y(v),m=a.currentTime.clone(),p=f.addMinutes(m,l.last,new f);s.addSample(a.currentTime,$(l.from));var b=Array.from({length:l.last-1},function(e,t){return f.addMinutes(m,t+1,new f)}),w=(l.to[0]-l.from[0])/l.last,E=(l.to[1]-l.from[1])/l.last,T=Array.from({length:l.last-1},function(e,t){return $([l.from[0]+(t+1)*w,l.from[1]+(t+1)*E,l.from[2]])}),P=[l.from].concat(j(T.map(function(e){return J(e)})),[l.to]);e.entities.add({id:"添加航班连线",labelVisible:!0,polyline:{positions:r.fromDegreesArrayHeights(P.flat(1/0)),width:2,material:new h({color:Q("#8A2BE2")}),loop:!0}}),s.addSamples(b,T),s.addSample(p,$(l.to));var S=function(){var e=s,t=e._times;return t.map(function(n,r){var i=J(e.getValue(n)).slice(0,2),o=t[r+1]?J(e.getValue(t[r+1])).slice(0,2):null,a=o?-g.toRadians(G(i,o)):d.getValue(t[r-1]);d.addSample(n,a)}),d},C=e.entities.add({id:"空中客机",position:s,usePlain:!0,setRotation:!0,label:{text:new t(function(e){if(!s.getValue(e))return"";var t=F(J(s.getValue(e)),2),n=t[0],r=t[1];return"经度:".concat(n.toFixed(2),"\n纬度:").concat(r.toFixed(2))},!1),font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,backgroundColor:new o(.165,.165,.165,.5),fillColor:o.fromCssColorString("#59cfb5"),pixelOffset:new n(-20,-40),horizontalOrigin:u.LEFT,verticalOrigin:I.CENTER},billboard:{width:36,height:36,image:"/plain.svg",heightReference:c.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,rotation:S()},orientation:s.constructor===r?null:new O(s),createRotationSampler:S()});e.entities.add({id:"点位起点",point:{},position:$(l.from),billboard:{width:20,height:25,image:"/location.svg",heightReference:c.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.entities.add({id:"点位终点",point:{},position:$(l.to),billboard:{width:20,height:25,image:"/location.svg",heightReference:c.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.scene.postRender.addEventListener(function(t,n){return function(t){var n=C.position.getValue(t),r=C.orientation.getValue(t);re({position:n,airPlan:C,orientation:r,allHeight:i},e)}(n)})},re=function(e,t){var n=e.position,o=(e.airPlan,e.orientation,e.allHeight);if(n){var a,l=j(J(n)),s=l[0],c=l[1],u=l[2],d=$([s,c,u]),f=i.fromCartesian(d),m=g.toDegrees(f.longitude),p=g.toDegrees(f.latitude);a=r.fromDegrees(m,p),t.camera.lookAt(a,new r(0,0,1.3*o))}},ie=function(e,t,n){var i;e.camera.flyTo({destination:(i=r).fromDegrees.apply(i,j(t)),duration:2,orientation:R({},n)})},oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.position,r=t.pointColor,i=t.pointerSize,o=t.id,a=t.label,l=void 0===a?{}:a,s=t.billboard,d=t.nearScale,f=void 0===d?1:d,g=t.farScale,m=void 0===g?.85:g,h=t.nearDistance,b=void 0===h?1e3:h,v=t.farDistance,y=void 0===v?4e8:v,w=t.hoverImage;if(!e)throw new Error("addPointer: viewer参数是必需的");if(!n)throw new Error("addPointer: position参数是必需的");var E={id:o,position:$(j(n)),usePlain:!0,hoverImage:w||""};if(r&&""!==r.trim()&&i>0)try{E.point={pixelSize:i,color:Q(r)}}catch(e){console.warn("创建 point 失败:",e)}return l&&(E.label=R({font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,horizontalOrigin:u.LEFT,verticalOrigin:I.CENTER,scaleByDistance:new p(b,1,y,.2)},l)),s&&(E.billboard=R({heightReference:c.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new p(b,f,y,m)},s)),e.entities.add(E)},ae=function(e){e.entities.add({polyline:{width:10,material:o.GREEN}})},le=function(e,t,n){var r=e.entities.add({position:t,name:"飞船一号",model:{uri:"./airship.glb"}});e.flyTo(r)},se=function(e){var t,n=e.viewer,r=e.scene,i=(e.camera,e.entities);e.clock,n.cesiumWidget.screenSpaceEventHandler.removeInputAction(E.LEFT_DOUBLE_CLICK),i.collectionChanged.addEventListener(function(e,n,r){U(t,e.values.map(function(e){return e.id}))||(t=i.values.map(function(e){return e.id}))});var o=new w(r.canvas);o.setInputAction(function(e){return l(e,E.LEFT_CLICK)},E.LEFT_CLICK);var l=function(e,t){var i=g.toDegrees(n.camera.heading),o=g.toDegrees(n.camera.pitch),a=g.toDegrees(n.camera.roll),l=n.camera.positionCartographic,s=g.toDegrees(l.longitude),c=g.toDegrees(l.latitude),u=l.height;console.log("位置: [".concat(s,", ").concat(c,", ").concat(u,"]")),console.log("角度: { heading: ".concat(i,", pitch: ").concat(o,", roll: ").concat(a," }"));var d=r.pick(e.position)||{id:void 0,primitive:void 0},f=d.id;d.primitive,f&&console.log(" 点击的模型 :",f)},s=a.WGS84;return o.setInputAction(function(e){var t=n.camera.pickEllipsoid(e.endPosition,s);if(t){var r=n.scene.globe.ellipsoid.cartesianToCartographic(t);g.toDegrees(r.latitude).toFixed(4),g.toDegrees(r.longitude).toFixed(4),(n.camera.positionCartographic.height/1e3).toFixed(2)}},E.MOUSE_MOVE),t},ce=function(e,n){var i=n.targetModel,o=n.selfModel,a=n.startPosition,l=(n.endPosition,f.now()),c=i._position.getValue(l);o._position.getValue(l),i._position=new t(function(){return c.x+=100,c},!1),o._posistion=new t(function(){return r.midpoint($(a),c,new r)},!1),o._orientation=new t(function(){var e=$(a),t=c,n=Y(e,t),r=K(e,t),i=new s(g.toRadians(90),g.toRadians(90),g.toRadians(0));return i.pitch-=r,i.heading+=n,T.headingPitchRollQuaternion(e,i)},!1),o._cylinder.length=new t(function(){var e=$(a),t=c;return r.distance(e,t)},!1),e.scene.postRender.addEventListener(function(){})},ue=function(e,t){var r=t.source,i=t.image,o=F(t.imgs,4),a=o[0],s=o[1],c=o[2],d=o[3];(new l).load(r).then(function(t){e.dataSources.add(t),t.clustering.enabled=!0,t.clustering.pixelRange=60,t.clustering.minimumClusterSize=2,t.entities.values.forEach(function(e){console.log(" 每一项entity :",e),e.position._value.z+=50,e.billboard={image:i,width:32,height:32},e.label={text:"POI",font:"bold 15px Microsoft YaHei",verticalOrigin:I.CENTER,horizontalOrigin:u.LEFT,pixelOffset:new n(15,0)}}),t.clustering.clusterEvent.addEventListener(function(e,t){t.label.show=!1,t.billboard.show=!0,t.billboard.verticalOrigin=I.BOTTOM,e.length>=20?(t.billboard.image=de(d,e.length,64),t.billboard.width=72,t.billboard.height=72):e.length>=12?(t.billboard.image=de(c,e.length,64),t.billboard.width=56,t.billboard.height=56):e.length>=8?(t.billboard.image=de(s,e.length,64),t.billboard.width=48,t.billboard.height=48):(t.billboard.image=de(a,e.length,64),t.billboard.width=40,t.billboard.height=40)})})},de=function(e,t,n){var r=document.createElement("canvas");r.width=n,r.height=n;var i=r.getContext("2d");return new b.fetchImage(e).then(function(e){try{i.drawImage(e,0,0)}catch(e){console.log(e)}return i.fillStyle=o.WHITE.toCssColorString(),i.font="bold 20px Microsoft YaHei",i.textAlign="center",i.textBaseline="middle",i.fillText(t,n/2,n/2),r})},fe=function(e,t){var n=new w(e.scene.canvas),r=null,i=null;return n.setInputAction(function(n){var o=e.scene.pick(n.endPosition);if(o&&o.id){var a=o.id;i!==a&&(r&&clearTimeout(r),i&&i.billboard&&i._originalImage&&(i.billboard.image=i._originalImage,delete i._originalImage),i=a,e.scene.canvas.style.cursor="pointer",r=setTimeout(function(){a.billboard&&a.hoverImage&&(a._originalImage=a.billboard.image,a.billboard.image=a.hoverImage),t&&t(a)},300))}else r&&clearTimeout(r),i&&i.billboard&&i._originalImage&&(i.billboard.image=i._originalImage,delete i._originalImage),e.scene.canvas.style.cursor="default",i=null},E.MOUSE_MOVE),function(){n.destroy(),r&&clearTimeout(r)}},ge=function(){return 1};const me={tools:D,cesiumHooks:A};export{A as cesiumHooks,me as default,D as tools};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"object"==typeof module?module.exports=t(require("cesium")):"function"==typeof define&&define.amd?define(["cesium"],t):"object"==typeof exports?exports["cc-tools-utils"]=t(require("cesium")):e["cc-tools-utils"]=t(e.Cesium)})(self,e=>{{var t={50(t){t.exports=e}},r={};function i(e){var n=r[e];return void 0!==n||(n=r[e]={exports:{}},t[e](n,n.exports,i)),n.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={},o=(i.d(n,{default:()=>Y}),{}),a=(i.r(o),i.d(o,{debounce:()=>l,throttle:()=>c}),{}),l=(i.r(a),i.d(a,{DEFAULT_HEIGHT:()=>b,DEFAULT_POSITION:()=>v,MODEL_DISPLAY_DISTANCE:()=>y,add3DModel:()=>k,addEquatorialLine:()=>_,addHover:()=>z,addLine:()=>j,addPointer:()=>V,airRouteFn:()=>N,backToChina:()=>D,cameraAnimation:()=>H,cc:()=>U,combineIconAndLabel:()=>W,divergingWaves:()=>A,followModel:()=>L,getHeading:()=>E,getPitch:()=>O,getRhumbBearing:()=>T,initCesium:()=>x,initCluster:()=>B,initEvents:()=>F,isArrayEqual:()=>C,setCesiumAccessToken:()=>w,toCesiumColor:()=>I,toCesiumPosition:()=>M,transformCartesian3ToWGS84:()=>P,updataModelPosition:()=>S}),function(e,t){if("function"!=typeof t)throw new Error("debounce的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("debounce的第一个参数必须是非负数");var r=null;return function(){var i=arguments,n=this;r&&clearTimeout(r),r=setTimeout(function(){t.apply(n,i),r=null},e)}}),c=function(e,t){if("function"!=typeof t)throw new Error("throttle的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("throttle的第一个参数必须是非负数");var r=!1;return function(){r||(r=!0,t.apply(this,arguments),setTimeout(function(){r=!1},e))}},s=i(50);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){var r,i=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,r)),i}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){var i,n;i=e,n=r[t],(t=(e=>(e=(e=>{if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0===t)return String(e);if("object"!=u(t=t.call(e,"string")))return t;throw new TypeError("@@toPrimitive must return a primitive value.")})(e),"symbol"==u(e)?e:e+""))(t))in i?Object.defineProperty(i,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):i[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e){return(e=>{if(Array.isArray(e))return m(e)})(e)||(e=>{if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)})(e)||h(e)||(()=>{throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function p(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((e,t)=>{var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i,n,o,a,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(i=o.call(r)).done)&&(l.push(i.value),l.length!==t);c=!0);}catch(e){s=!0,n=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw n}}return l}})(e,t)||h(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function h(e,t){var r;if(e)return"string"==typeof e?m(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}var b=25e6,v=[109,35.5,b],y=5e6,w=function(e){e&&"string"==typeof e?s.Ion.defaultAccessToken=e:console.warn("setCesiumAccessToken: token必须是非空字符串")};function C(e,t){e=e.slice().sort();var r=t.slice().sort();return e.length===r.length&&e.every(function(e,t){return e===r[t]})}var E=function(e,t){var r=s.Transforms.eastNorthUpToFixedFrame(e);return t=s.Cartesian3.subtract(t,e,new s.Cartesian3),e=s.Matrix4.multiplyByPointAsVector(s.Matrix4.inverse(r,new s.Matrix4),t,new s.Cartesian3),r=s.Cartesian3.normalize(e,new s.Cartesian3),t=Math.atan2(r.y,r.x)-s.Math.PI_OVER_TWO,s.Math.TWO_PI-s.Math.zeroToTwoPi(t)},T=function(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("getRhumbBearing: 参数必须是数组");if(e.length<2||t.length<2)throw new Error("getRhumbBearing: 参数数组至少需要两个元素[经度, 纬度]");var r=(e=p(e,2))[0],i=(e=e[1],(t=p(t,2))[0]);return t=t[1],e=s.Math.toRadians(e),t=s.Math.toRadians(t),i=s.Math.toRadians(i-r),r=Math.log(Math.tan(t/2+Math.PI/4)/Math.tan(e/2+Math.PI/4)),t=Math.atan2(i,r),(s.Math.toDegrees(t)+360)%360},O=function(e,t){var r=s.Transforms.eastNorthUpToFixedFrame(e);return t=s.Cartesian3.subtract(t,e,new s.Cartesian3),e=s.Matrix4.multiplyByPointAsVector(s.Matrix4.inverse(r,r),t,t),s.Cartesian3.normalize(e,e),s.Math.PI_OVER_TWO-s.Math.acosClamped(e.z)},S=function(e,t){var r=t.model,i=t.targetPosition,n=void 0===(t=t.totalDuration)?2:t;e.clock.onTick.addEventListener(function(e){var t,o=e.currentTime.secondsOfDay;o<=n&&(t=new s.Cartesian3,s.Cartesian3.lerp(r.position.getValue(e.currentTime),i,o/n,t),r.position.setValue(t))})},P=function(e){return e=s.Ellipsoid.WGS84.cartesianToCartographic(e),[s.Math.toDegrees(e.longitude),s.Math.toDegrees(e.latitude),e.height]},I=function(e){if(!e||"string"!=typeof e)return console.warn("toCesiumColor: color必须是字符串,使用默认颜色"),s.Color.WHITE;try{return s.Color.fromCssColorString(e)}catch(t){return console.warn("toCesiumColor: 无效的颜色值 ".concat(e,",使用默认颜色")),s.Color.WHITE}},M=function(e){var t;if(!Array.isArray(e))throw new Error("toCesiumPosition: position必须是数组");if(e.length<2)throw new Error("toCesiumPosition: position数组至少需要两个元素[经度, 纬度]");if(e.some(function(e){return"number"!=typeof e||isNaN(e)}))throw new Error("toCesiumPosition: position数组元素必须是有效数字");return(t=s.Cartesian3).fromDegrees.apply(t,g(e))},D=function(e,t,r){if(!e)throw new Error("backToChina: viewer参数是必需的");e.camera.flyTo({destination:M(v),duration:r||1.5,complete:function(){t&&t()}})},x=function(e,t){var r;if(e)return r=new s.Viewer(e,{contextOptions:{webgl:{alpha:!0,powerPreference:"high-performance"}},infoBox:!1,timeline:!1,geocoder:!1,homeButton:!1,sceneModePicker:!0,baseLayerPicker:!1,navigationHelpButton:!1,animation:!1,selectionIndicator:!1}),t&&setTimeout(function(){console.log("执行回调函数"),t(r)},0),{viewer:r};throw new Error("initCesium: boxID参数是必需的")},A=function(e){var t=void 0===(t=(c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).defaultPosition)?[120.38017292236532,31.480874872499374]:t,r=void 0===(l=c.r)?0:l,i=void 0===(l=c.r2)?0:l,n=void 0===(l=c.step)?2e3:l,o=void 0===(l=c.max)?8e4:l,a=void 0===(l=c.speed)?1:l,l=void 0===(l=c.defaultColor)?"#ff0000":l,c=void 0===(c=c.id)?"":c;if(!s.defined(e))throw new Error("divergingWaves: viewer参数是必需的");if(!Array.isArray(t)||t.length<2)throw new Error("divergingWaves: defaultPosition必须是有效的坐标数组");return e.entities.add({id:c,position:M(t),ellipse:{semiMinorAxis:new s.CallbackProperty(function(){return r<o?r+=n*a:r=0},!1),semiMajorAxis:new s.CallbackProperty(function(){return i<o?i+=n*a:i=0},!1),height:0,material:I(l),outline:!1}})},_=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#DC143C",r=[[180,0,1e5],[60,0,1e5],[-60,0,1e5],[-180,0,1e5]].reduce(function(e,t){return e.concat(t)},[]);e.entities.add({id:"赤道线",polyline:{positions:s.Cartesian3.fromDegreesArrayHeights(r),width:5,material:I(t)}})},N=function(e){function t(){var e=n,t=e._times;return t.map(function(r,i){var n=P(e.getValue(r)).slice(0,2),a=t[i+1]?P(e.getValue(t[i+1])).slice(0,2):null;n=a?-s.Math.toRadians(T(n,a)):o.getValue(t[i-1]),o.addSample(r,n)}),o}var r=e.clock,i={from:[102.5,30,1e6],to:[150.5,-33,1e6],last:15,stopFlag:!1},n=new s.SampledProperty(s.Cartesian3),o=new s.SampledProperty(s.Rotation),a=r.currentTime.clone(),l=s.JulianDate.addMinutes(a,i.last,new s.JulianDate),c=(n.addSample(r.currentTime,M(i.from)),r=Array.from({length:i.last-1},function(e,t){return s.JulianDate.addMinutes(a,t+1,new s.JulianDate)}),(i.to[0]-i.from[0])/i.last),u=(i.to[1]-i.from[1])/i.last,d=Array.from({length:i.last-1},function(e,t){return M([i.from[0]+(t+1)*c,i.from[1]+(t+1)*u,i.from[2]])}),f=[i.from].concat(g(d.map(function(e){return P(e)})),[i.to]),h=(e.entities.add({id:"添加航班连线",labelVisible:!0,polyline:{positions:s.Cartesian3.fromDegreesArrayHeights(f.flat(1/0)),width:2,material:new s.PolylineDashMaterialProperty({color:I("#8A2BE2")}),loop:!0}}),n.addSamples(r,d),n.addSample(l,M(i.to)),e.entities.add({id:"空中客机",position:n,usePlain:!0,setRotation:!0,label:{text:new s.CallbackProperty(function(e){var t;return n.getValue(e)?(t=(e=p(P(n.getValue(e)),2))[0],e=e[1],"经度:".concat(t.toFixed(2),"\n纬度:").concat(e.toFixed(2))):""},!1),font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,backgroundColor:new s.Color(.165,.165,.165,.5),fillColor:s.Color.fromCssColorString("#59cfb5"),pixelOffset:new s.Cartesian2(-20,-40),horizontalOrigin:s.HorizontalOrigin.LEFT,verticalOrigin:s.VerticalOrigin.CENTER},billboard:{width:36,height:36,image:"/plain.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,rotation:t()},orientation:n.constructor===s.Cartesian3?null:new s.VelocityOrientationProperty(n),createRotationSampler:t()}));e.entities.add({id:"点位起点",point:{},position:M(i.from),billboard:{width:20,height:25,image:"/location.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.entities.add({id:"点位终点",point:{},position:M(i.to),billboard:{width:20,height:25,image:"/location.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.scene.postRender.addEventListener(function(t,r){var i;i=h.position.getValue(r),r=h.orientation.getValue(r),R({position:i,airPlan:h,orientation:r,allHeight:1e6},e)})},R=function(e,t){var r,i=e.position;e=e.allHeight,i&&(r=(i=g(P(i)))[0],r=M([r,i[1],i[2]]),i=s.Cartographic.fromCartesian(r),r=s.Math.toDegrees(i.longitude),i=s.Math.toDegrees(i.latitude),r=s.Cartesian3.fromDegrees(r,i),t.camera.lookAt(r,new s.Cartesian3(0,0,1.3*e)))},H=function(e,t,r){e.camera.flyTo({destination:(e=s.Cartesian3).fromDegrees.apply(e,g(t)),duration:2,orientation:f({},r)})},V=function(e){var t=(p=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).position,r=p.pointColor,i=p.pointerSize,n=p.id,o=void 0===(o=p.label)?{}:o,a=p.billboard,l=void 0===(l=p.nearScale)?1:l,c=void 0===(c=p.farScale)?.85:c,u=void 0===(u=p.nearDistance)?1e3:u,d=void 0===(d=p.farDistance)?4e8:d,p=p.hoverImage;if(!e)throw new Error("addPointer: viewer参数是必需的");if(!t)throw new Error("addPointer: position参数是必需的");if(n={id:n,position:M(g(t)),usePlain:!0,hoverImage:p||""},r&&""!==r.trim()&&0<i)try{n.point={pixelSize:i,color:I(r)}}catch(e){console.warn("创建 point 失败:",e)}return o&&(n.label=f({font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,horizontalOrigin:s.HorizontalOrigin.LEFT,verticalOrigin:s.VerticalOrigin.CENTER,scaleByDistance:new s.NearFarScalar(u,1,d,.2)},o)),a&&(n.billboard=f({heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new s.NearFarScalar(u,l,d,c)},a)),e.entities.add(n)},j=function(e){e.entities.add({polyline:{width:10,material:s.Color.GREEN}})},k=function(e,t,r){t=e.entities.add({position:t,name:"飞船一号",model:{uri:"./airship.glb"}}),e.flyTo(t)},F=function(e){var t,r=e.viewer,i=e.scene,n=e.entities,o=((r.cesiumWidget.screenSpaceEventHandler.removeInputAction(s.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),n.collectionChanged.addEventListener(function(e,r,i){C(t,e.values.map(function(e){return e.id}))||(t=n.values.map(function(e){return e.id}))}),e=new s.ScreenSpaceEventHandler(i.canvas)).setInputAction(function(e){return o(e,s.ScreenSpaceEventType.LEFT_CLICK)},s.ScreenSpaceEventType.LEFT_CLICK),function(e,t){var n=s.Math.toDegrees(r.camera.heading),o=s.Math.toDegrees(r.camera.pitch),a=s.Math.toDegrees(r.camera.roll),l=r.camera.positionCartographic,c=s.Math.toDegrees(l.longitude),u=s.Math.toDegrees(l.latitude);l=l.height,(u=(console.log("位置: [".concat(c,", ").concat(u,", ").concat(l,"]")),console.log("角度: { heading: ".concat(n,", pitch: ").concat(o,", roll: ").concat(a," }")),c=i.pick(e.position)||{id:void 0,primitive:void 0}).id)&&console.log(" 点击的模型 :",u)}),a=s.Ellipsoid.WGS84;return e.setInputAction(function(e){(e=r.camera.pickEllipsoid(e.endPosition,a))&&(e=r.scene.globe.ellipsoid.cartesianToCartographic(e),s.Math.toDegrees(e.latitude).toFixed(4),s.Math.toDegrees(e.longitude).toFixed(4),(r.camera.positionCartographic.height/1e3).toFixed(2))},s.ScreenSpaceEventType.MOUSE_MOVE),t},L=function(e,t){var r=t.targetModel,i=t.selfModel,n=t.startPosition,o=(t=s.JulianDate.now(),r._position.getValue(t));i._position.getValue(t),r._position=new s.CallbackProperty(function(){return o.x+=100,o},!1),i._posistion=new s.CallbackProperty(function(){return s.Cartesian3.midpoint(M(n),o,new s.Cartesian3)},!1),i._orientation=new s.CallbackProperty(function(){var e=M(n),t=E(e,r=o),r=O(e,r),i=new s.HeadingPitchRoll(s.Math.toRadians(90),s.Math.toRadians(90),s.Math.toRadians(0));return i.pitch-=r,i.heading+=t,s.Transforms.headingPitchRollQuaternion(e,i)},!1),i._cylinder.length=new s.CallbackProperty(function(){var e=M(n);return s.Cartesian3.distance(e,o)},!1),e.scene.postRender.addEventListener(function(){})},B=function(e,t){var r=t.source,i=t.image,n=(t=p(t.imgs,4))[0],o=t[1],a=t[2],l=t[3];(new s.GeoJsonDataSource).load(r).then(function(t){e.dataSources.add(t),t.clustering.enabled=!0,t.clustering.pixelRange=60,t.clustering.minimumClusterSize=2,t.entities.values.forEach(function(e){console.log(" 每一项entity :",e),e.position._value.z+=50,e.billboard={image:i,width:32,height:32},e.label={text:"POI",font:"bold 15px Microsoft YaHei",verticalOrigin:s.VerticalOrigin.CENTER,horizontalOrigin:s.HorizontalOrigin.LEFT,pixelOffset:new s.Cartesian2(15,0)}}),t.clustering.clusterEvent.addEventListener(function(e,t){t.label.show=!1,t.billboard.show=!0,t.billboard.verticalOrigin=s.VerticalOrigin.BOTTOM,20<=e.length?(t.billboard.image=W(l,e.length,64),t.billboard.width=72,t.billboard.height=72):12<=e.length?(t.billboard.image=W(a,e.length,64),t.billboard.width=56,t.billboard.height=56):8<=e.length?(t.billboard.image=W(o,e.length,64),t.billboard.width=48,t.billboard.height=48):(t.billboard.image=W(n,e.length,64),t.billboard.width=40,t.billboard.height=40)})})},W=function(e,t,r){var i=document.createElement("canvas"),n=(i.width=r,i.height=r,i.getContext("2d"));return new s.Resource.fetchImage(e).then(function(e){try{n.drawImage(e,0,0)}catch(e){console.log(e)}return n.fillStyle=s.Color.WHITE.toCssColorString(),n.font="bold 20px Microsoft YaHei",n.textAlign="center",n.textBaseline="middle",n.fillText(t,r/2,r/2),i})},z=function(e,t){var r=new s.ScreenSpaceEventHandler(e.scene.canvas),i=null,n=null;return r.setInputAction(function(r){var o;(r=e.scene.pick(r.endPosition))&&r.id?(o=r.id,n!==o&&(i&&clearTimeout(i),n&&n.billboard&&n._originalImage&&(n.billboard.image=n._originalImage,delete n._originalImage),n=o,e.scene.canvas.style.cursor="pointer",i=setTimeout(function(){o.billboard&&o.hoverImage&&(o._originalImage=o.billboard.image,o.billboard.image=o.hoverImage),t&&t(o)},300))):(i&&clearTimeout(i),n&&n.billboard&&n._originalImage&&(n.billboard.image=n._originalImage,delete n._originalImage),e.scene.canvas.style.cursor="default",n=null)},s.ScreenSpaceEventType.MOUSE_MOVE),function(){r.destroy(),i&&clearTimeout(i)}},U=function(){return 1};let Y={tools:o,cesiumHooks:a};return n.default}});
|
|
1
|
+
var process;void 0===process&&(process={platform:"browser",env:{}}),((e,t)=>{"object"==typeof exports&&"object"==typeof module?module.exports=t(require("cesium")):"function"==typeof define&&define.amd?define(["cesium"],t):"object"==typeof exports?exports["cc-tools-utils"]=t(require("cesium")):e["cc-tools-utils"]=t(e.Cesium)})(this,e=>{{var t={50(t){t.exports=e}},r={};function i(e){var n=r[e];return void 0!==n||(n=r[e]={exports:{}},t[e](n,n.exports,i)),n.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={},o=(i.d(n,{default:()=>Y}),{}),a=(i.r(o),i.d(o,{debounce:()=>l,throttle:()=>c}),{}),l=(i.r(a),i.d(a,{DEFAULT_HEIGHT:()=>b,DEFAULT_POSITION:()=>v,MODEL_DISPLAY_DISTANCE:()=>y,add3DModel:()=>k,addEquatorialLine:()=>_,addHover:()=>z,addLine:()=>j,addPointer:()=>V,airRouteFn:()=>N,backToChina:()=>D,cameraAnimation:()=>H,cc:()=>U,combineIconAndLabel:()=>W,divergingWaves:()=>A,followModel:()=>L,getHeading:()=>E,getPitch:()=>O,getRhumbBearing:()=>T,initCesium:()=>x,initCluster:()=>B,initEvents:()=>F,isArrayEqual:()=>C,setCesiumAccessToken:()=>w,toCesiumColor:()=>I,toCesiumPosition:()=>M,transformCartesian3ToWGS84:()=>P,updataModelPosition:()=>S}),function(e,t){if("function"!=typeof t)throw new Error("debounce的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("debounce的第一个参数必须是非负数");var r=null;return function(){var i=arguments,n=this;r&&clearTimeout(r),r=setTimeout(function(){t.apply(n,i),r=null},e)}}),c=function(e,t){if("function"!=typeof t)throw new Error("throttle的第二个参数必须是函数");if("number"!=typeof e||e<0)throw new Error("throttle的第一个参数必须是非负数");var r=!1;return function(){r||(r=!0,t.apply(this,arguments),setTimeout(function(){r=!1},e))}},s=i(50);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){var r,i=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,r)),i}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){var i,n;i=e,n=r[t],(t=(e=>(e=(e=>{if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0===t)return String(e);if("object"!=u(t=t.call(e,"string")))return t;throw new TypeError("@@toPrimitive must return a primitive value.")})(e),"symbol"==u(e)?e:e+""))(t))in i?Object.defineProperty(i,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):i[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e){return(e=>{if(Array.isArray(e))return m(e)})(e)||(e=>{if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)})(e)||h(e)||(()=>{throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function p(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((e,t)=>{var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i,n,o,a,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(i=o.call(r)).done)&&(l.push(i.value),l.length!==t);c=!0);}catch(e){s=!0,n=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw n}}return l}})(e,t)||h(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function h(e,t){var r;if(e)return"string"==typeof e?m(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}var b=25e6,v=[109,35.5,b],y=5e6,w=function(e){e&&"string"==typeof e?s.Ion.defaultAccessToken=e:console.warn("setCesiumAccessToken: token必须是非空字符串")};function C(e,t){e=e.slice().sort();var r=t.slice().sort();return e.length===r.length&&e.every(function(e,t){return e===r[t]})}var E=function(e,t){var r=s.Transforms.eastNorthUpToFixedFrame(e);return t=s.Cartesian3.subtract(t,e,new s.Cartesian3),e=s.Matrix4.multiplyByPointAsVector(s.Matrix4.inverse(r,new s.Matrix4),t,new s.Cartesian3),r=s.Cartesian3.normalize(e,new s.Cartesian3),t=Math.atan2(r.y,r.x)-s.Math.PI_OVER_TWO,s.Math.TWO_PI-s.Math.zeroToTwoPi(t)},T=function(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("getRhumbBearing: 参数必须是数组");if(e.length<2||t.length<2)throw new Error("getRhumbBearing: 参数数组至少需要两个元素[经度, 纬度]");var r=(e=p(e,2))[0],i=(e=e[1],(t=p(t,2))[0]);return t=t[1],e=s.Math.toRadians(e),t=s.Math.toRadians(t),i=s.Math.toRadians(i-r),r=Math.log(Math.tan(t/2+Math.PI/4)/Math.tan(e/2+Math.PI/4)),t=Math.atan2(i,r),(s.Math.toDegrees(t)+360)%360},O=function(e,t){var r=s.Transforms.eastNorthUpToFixedFrame(e);return t=s.Cartesian3.subtract(t,e,new s.Cartesian3),e=s.Matrix4.multiplyByPointAsVector(s.Matrix4.inverse(r,r),t,t),s.Cartesian3.normalize(e,e),s.Math.PI_OVER_TWO-s.Math.acosClamped(e.z)},S=function(e,t){var r=t.model,i=t.targetPosition,n=void 0===(t=t.totalDuration)?2:t;e.clock.onTick.addEventListener(function(e){var t,o=e.currentTime.secondsOfDay;o<=n&&(t=new s.Cartesian3,s.Cartesian3.lerp(r.position.getValue(e.currentTime),i,o/n,t),r.position.setValue(t))})},P=function(e){return e=s.Ellipsoid.WGS84.cartesianToCartographic(e),[s.Math.toDegrees(e.longitude),s.Math.toDegrees(e.latitude),e.height]},I=function(e){if(!e||"string"!=typeof e)return console.warn("toCesiumColor: color必须是字符串,使用默认颜色"),s.Color.WHITE;try{return s.Color.fromCssColorString(e)}catch(t){return console.warn("toCesiumColor: 无效的颜色值 ".concat(e,",使用默认颜色")),s.Color.WHITE}},M=function(e){var t;if(!Array.isArray(e))throw new Error("toCesiumPosition: position必须是数组");if(e.length<2)throw new Error("toCesiumPosition: position数组至少需要两个元素[经度, 纬度]");if(e.some(function(e){return"number"!=typeof e||isNaN(e)}))throw new Error("toCesiumPosition: position数组元素必须是有效数字");return(t=s.Cartesian3).fromDegrees.apply(t,g(e))},D=function(e,t,r){if(!e)throw new Error("backToChina: viewer参数是必需的");e.camera.flyTo({destination:M(v),duration:r||1.5,complete:function(){t&&t()}})},x=function(e,t){var r;if(e)return r=new s.Viewer(e,{contextOptions:{webgl:{alpha:!0,powerPreference:"high-performance"}},infoBox:!1,timeline:!1,geocoder:!1,homeButton:!1,sceneModePicker:!0,baseLayerPicker:!1,navigationHelpButton:!1,animation:!1,selectionIndicator:!1}),t&&setTimeout(function(){console.log("执行回调函数"),t(r)},0),{viewer:r};throw new Error("initCesium: boxID参数是必需的")},A=function(e){var t=void 0===(t=(c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).defaultPosition)?[120.38017292236532,31.480874872499374]:t,r=void 0===(l=c.r)?0:l,i=void 0===(l=c.r2)?0:l,n=void 0===(l=c.step)?2e3:l,o=void 0===(l=c.max)?8e4:l,a=void 0===(l=c.speed)?1:l,l=void 0===(l=c.defaultColor)?"#ff0000":l,c=void 0===(c=c.id)?"":c;if(!s.defined(e))throw new Error("divergingWaves: viewer参数是必需的");if(!Array.isArray(t)||t.length<2)throw new Error("divergingWaves: defaultPosition必须是有效的坐标数组");return e.entities.add({id:c,position:M(t),ellipse:{semiMinorAxis:new s.CallbackProperty(function(){return r<o?r+=n*a:r=0},!1),semiMajorAxis:new s.CallbackProperty(function(){return i<o?i+=n*a:i=0},!1),height:0,material:I(l),outline:!1}})},_=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#DC143C",r=[[180,0,1e5],[60,0,1e5],[-60,0,1e5],[-180,0,1e5]].reduce(function(e,t){return e.concat(t)},[]);e.entities.add({id:"赤道线",polyline:{positions:s.Cartesian3.fromDegreesArrayHeights(r),width:5,material:I(t)}})},N=function(e){function t(){var e=n,t=e._times;return t.map(function(r,i){var n=P(e.getValue(r)).slice(0,2),a=t[i+1]?P(e.getValue(t[i+1])).slice(0,2):null;n=a?-s.Math.toRadians(T(n,a)):o.getValue(t[i-1]),o.addSample(r,n)}),o}var r=e.clock,i={from:[102.5,30,1e6],to:[150.5,-33,1e6],last:15,stopFlag:!1},n=new s.SampledProperty(s.Cartesian3),o=new s.SampledProperty(s.Rotation),a=r.currentTime.clone(),l=s.JulianDate.addMinutes(a,i.last,new s.JulianDate),c=(n.addSample(r.currentTime,M(i.from)),r=Array.from({length:i.last-1},function(e,t){return s.JulianDate.addMinutes(a,t+1,new s.JulianDate)}),(i.to[0]-i.from[0])/i.last),u=(i.to[1]-i.from[1])/i.last,d=Array.from({length:i.last-1},function(e,t){return M([i.from[0]+(t+1)*c,i.from[1]+(t+1)*u,i.from[2]])}),f=[i.from].concat(g(d.map(function(e){return P(e)})),[i.to]),h=(e.entities.add({id:"添加航班连线",labelVisible:!0,polyline:{positions:s.Cartesian3.fromDegreesArrayHeights(f.flat(1/0)),width:2,material:new s.PolylineDashMaterialProperty({color:I("#8A2BE2")}),loop:!0}}),n.addSamples(r,d),n.addSample(l,M(i.to)),e.entities.add({id:"空中客机",position:n,usePlain:!0,setRotation:!0,label:{text:new s.CallbackProperty(function(e){var t;return n.getValue(e)?(t=(e=p(P(n.getValue(e)),2))[0],e=e[1],"经度:".concat(t.toFixed(2),"\n纬度:").concat(e.toFixed(2))):""},!1),font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,backgroundColor:new s.Color(.165,.165,.165,.5),fillColor:s.Color.fromCssColorString("#59cfb5"),pixelOffset:new s.Cartesian2(-20,-40),horizontalOrigin:s.HorizontalOrigin.LEFT,verticalOrigin:s.VerticalOrigin.CENTER},billboard:{width:36,height:36,image:"/plain.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,rotation:t()},orientation:n.constructor===s.Cartesian3?null:new s.VelocityOrientationProperty(n),createRotationSampler:t()}));e.entities.add({id:"点位起点",point:{},position:M(i.from),billboard:{width:20,height:25,image:"/location.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.entities.add({id:"点位终点",point:{},position:M(i.to),billboard:{width:20,height:25,image:"/location.svg",heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),e.scene.postRender.addEventListener(function(t,r){var i;i=h.position.getValue(r),r=h.orientation.getValue(r),R({position:i,airPlan:h,orientation:r,allHeight:1e6},e)})},R=function(e,t){var r,i=e.position;e=e.allHeight,i&&(r=(i=g(P(i)))[0],r=M([r,i[1],i[2]]),i=s.Cartographic.fromCartesian(r),r=s.Math.toDegrees(i.longitude),i=s.Math.toDegrees(i.latitude),r=s.Cartesian3.fromDegrees(r,i),t.camera.lookAt(r,new s.Cartesian3(0,0,1.3*e)))},H=function(e,t,r){e.camera.flyTo({destination:(e=s.Cartesian3).fromDegrees.apply(e,g(t)),duration:2,orientation:f({},r)})},V=function(e){var t=(p=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).position,r=p.pointColor,i=p.pointerSize,n=p.id,o=void 0===(o=p.label)?{}:o,a=p.billboard,l=void 0===(l=p.nearScale)?1:l,c=void 0===(c=p.farScale)?.85:c,u=void 0===(u=p.nearDistance)?1e3:u,d=void 0===(d=p.farDistance)?4e8:d,p=p.hoverImage;if(!e)throw new Error("addPointer: viewer参数是必需的");if(!t)throw new Error("addPointer: position参数是必需的");if(n={id:n,position:M(g(t)),usePlain:!0,hoverImage:p||""},r&&""!==r.trim()&&0<i)try{n.point={pixelSize:i,color:I(r)}}catch(e){console.warn("创建 point 失败:",e)}return o&&(n.label=f({font:"12px Helvetica Neue",scale:1,outlineWidth:1,showBackground:!0,horizontalOrigin:s.HorizontalOrigin.LEFT,verticalOrigin:s.VerticalOrigin.CENTER,scaleByDistance:new s.NearFarScalar(u,1,d,.2)},o)),a&&(n.billboard=f({heightReference:s.HeightReference.NONE,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new s.NearFarScalar(u,l,d,c)},a)),e.entities.add(n)},j=function(e){e.entities.add({polyline:{width:10,material:s.Color.GREEN}})},k=function(e,t,r){t=e.entities.add({position:t,name:"飞船一号",model:{uri:"./airship.glb"}}),e.flyTo(t)},F=function(e){var t,r=e.viewer,i=e.scene,n=e.entities,o=((r.cesiumWidget.screenSpaceEventHandler.removeInputAction(s.ScreenSpaceEventType.LEFT_DOUBLE_CLICK),n.collectionChanged.addEventListener(function(e,r,i){C(t,e.values.map(function(e){return e.id}))||(t=n.values.map(function(e){return e.id}))}),e=new s.ScreenSpaceEventHandler(i.canvas)).setInputAction(function(e){return o(e,s.ScreenSpaceEventType.LEFT_CLICK)},s.ScreenSpaceEventType.LEFT_CLICK),function(e,t){var n=s.Math.toDegrees(r.camera.heading),o=s.Math.toDegrees(r.camera.pitch),a=s.Math.toDegrees(r.camera.roll),l=r.camera.positionCartographic,c=s.Math.toDegrees(l.longitude),u=s.Math.toDegrees(l.latitude);l=l.height,(u=(console.log("位置: [".concat(c,", ").concat(u,", ").concat(l,"]")),console.log("角度: { heading: ".concat(n,", pitch: ").concat(o,", roll: ").concat(a," }")),c=i.pick(e.position)||{id:void 0,primitive:void 0}).id)&&console.log(" 点击的模型 :",u)}),a=s.Ellipsoid.WGS84;return e.setInputAction(function(e){(e=r.camera.pickEllipsoid(e.endPosition,a))&&(e=r.scene.globe.ellipsoid.cartesianToCartographic(e),s.Math.toDegrees(e.latitude).toFixed(4),s.Math.toDegrees(e.longitude).toFixed(4),(r.camera.positionCartographic.height/1e3).toFixed(2))},s.ScreenSpaceEventType.MOUSE_MOVE),t},L=function(e,t){var r=t.targetModel,i=t.selfModel,n=t.startPosition,o=(t=s.JulianDate.now(),r._position.getValue(t));i._position.getValue(t),r._position=new s.CallbackProperty(function(){return o.x+=100,o},!1),i._posistion=new s.CallbackProperty(function(){return s.Cartesian3.midpoint(M(n),o,new s.Cartesian3)},!1),i._orientation=new s.CallbackProperty(function(){var e=M(n),t=E(e,r=o),r=O(e,r),i=new s.HeadingPitchRoll(s.Math.toRadians(90),s.Math.toRadians(90),s.Math.toRadians(0));return i.pitch-=r,i.heading+=t,s.Transforms.headingPitchRollQuaternion(e,i)},!1),i._cylinder.length=new s.CallbackProperty(function(){var e=M(n);return s.Cartesian3.distance(e,o)},!1),e.scene.postRender.addEventListener(function(){})},B=function(e,t){var r=t.source,i=t.image,n=(t=p(t.imgs,4))[0],o=t[1],a=t[2],l=t[3];(new s.GeoJsonDataSource).load(r).then(function(t){e.dataSources.add(t),t.clustering.enabled=!0,t.clustering.pixelRange=60,t.clustering.minimumClusterSize=2,t.entities.values.forEach(function(e){console.log(" 每一项entity :",e),e.position._value.z+=50,e.billboard={image:i,width:32,height:32},e.label={text:"POI",font:"bold 15px Microsoft YaHei",verticalOrigin:s.VerticalOrigin.CENTER,horizontalOrigin:s.HorizontalOrigin.LEFT,pixelOffset:new s.Cartesian2(15,0)}}),t.clustering.clusterEvent.addEventListener(function(e,t){t.label.show=!1,t.billboard.show=!0,t.billboard.verticalOrigin=s.VerticalOrigin.BOTTOM,20<=e.length?(t.billboard.image=W(l,e.length,64),t.billboard.width=72,t.billboard.height=72):12<=e.length?(t.billboard.image=W(a,e.length,64),t.billboard.width=56,t.billboard.height=56):8<=e.length?(t.billboard.image=W(o,e.length,64),t.billboard.width=48,t.billboard.height=48):(t.billboard.image=W(n,e.length,64),t.billboard.width=40,t.billboard.height=40)})})},W=function(e,t,r){var i=document.createElement("canvas"),n=(i.width=r,i.height=r,i.getContext("2d"));return new s.Resource.fetchImage(e).then(function(e){try{n.drawImage(e,0,0)}catch(e){console.log(e)}return n.fillStyle=s.Color.WHITE.toCssColorString(),n.font="bold 20px Microsoft YaHei",n.textAlign="center",n.textBaseline="middle",n.fillText(t,r/2,r/2),i})},z=function(e,t){var r=new s.ScreenSpaceEventHandler(e.scene.canvas),i=null,n=null;return r.setInputAction(function(r){var o;(r=e.scene.pick(r.endPosition))&&r.id?(o=r.id,n!==o&&(i&&clearTimeout(i),n&&n.billboard&&n._originalImage&&(n.billboard.image=n._originalImage,delete n._originalImage),n=o,e.scene.canvas.style.cursor="pointer",i=setTimeout(function(){o.billboard&&o.hoverImage&&(o._originalImage=o.billboard.image,o.billboard.image=o.hoverImage),t&&t(o)},300))):(i&&clearTimeout(i),n&&n.billboard&&n._originalImage&&(n.billboard.image=n._originalImage,delete n._originalImage),e.scene.canvas.style.cursor="default",n=null)},s.ScreenSpaceEventType.MOUSE_MOVE),function(){r.destroy(),i&&clearTimeout(i)}},U=function(){return 1};let Y={tools:o,cesiumHooks:a};return n.default}});
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-tools-utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Cesium工具库,包含常用的Cesium hooks和工具函数",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.esm.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
7
8
|
"scripts": {
|
|
8
9
|
"type-check": "false",
|
|
@@ -26,13 +27,14 @@
|
|
|
26
27
|
"README.md",
|
|
27
28
|
"LICENSE",
|
|
28
29
|
"vue-config-helper.js",
|
|
30
|
+
"vite-config-helper.js",
|
|
29
31
|
"CONSUMER_PROJECT_CONFIG.md"
|
|
30
32
|
],
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"cesium": ">=1.100.0",
|
|
35
|
+
"vue": ">=3.0.0"
|
|
36
|
+
},
|
|
31
37
|
"devDependencies": {
|
|
32
|
-
"@vue/compiler-sfc": "^3.5.11",
|
|
33
|
-
"css-loader": "^7.1.2",
|
|
34
|
-
"style-loader": "^4.0.0",
|
|
35
|
-
"vue-loader": "^17.4.2",
|
|
36
38
|
"@babel/core": "^7.18.0",
|
|
37
39
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
|
38
40
|
"@babel/plugin-proposal-optional-chaining": "^7.17.12",
|
|
@@ -40,7 +42,6 @@
|
|
|
40
42
|
"@types/node": "^22.7.5",
|
|
41
43
|
"babel-loader": "^8.2.5",
|
|
42
44
|
"clean-webpack-plugin": "^4.0.0",
|
|
43
|
-
"process": "^0.11.10",
|
|
44
45
|
"ts-loader": "^9.2.6",
|
|
45
46
|
"typescript": "^4.5.4",
|
|
46
47
|
"webpack": "^5.65.0",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cc-tools-utils 的 Vite 配置辅助工具
|
|
3
|
+
*
|
|
4
|
+
* 使用方法:
|
|
5
|
+
* 在消费项目的 vite.config.js 中:
|
|
6
|
+
*
|
|
7
|
+
* import { defineConfig } from 'vite'
|
|
8
|
+
* import ccToolsViteConfig from 'cc-tools-utils/vite-config-helper'
|
|
9
|
+
*
|
|
10
|
+
* export default defineConfig({
|
|
11
|
+
* ...ccToolsViteConfig,
|
|
12
|
+
* // 你的其他配置
|
|
13
|
+
* })
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export default {
|
|
17
|
+
define: {
|
|
18
|
+
// 为浏览器环境定义 process,解决 cesium 依赖的 path 模块报错
|
|
19
|
+
"process.platform": JSON.stringify("browser"),
|
|
20
|
+
"process.env": JSON.stringify({}),
|
|
21
|
+
},
|
|
22
|
+
optimizeDeps: {
|
|
23
|
+
// 排除 cesium 预构建,避免 Node.js 模块兼容问题
|
|
24
|
+
exclude: ["cesium", "cc-tools-utils"],
|
|
25
|
+
},
|
|
26
|
+
resolve: {
|
|
27
|
+
alias: {
|
|
28
|
+
// 如果需要,可以添加 cesium 别名
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|