Cesium如何改变HomeButton(首页)的默认位置?
网上一些博客提到的一些方法是修改源代码:
Camera.DEFAULT_VIEW_RECTANGLE = Rectangle.fromDegrees(89.5, 20.4, 110.4, 61.2);//homebutton默认跳转位置
https://www.cnblogs.com/mazhenyu/p/8315842.html
上述博客提到的位置我没有找到,我使用的Cesium版本是1.4.5,位置是在: \Cesium-1.45\Source\Scene\Camera.js 256行左右。
实际上2楼的方法并不是一种好的方法,毕竟那是去修改源代码,目前我采用的方法是:
tileset = new Cesium.Cesium3DTileset({ url: tileset_url});
tileset.readyPromise.then(function(tileset) {
viewer.scene.primitives.add(tileset);
default_HeadingPitchRange = new Cesium.HeadingPitchRange(0.0, -0.5, tileset.boundingSphere.radius * 2.0);
viewer.zoomTo(tileset, default_HeadingPitchRange);
// overwrite homebutton
viewer.homeButton.viewModel.command.beforeExecute.addEventListener(function (e) {
e.cancel = true;
viewer.zoomTo(tileset, default_HeadingPitchRange);
});
}).otherwise(function(error) {
console.log(error);
});
注意看// overwrite homebutton
相当于我重载了homebutton点击之后的响应函数,比如我的三维地球空间中,有一个3D Tiles的目标,我让我的点击事件每次都聚焦这个目标。