Cesium开发:限制地图浏览范围

简介: Cesium开发:限制地图浏览范围

在二维地图的开发中,有maxbounds属性或者maxextent属性,能够将地图的浏览限制在一定的四至坐标范围中观看。
对比于二维地图里,三维地图多出来高度、旋转、观看角度等参数,在控制的时候,要比二维地图多控制一些东西。
Cesium中有设置观看最低、最高高度的API,能够在观看高度上进行控制,下边代码即是:

viewer.scene.screenSpaceCameraController.maximumZoomDistance =100000; 

 viewer.scene.screenSpaceCameraController.minimumZoomDistance = 10;

设置四至范围的API并没有找到,需要根据现有API进行进一步的开发。
思路是将浏览的范围控制在事先设定好的四至范围中,实时进行检测,超出范围后,让镜头退回到设定的范围中。
实时监测的函数,使用的是preRender,此事件执行的频率还是很高的:

viewer.scene.preRender.addEventListener(function() {
    //函数内容});

Cesium的镜头视野范围,开始时用的是computeViewRectangle,计算一个观看的视野范围,计算的结果是west,east,north,south4个范围参数;
let _viewRectangle = viewer.camera.computeViewRectangle();

再拿上述4个范围参数和设定的四至范围进行比对,超出范围的部分,使用设定的四至范围,最后,将camera的观看范围,强制跳回到观看视野中,防止超出。
不过,在这样的计算情况下,场景有一定的跳动,效果不太理想,后来,就把设定的四至范围扩大了一些,判断viewer.camera.position,将观看的坐标限定在四至的坐标中,超出范围的部分,使用设定的四至范围坐标,也是进行强制跳回,这样尽管在观看的范围有一定的误差,但是,整体的效果还是好了些。

相关文章
|
定位技术 API 网络架构
地图图层接入:从mapbox转向cesium
由于地图坐标系的不统一,地图图商提供的图层服务也各有特色,在图层对接的开发过程中常会遇到许多坑,从二维图层到三维图层,地图引擎mapbox再到cesium,本文将分享笔者在近期地图图层接入过程中总结的一些经验。
3171 10
|
23天前
|
JavaScript 搜索推荐 定位技术
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
|
5月前
|
JavaScript 前端开发 定位技术
uniapp中地图制作
uniapp中地图制作
36 0
|
10月前
|
定位技术 API
Cesium开发:常用地图事件
Cesium开发:常用地图事件
219 0
|
前端开发 JavaScript 定位技术
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
233 0
基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
|
定位技术 API
Leaflet中如何限制地图的拖动范围
本文讲解了在Leaflet中如何进行地图范围的控制,并通过代码的方式进行示例,并展示了最终效果。
571 0
Leaflet中如何限制地图的拖动范围
|
JSON 数据可视化 前端开发
带你入门three.js——从0到1实现一个3d可视化地图(二)
可视化地图——three.js实现 场景的搭建 我先不管地图不地图的,地图的这些形状肯定是放置到场景中的。跟着我的脚步一步一步去搭建一个场景。场景的搭建就照相机,渲染器。我用一个map类来表示代码如下: class chinaMap { constructor() { this.init() } init() { // 第一步新建一个场景 this.scene = new THREE.Scene() this.setCamera() this.setRenderer() } // 新建透视相机
带你入门three.js——从0到1实现一个3d可视化地图(二)
|
前端开发 数据可视化 JavaScript
带你入门three.js——从0到1实现一个3d可视化地图(一)
前言 终于到周末了,前几篇的文章一直给大家介绍2d,canvas 和svg的一些东西。7月份我打算输出3篇万字长文带大家系统地学习可视化表达的3种方式,svg、canvas、webgl。所以这是第一篇文章3d的。读完本篇文章,你可以学到什么 对于three.js 这个框架有一个简单的理解,可以入门下。 学习three中的Raycaster,主要是用鼠标来判断当前选择的是哪一个物体。 我用一个简单的实例 带大家用three实现简单的可视化地球案例 。 3d框架的选择——three.js 1.为什么选择three.js 官网对 「Threejs」 的介绍非常简单:“Javascript 3D l
带你入门three.js——从0到1实现一个3d可视化地图(一)
|
缓存 定位技术 开发工具
百度地图开发-与地图的交互功能 06
百度地图开发-与地图的交互功能 06
180 0
|
XML 数据采集 搜索推荐
网站地图有什么好处?sitemap地图怎么生成?
网站地图,又称站点地图,可以理解为包含网站中所有页面链接的容器,主要帮助搜索引擎快速抓取网站中的所有页面。很多新人可能对地图了解不够。今天网站地图目录网详细讲讲制作网站地图的好处,以及如何制作Sitemap地图。
网站地图有什么好处?sitemap地图怎么生成?