vue3+cesium 请问如何将后台返回的WGS84经纬度 在Ceium不转换直接显示出来?

2023-06-22 350 0

目前我用了Cesium.Cartesian3.fromDegrees 就会将后台返回的坐标给转换为cesium中的笛卡尔坐标系(X,Y,Z)来显示了,所以就导致地图上面显示的位置又偏差,请问大佬们,如何将返回的坐标点按照WGS84经纬度显示出来呢?

 // const positions = ref([
    //   // { longitude: 104.227155465, latitude: 30.571566765, },//中心点
    //   // { longitude: 104.22621696, latitude: 30.57299515 }, // 左上角
    //   // { longitude: 104.22809397, latitude: 30.57299515 }, // 右上角
    //   // { longitude: 104.22621696, latitude: 30.57013838 }, // 左下角 
    //   // { longitude: 104.22809397, latitude: 30.57013838 }, // 右下角
    // ])
    // viewer.value.entities.removeAll();
    // 添加点
    positions.value.forEach((position, index) => {
      let cartesian3 = Cesium.Cartesian3.fromDegrees(position.longitude, position.latitude)
      viewer.value.entities.add({
        position: cartesian3,
        point: {
          pixelSize: 10,
          color: Cesium.Color.RED,
          outlineColor: Cesium.Color.WHITE,
          outlineWidth: 1,
        },
        label: {
          // text: `点${index + 1}`,
          font: '14pt monospace',
          style: Cesium.LabelStyle.FILL_AND_OUTLINE,
          outlineWidth: 2,
          verticalOrigin: Cesium.VerticalOrigin.BOTTOM,//垂直位置
          pixelOffset: new Cesium.Cartesian2(0, -9), //偏移
        },
      });
    });

Cesium支持的地理坐标系WGS84和莫卡托,默认就是WGS84,不过Cesium渲染不是对地理坐标系进行渲染,所以需要将地理坐标系转换为空间坐标系,也就是Cartesian3,这个转换是不可少的,但是这个转换不会造成位置偏移,如果发生偏移那么检查下自己的代码是不是手动产生了偏移(在三维上有时候视角不同,看着位置也不同,另外是否开启深度检测,也会影响视觉上的效果)

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?