У меня были большие трудности с попыткой добиться, чтобы булавка карты постоянно хорошо отображалась на полигонах, высота которых выдавлена. В моем приложении я экструдирую высоту зданий на основе произвольного значения.
Позже, после их выбора, я добавляю рекламный щит с собственным изображением булавки на карте.
//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-виде.
Есть ли какие-либо другие факторы, которые я должен учитывать при попытке добиться положения для этих булавок, которое никогда не блокируется зданиями разной высоты? Я попытался установить значение смещения динамически в зависимости от высоты здания. Возможно, я поиграю с этим еще немного в то же время.
Скриншоты:
Cesium.VerticalOrigin.BOTTOM
попробуйте изменить фактическое положение булавки на высоту здания. По сути, расположите штифт в центре крыши здания, а не на первом этаже. Отключите смещение глаза, но сохраните VerticalOrigin.Bottom. - person emackey   schedule 10.11.2016