铯 - 在具有extrusionHeight设置的多边形上放置广告牌/地图别针

时间:2016-11-10 14:47:17

标签: gis cesium

我试图让地图图钉在挤出高度的多边形上一直很好地展示,我遇到了很多困难。在我的应用程序中,我根据任意值挤出建筑物的高度。

稍后,在选择它们之后,我会添加一个广告牌,其中包含地图图钉的自定义图像。

//Get position of selected entity and add billboard at same position

var mPos = pCoords.positions[0];

var selectedPin = viewer.entities.add({

    name : 'selBoutique',
    position : mPos,
    billboard : {
        image : './img/marker.png',
        verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
        eyeOffset: new Cesium.Cartesian3(0, 4, 0)
    }

});

我将垂直原点设置为底部,以保持其显示一致,并且一直在尝试偏移,以便找到适用于3D视图中各种高度的建筑物的设置。

在尝试获得这些针脚的位置时,我是否应该考虑其他因素,而这些针脚从不被不同高度的建筑物阻挡?我试图根据建筑物的高度动态设置偏移值。也许在此期间我会更多地玩这个。

截图:

angled view screenshot

top view screnshot

1 个答案:

答案 0 :(得分:2)

根据建筑物的高度修改别针的实际位置。基本上,将销钉定位在建筑物屋顶的中心,而不是地面的底层。然后,关闭VerticalOrigin.BOTTOM,但保持#include <iostream> #include <conio.h> #include <math.h> using namespace std; int main () { float xstart = -2, xfinal = 2, h = 0.5; float t, y; cout << "X start = -2" << endl; cout << "X final = 2" << endl; cout << "step = 0.5" << endl << endl; for ( float x = xstart; x <= xfinal; x+= h) { t= sqrt(pow(sin(x),2)) / sqrt(x - 4); y= sqrt(2 * t + x); cout << x << " | " << t << " | " << y << endl; } cout << endl; } 设置。