首页 / 浏览问题 / 三维GIS / 问题详情
已经经纬度,如何何理设置setView位置和角度
55EXP 2022年05月27日
有一共1000+个点,如果setView将orientation的pitch设置为-90度是可以俯瞰每个点的。

但是,一旦想用其他视角观察,改变角度就会无法看到坐标上的点。

有什么好的办法来批量设置这些点的position和orientation

1个回答

您好,您这边这个点数据是什么样的数据呢?

我这边测试点数据在pitch设置不同的俯仰度都可以看到的。

能否提供一下这些点数据呢,我这边做一个测试。
4,151EXP 2022年05月27日
[
  {
    "SmX": 113.856624601817,
    "SmY": 22.4896312410507,
    "zh": "AK0+000"
  },
  {
    "SmX": 113.85624971655,
    "SmY": 22.4941338841132,
    "zh": "AK0+500"
  },
  {
    "SmX": 113.855945276139,
    "SmY": 22.4986402025348,
    "zh": "AK1+000"
  },
  {
    "SmX": 113.856624601817,
    "SmY": 22.4896312410507,
    "zh": "AK1+500"
  },
  {
    "SmX": 113.85624971655,
    "SmY": 22.4941338841132,
    "zh": "AK2+000"
  },
  {
    "SmX": 113.855945276139,
    "SmY": 22.4986402025348,
    "zh": "AK2+500"
  },
  {
    "SmX": 113.855640815123,
    "SmY": 22.5031465177596,
    "zh": "AK3+000"
  },
  {
    "SmX": 113.855336333495,
    "SmY": 22.507652829787,
    "zh": "AK3+500"
  },
  {
    "SmX": 113.854477295071,
    "SmY": 22.5121267894632,
    "zh": "AK4+000"
  },
  {
    "SmX": 113.851875532586,
    "SmY": 22.5154684174799,
    "zh": "AK4+500"
  },
  {
    "SmX": 113.848437090191,
    "SmY": 22.5186592585101,
    "zh": "AK5+000"
  },
  {
    "SmX": 113.844998489922,
    "SmY": 22.5218500239812,
    "zh": "AK5+500"
  },
  {
    "SmX": 113.841505435816,
    "SmY": 22.5249902066329,
    "zh": "AK6+000"
  },
  {
    "SmX": 113.837157277012,
    "SmY": 22.5269380470266,
    "zh": "AK6+500"
  },
  {
    "SmX": 113.832731672437,
    "SmY": 22.5288043450889,
    "zh": "AK7+000"
  },
  {
    "SmX": 113.828305949636,
    "SmY": 22.5306705203168,
    "zh": "AK7+500"
  },
  {
    "SmX": 113.8760065,
    "SmY": 22.44304958,
    "zh": "K1+500"
  },
  {
    "SmX": 113.8742491,
    "SmY": 22.44725893,
    "zh": "K2+000"
  },
  {
    "SmX": 113.8724917,
    "SmY": 22.45146825,
    "zh": "K2+500"
  },
  {
    "SmX": 113.8707341,
    "SmY": 22.45567756,
    "zh": "K3+000"
  },
  {
    "SmX": 113.8689764,
    "SmY": 22.45988684,
    "zh": "K3+500"
  },
  {
    "SmX": 113.8672186,
    "SmY": 22.4640961,
    "zh": "K4+000"
  },
  {
    "SmX": 113.8654607,
    "SmY": 22.46830533,
    "zh": "K4+500"
  },
  {
    "SmX": 113.8637027,
    "SmY": 22.47251455,
    "zh": "K5+000"
  },
  {
    "SmX": 113.8619446,
    "SmY": 22.47672374,
    "zh": "K5+500"
  },
  {
    "SmX": 113.8601864,
    "SmY": 22.48093292,
    "zh": "K6+000"
  },
  {
    "SmX": 113.858428,
    "SmY": 22.48514207,
    "zh": "K6+500"
  },
  {
    "SmX": 113.8566696,
    "SmY": 22.4893512,
    "zh": "K7+000"
  },
  {
    "SmX": 113.8549111,
    "SmY": 22.4935603,
    "zh": "K7+500"
  },
  {
    "SmX": 113.8531118,
    "SmY": 22.49775474,
    "zh": "K8+000"
  },
  {
    "SmX": 113.8499259,
    "SmY": 22.50110356,
    "zh": "K8+500"
  },
  {
    "SmX": 113.8465417,
    "SmY": 22.50434385,
    "zh": "K9+000"
  },
  {
    "SmX": 113.8431575,
    "SmY": 22.50758406,
    "zh": "K9+500"
  },
  {
    "SmX": 113.8397731,
    "SmY": 22.5108242,
    "zh": "K10+000"
  },
  {
    "SmX": 113.8363885,
    "SmY": 22.51406427,
    "zh": "K10+500"
  },
  {
    "SmX": 113.8330037,
    "SmY": 22.51730426,
    "zh": "K11+000"
  },
  {
    "SmX": 113.829715,
    "SmY": 22.52062691,
    "zh": "K11+500"
  },
  {
    "SmX": 113.8264986,
    "SmY": 22.5240118,
    "zh": "K12+000"
  },
  {
    "SmX": 113.823282,
    "SmY": 22.52739662,
    "zh": "K12+500"
  },
  {
    "SmX": 113.8200653,
    "SmY": 22.53078137,
    "zh": "K13+000"
  },
  {
    "SmX": 113.8168484,
    "SmY": 22.53416605,
    "zh": "K13+500"
  },
  {
    "SmX": 113.8136314,
    "SmY": 22.53755067,
    "zh": "K14+000"
  },
  {
    "SmX": 113.8104141,
    "SmY": 22.54093522,
    "zh": "K14+500"
  },
  {
    "SmX": 113.8071968,
    "SmY": 22.54431971,
    "zh": "K15+000"
  },
  {
    "SmX": 113.804142,
    "SmY": 22.54782563,
    "zh": "K15+500"
  },
  {
    "SmX": 113.8012747,
    "SmY": 22.55147164,
    "zh": "K16+000"
  },
  {
    "SmX": 113.7984072,
    "SmY": 22.55511758,
    "zh": "K16+500"
  },
  {
    "SmX": 113.7955396,
    "SmY": 22.55876348,
    "zh": "K17+000"
  },
  {
    "SmX": 113.7926719,
    "SmY": 22.56240932,
    "zh": "K17+500"
  },
  {
    "SmX": 113.7898039,
    "SmY": 22.56605511,
    "zh": "K18+000"
  },
  {
    "SmX": 113.7869359,
    "SmY": 22.56970084,
    "zh": "K18+500"
  },
  {
    "SmX": 113.7840677,
    "SmY": 22.57334652,
    "zh": "K19+000"
  },
  {
    "SmX": 113.7811993,
    "SmY": 22.57699214,
    "zh": "K19+500"
  },
  {
    "SmX": 113.7783308,
    "SmY": 22.58063771,
    "zh": "K20+000"
  },
  {
    "SmX": 113.7754621,
    "SmY": 22.58428323,
    "zh": "K20+500"
  },
  {
    "SmX": 113.7725933,
    "SmY": 22.58792869,
    "zh": "K21+000"
  },
  {
    "SmX": 113.7697816,
    "SmY": 22.59161192,
    "zh": "K21+500"
  }
]

