地形裁剪是通过剔除裁剪面的组合空间范围内的片源实现
第一步:构建裁剪面,这里我们根据地理坐标的范围点实现裁剪面的创建
1)计算传入的点范围的顺序是逆时针还是顺时针 [isR=true]表示点的顺序是逆时针。
var x1 = polygon[0].longitude;
var y1 = polygon[0].latitude;
var x2 = polygon[1].longitude;
var y2 = polygon[1].latitude;
var x3 = polygon[2].longitude;
var y3 = polygon[2].latitude;
var dirRes = (x2 - x1) * (y3 - y2) - (y2 - y1) * (x3 - x2);
var isR = dirRes > 0;
逆时针则按照原本顺序存储点,否则从后往前依次存储点。
var points = [];
if (isR) {
for (var ii = 0; ii < polygon.length; ii++) {
points[ii] = Cesium.Cartesian3.fromDegrees(polygon[ii].longitude, polygon[ii].latitude);
}
} else {
var count = 0;
for (var ii = polygon.length - 1; ii >= 0; ii--) {
points[count] = Cesium.Cartesian3.fromDegrees(polygon[ii].longitude, polygon[ii].latitude);
count++;
}
}