pick_cockpit_vector.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. let handler_cockpit = null;
  2. import store from '../../../store/store.js'
  3. export const init_handler = () => {
  4. if (handler_cockpit == null) {
  5. handler_cockpit = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
  6. }
  7. handler_cockpit.setInputAction(async event => {
  8. let pickObj = viewer.scene.pick(event.position);
  9. var position = viewer.scene.pickPosition(event.position);
  10. if (!position)//点击到地球之外
  11. return false;
  12. var cartographic = Cesium.Cartographic.fromCartesian(position);
  13. let longitude = Cesium.Math.toDegrees(cartographic.longitude);
  14. let latitude = Cesium.Math.toDegrees(cartographic.latitude);
  15. let height = cartographic.height;
  16. let heading = viewer.scene.camera.heading;
  17. let pitch = viewer.scene.camera.pitch;
  18. // that.addSceneFun()
  19. if (!position) {
  20. position = Cesium.Cartesian3.fromDegrees(0, 0, 0);
  21. }
  22. if (Cesium.defined(pickObj)) {
  23. let obj = {}
  24. let arr = [];
  25. if (pickObj.primitive instanceof Cesium.Primitive && pickObj.id.properties && pickObj.id.properties.type == '国有建设用地完成项目') {//点击primitive
  26. // primitive相关操作
  27. let propertyNames = pickObj.id.properties.propertyNames
  28. propertyNames.forEach((res) => {
  29. arr.push({
  30. "name": res,
  31. "value": pickObj.id.properties[res]._value,
  32. });
  33. })
  34. store.state.vectorData = arr;
  35. }
  36. handler_cockpit.destroy();
  37. handler_cockpit = null;
  38. } else {
  39. }
  40. }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
  41. }
  42. export const clear_data = () => {
  43. store.state.vectorData = [];
  44. }