选了一些数据发过去了,我看下您这边,setView或者flyTo的代码里position和orientation是怎么写得

感谢。
嗨,您好,什么时候方便了,能提供一下解决方案吗,感谢

  viewer.scene.camera.setView({
        destination : new Cesium.Cartesian3(x,y,z),
        orientation : {
            heading : heading,
            pitch : pitch,
            roll : roll
        }
    });

然后 flyTo的offset是可以设置偏移的,您可以将offset设置为当前相机视角的headingpitchroll。

我可能没说清:给定一系列的点坐标,如果setView中pitch是-90度,就是俯视没问题;想要修改这个角度斜着看,则画面中就看不到这个点了,此时应该如何对应修改setView中的数值。

您所说的看不见是指不在视野范围内?

如果是这样的话,和您的方位角应该也是有关系的,您可以通过变换方位角来使数据出现在可视方向。

另外,相机定位您默认的是飞到所选中的点的X,Y坐标。您也可以通过对相机定位点的X,Y坐标进行一定的计算,使相机能够看见所选的目标点

还有就是超图Cesium的API里没有offset

你好啊,我就是因为数据量太大了,要是只有几十个数据,我就穷举了。

我现在就是想通过给定的经纬度坐标来批量的做。

这个对X,Y的计算我应该怎么做啊
方便打电话,语音或者其他方式吗,你们着bbs太难用了
您私信我您的电话或者QQ,微信,联系方式均可。
该问题楼主想要实现的功能是,定位到目标点的同时可以看到目标点。这个功能除非是楼主所说的90度俯视,否则看不见的。

如果非要实现类似功能

1.如果角度可以固定的话,设置一个固定角度,修改定位点的X,Y坐标即可

2.如果角度不想固定的话,根据当前角度获取屏幕中心点,然后计算经纬度差值,直接计算反方向的中心点坐标。以该坐标作为相机坐标。
...