You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * @Author: Caven
  3. * @Date: 2020-01-07 09:00:32
  4. * @Last Modified by: Caven
  5. * @Last Modified time: 2020-01-31 13:51:12
  6. */
  7. import Cesium from '@/namespace'
  8. DC.T = class {
  9. /**
  10. *
  11. * @param {*} cartesian
  12. * 卡迪尔坐标转84坐标
  13. */
  14. static transformCartesianToWSG84(cartesian) {
  15. if (cartesian) {
  16. let ellipsoid = Cesium.Ellipsoid.WGS84
  17. let cartographic = ellipsoid.cartesianToCartographic(cartesian)
  18. return new DC.Position(
  19. Cesium.Math.toDegrees(cartographic.longitude),
  20. Cesium.Math.toDegrees(cartographic.latitude),
  21. cartographic.height
  22. )
  23. }
  24. return new DC.Position(0, 0)
  25. }
  26. /**
  27. *
  28. * @param {*} position
  29. * 84坐标转卡迪尔坐标
  30. */
  31. static transformWSG84ToCartesian(position) {
  32. return position
  33. ? Cesium.Cartesian3.fromDegrees(position.lng, position.lat, position.alt, Cesium.Ellipsoid.WGS84)
  34. : Cesium.Cartesian3.ZERO
  35. }
  36. /**
  37. *
  38. * @param {*} position
  39. * 84坐标转制图坐标
  40. */
  41. static transformWSG84ToCartographic(position) {
  42. return position
  43. ? Cesium.Cartographic.fromDegrees(position.lng, position.lat, position.alt)
  44. : Cesium.Cartographic.ZERO
  45. }
  46. /**
  47. *
  48. * @param {*} cartesianArr
  49. * 卡迪尔坐标数组转84坐标数组
  50. */
  51. static transformCartesianArrayToWSG84Array(cartesianArr) {
  52. return cartesianArr ? cartesianArr.map(item => DC.T.transformCartesianToWSG84(item)) : []
  53. }
  54. /**
  55. *
  56. * @param {*} WSG84Arr
  57. * 84坐标数组转卡迪尔坐标数组
  58. */
  59. static transformWSG84ArrayToCartesianArray(WSG84Arr) {
  60. return WSG84Arr ? WSG84Arr.map(item => DC.T.transformWSG84ToCartesian(item)) : []
  61. }
  62. static transformWindowCoordToWSG84(position, viewer) {}
  63. static transformWSG84ToWindowCoord(position, viewer) {}
  64. static transformWSG84ToCanvasCoord(position) {}
  65. static transformCanvasCoordToWSG84(position) {}
  66. }