Создание пирамиды с основанием многоугольника в CZML
Я новичок в Цезии, CZML и javascript, я пытаюсь создать пирамиду с основанием многоугольника на земле. У меня есть широта и долгота, высота ее верхней точки, у меня есть угол с каждой стороны. Я не мог найти хороший метод для его создания. Есть ли способ, которым я могу создать его в файле CZML?
1 ответ
Я не уверен, что это можно сделать одним пакетом. Тем не менее, это, безусловно, можно сделать с помощью одного объекта czml. Перейдите на этот сайт: http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html
и вставьте код ниже. Это даст вам хорошую отправную точку. Вы можете изменить прозрачность, если не хотите, чтобы она была прозрачной. И вы можете удалить контур краев многоугольника, если не хотите, чтобы кто-нибудь видел, как вы построили пирамиду из нескольких многоугольников.
"Пирамида", которую я сделал для вас, является трехсторонней. Вы можете расширить это, чтобы включить столько сторон, сколько пожелаете.
var czml = [
{
"id" : "document",
"name" : "CZML Geometries: Polygon",
"version" : "1.0"
}, {
"id" : "orangePolygon",
"name" : "Orange polygon with per-position heights and outline",
"polygon" : {
"positions" : {
"cartographicDegrees" : [
-70.0, 35.0, 100000,
-72.0, 37.0, 0,
-68.0, 35.0, 0
]
},
"material" : {
"solidColor" : {
"color" : {
"rgba" : [255, 100, 0, 100]
}
}
},
"extrudedHeight" : 0,
"perPositionHeight" : true,
"outline" : true,
"outlineColor" : {
"rgba" : [0, 0, 0, 255]
}
}
},
{
"id" : "orangePolygon2",
"name" : "Orange polygon with per-position heights and outline",
"polygon" : {
"positions" : {
"cartographicDegrees" : [
-70.0, 35.0, 100000,
-70.0, 33.0, 0,
-68.0, 35.0, 0
]
},
"material" : {
"solidColor" : {
"color" : {
"rgba" : [255, 100, 0, 100]
}
}
},
"extrudedHeight" : 0,
"perPositionHeight" : true,
"outline" : true,
"outlineColor" : {
"rgba" : [0, 0, 0, 255]
}
}
},
{
"id" : "orangePolygon3",
"name" : "Orange polygon with per-position heights and outline",
"polygon" : {
"positions" : {
"cartographicDegrees" : [
-70.0, 35.0, 100000,
-70.0, 33.0, 0,
-72.0, 37.0, 0,
]
},
"material" : {
"solidColor" : {
"color" : {
"rgba" : [255, 100, 0, 100]
}
}
},
"extrudedHeight" : 0,
"perPositionHeight" : true,
"outline" : true,
"outlineColor" : {
"rgba" : [0, 0, 0, 255]
}
}
}
];
var viewer = new Cesium.Viewer('cesiumContainer');
var dataSource = Cesium.CzmlDataSource.load(czml);
viewer.dataSources.add(dataSource);
viewer.zoomTo(dataSource);