FollowEntity在2d

时间:2015-11-24 19:27:51

标签: javascript cesium

我有一个工作解决方案,使用Cesium.Viewer.camera提供的pickEllipsoid()函数来计算视口的边界。它适用于2D和3D。拣货部分如下所示:

getLatLonFromPixel = function(viewer, x, y) {
       var pixel = new Cesium.Cartesian2(x, y);
       var ellipsoid = viewer.scene.globe.ellipsoid;
       var cartesian = viewer.camera.pickEllipsoid(pixel, ellipsoid);
       if (cartesian) {
           var cartographic = ellipsoid.cartesianToCartographic(cartesian);
           return {
               latitude: Cesium.Math.toDegrees(cartographic.latitude),
               longitude: Cesium.Math.toDegrees(cartographic.longitude)
           };
       }
       return null;
};

我最近使用Viewer.trackedEntity添加了实体跟踪,而设置了跟踪实体,边界在3D中正确计算,但不在2D中。

我正在谈论的被跟踪实体是Cesium Viewer类的trackedEntity属性。

我在添加控制台行时包含了一些计算边界。

3D with no entity being tracked:     3D with an entity being tracked:
north: 42.79154866747982,            north: 42.363594155001614,
east: -68.4164021205193,             east: -70.01866640806165,
south: 40.97543616484347,            south: 41.405727044270265,
west: -72.88803850857998             west: -71.78853254159573

2D with no entity being tracked:     2D with an entity being tracked:
north: 42.382604597019046,           north: 0.00024308806452135405,
east: -70.67532426625976,            east: 0.00044915764205976055,
south: 41.42473748628768,            south: -0.00024308806452135392,
west: -72.44519039979383             west: -0.0004491576420597605

我在跟踪实体时获得的2d值是没有意义的。我尝试过使用globe.pick(光线,场景),但这似乎不适用于2D地图。

任何人都知道我可能缺少什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

这看起来像是Cesium中的一个错误。我提交了issue #3242