Cesium入门(七):设置影像图层的覆盖范围

2023-05-16

本章介绍Cesium JS库的Rectangle类,并以GeoServer服务器为例演示了在加载EPSG:4326网格的瓦片地图时,通过设置rectangle参数来限定图层的覆盖范围。

主要包括以下内容:

  • Rectangle类
  • 设置rectangle参数

在Cesium入门(六):加载EPSG4326网格的瓦片地图章节中,通过创建一个WMTS ImageryProvider类,在设置了必要的参数后就可以访问GeoServer发布的地图瓦片服务了。但是,当浏览器请求图层有效覆盖范围之外的瓦片时就会报一系列的瓦片“列(或行)超出范围”的400错误。虽然这种情况并不影响图层的正确显示,但是浏览器去向服务器请求一个本来就不存在的瓦片,不仅浪费了大量的网络交互时间,更是让誓言消灭一切Bug的程序员们感觉不怎么完美,一个真正的程序员是绝对不能容忍程序执行过程中有任何一点的错误和警告出现的。那么,怎样才能让浏览器不对外发出无效的瓦片请求呢?

1 Rectangle

Cesium JS库中提供了一个Rectangle类,专门用来使用弧度来表示一个矩形的区域,一个Rectangle就代表着一个使用经度和纬度坐标定义的二维区域。

构造一个Rectangle需要定义矩形区域的四个边的经经纬度,依次为west、south、east和north共4个参数,单位都为弧度,取值范围为[-Pi, +Pi]。

通常条件下,人们更喜欢使用度而不是弧度来表示地理范围,此时就可使用Rectangle的另外一个静态函数fromDegrees(west, south, east, north)。

2 设置rectangle参数

ImageryProvider类有一个rectangle构造参数,用来表示些图层覆盖的范围。一般来说,只要不是覆盖整个地球表面的图层都应该设置这个rectangle参数。

(1)获取图层的区域参数

对于使用GeoServer发布的图层可以很容易地获得图层的边界。在GeoServer入门(一):发布第一个WMS图层文章中,我们知道,每一个在GeoServer服务器上发布的GeoTIFF图像必须包含自己的地理坐标,所以通过“图层编辑”页面,我们应该能够看到这个图层的边界坐标。

当然,也可以使用gdalinfo之类的应用程序来对这个GeoTIFF文件进行解析,从解析结果中也可以得到其边界坐标。

 如上图中显示出的是度分秒格式的坐标边界,实际使用时转换成度即可。

(2)构造Rectangl对象

第(1)步中获得的图层边界坐标全部都是以度为单位,所以在生成rectangle对象时可以使用Rectangle.fromDegrees(west, south, east, north)函数。有了rectangle对象之后只需将其赋值给ImageryProvider的rectangle成员即可。

主要代码如下:

    <script>
      let rectangle = new Cesium.Rectangle.fromDegrees(109.34, 34.75, 109.92, 35.16);

      let wmtsImageryProvider = new Cesium.WebMapTileServiceImageryProvider({
        url: '/map/gwc/service/wmts/rest/pucheng:satellite/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
        style: 'raster',
        tileMatrixSetID: 'EPSG:900913',
        rectangle: rectangle
      });
    </script>

(3)图层预览

在浏览器中预览图层,可以发现在“Web开发者工具”中再也不会出现那烦人的红色400错误了,所有的有效范围之外的瓦片请求再也不会发出来了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cesium入门(七):设置影像图层的覆盖范围 的相关文章

  • Cesium入门(二):Viewer控件参数与外观定制

    本章主要介绍Cesium Viewer控件的选项参数 xff0c 以及如何对Viewer的外观进行定制 主要包括以下内容 xff1a Viewer控件Viewer选项参数定制Viewer外观界面 1 Viewer控件 Viewer是构建Ce
  • [ Cesium ] 根据 TLE 生成 czml 的三种方式

    文章目录 一 使用 python tle2czml 库生成二 手动爬虫三 使用 python requests 库获取四 备注 一 使用 python tle2czml 库生成 span class token keyword import
  • Cesium标注实体【Entity】增、删、改、查

    实体实例将多种形式的可视化聚合到一个高级对象中 它们可以手动创建并添加到 Viewer entities 或由数据源生成 xff0c 例如 CzmlDataSource 和 GeoJsonDataSource 一 Entity 增加 方法一
  • 第52节:cesium 3DTiles模型特效+选中高亮(含源码+视频)

    结果示例 完整源码
  • Cesium加载天地图中文标注服务和谷歌影像服务

    Cesium加载天地图中文标注服务和谷歌影像服务 直接上代码 自从天地图使用token之后 之前写的Cesium添加天地图图层服务的就无法使用了 所以重新写一个可以使用的 直接上代码 关闭全球光照 默认为关闭 this viewer sce
  • 【Cesium入门】一、Cesium安装部署运行

    1 介绍 CesiumJS是一个用于Web上3D地图的JavaScript库 开发者通过Cesium 实现无插件的创建三维球 Cesium通过WebGL技术实现图形的硬件加速 并且跨平台 跨浏览器 2 Cesium项目下载 1 在官网下载压
  • Cesium 简介

    Cesium 简介 一 Cesium 是什么 Cesium 是一个开源 JavaScript 库 用于 3D 2D 2 5D 地图可视化 Cesium 由 AGI 公司计算机图形开发小组与 2011 年研发的 Cesium 一词来源于化学元
  • 基于Cesium的实景三维模型动态更新-以3Dtiles为例(一)

    一 简介 Cesium众所周知 是一个前端的三维框架 本项目利用Cesium平台来实现实景三维模型的动态更新 不认识Cesium的同学戳这里 cesium中文网 学习cesiumjs 的好地方 伐罗密 实景三维模型 概括来讲就是倾斜摄影三维
  • Cesium加载矢量数据探索——从geojson到矢量切片

    矢量数据由于包含确定的坐标信息 通常用于表达准确的空间位置实体 在cesium中 不支持对shp进行加载 而是需要对shp数据进行转换 一般cesium支持的shp格式如下 geojson topojson kml czml 通常来说 对于
  • VS Code断点调式Cesium

    1 在VS Code中安装Debugger for Firefox插件 2 下载安Firefox Developer Edition 3 创建launch json 编辑并保存launch json Use IntelliSense to
  • Cesium Token申请

    一 什么是Cesium ion Cesium ion是一个提供瓦片图和3D地理空间数据的平台 支持把数据添加到用户自己的应用程序中 二 为什么需要access token 使用Cesium ion需要申请access token 当用户将数
  • Cesium 之加载倾斜摄影3d模型(解决倾斜漂移问题)

    以Cesium3DTileset方式加载服务发布的倾斜摄影静态资源Json文件 参考如下 item url 倾斜摄影的json地址 tileset json let tileset window viewer scene primitive
  • cesium 实现中文搜索定位

    cesium 实现根据中文搜索定位 天了噜 修改一下哦 高德地图获取的经纬度需要转一下哦 它是由偏移的啦 不是标准gps坐标 有接口 自行翻阅API 思路 利用高德的中文定位搜索获取选中定位的经纬度 cesium进行3D锚点定位 准备 申请
  • Cesium教程(十九):Cesium粒子系统

    Cesium教程 十九 Cesium粒子系统 1 粒子系统 1 1 什么是粒子系统 Cesium粒子系统是一种模拟复杂物理效应的图形技术 是由小图像组成的集合 当他们在一起形成更复杂的 模糊 对象时 会形成火 烟 云或烟火等 1 2 初始粒
  • cesium解决报错“DeveloperError: _workerName must be defined for asynchronous geometry”

    文章目录 1 报错问题 2 解决方法 Cesium实战系列文章总目录 传送门 1 报错问题 在使用Primitive方式加载Geojson数据时 报错An error occurred while rendering Rendering h
  • vue+cesium汉化包

    把这个js放进你的项目里面然后调用就可以 我这个是vue项目 然后运用的是es6的导出语法 cesium 可视化部分的中文汉化 包含内容如下 1 汉化方式非从源码层面进行 而是外挂了一个插件执行 使用方便 但是汉化程度不深 只汉化了cesi
  • 04 Cesium—Cesium ion介绍

    文章中所有操作均是在 Cesium 1 91 版本下进行的 其它版本差异请自行适配 Cesium ion Cesium ion 是一个提供瓦片图和3D地理空间数据的平台 Cesium ion 支持把数据添加到用户自己的 CesiumJS 应
  • cesium设置token

    cesium使用需要token 1 登录cesium地址 https ion cesium com 没有账号的自己注册 注册流程 创建成功后 会显示刚创建的信息 然后选中后 右边即可看到token 复制即可使用 代码中使用方式 Cesium
  • Cesium教程 (3) 矢量切片mvt-imagery-provider加载

    Cesium教程 3 矢量切片mvt imagery provider加载 目录 0 矢量切片 1 开源项目 2 环境 3 代码 4 进阶 5 TODO 0 矢量切片 WMTS 加载最快 图片格式 样式固定 WMS 加载数量大则慢 但可以点
  • cesium加载影像的问题解决

    我用gdal把web墨卡托转为经纬度 再切分片时 发现对不上影像 经过两天排查 发现竟然是前端写错 viewer scene imageryLayers addImageryProvider new Cesium UrlTemplateIm

随机推荐

  • rsync --exclude或者--exclude-from的路径问题

    先开个头 xff0c 注意 的使用 假设有 my src dir a 把 my src dir复制到 my dst dir xff0c 结果 my dst dir my src dir a rsync a my src dir my dst
  • Sentry迁移:从一台机器到另一台机器

    搜了一下 xff0c 目前写部署的帖子很多 xff0c 但是没找到比较完善的迁移的帖子 xff0c 记一下自己的方法吧 思路 因为现在基本都是使用docker部署 xff0c 所以常规思路大概是docker容器的迁移 xff0c 但是现在s
  • Android studio 2.3.3+Dlib

    最近因为需要 xff0c 尝试着将Dlib移植到android上 android小白一枚 xff0c 做之前没接触过android xff0c 所以就用了别人说比较好的android studio 最新稳定版 xff08 windows下
  • 用verilog实现L293D 驱动板接口

    课程实验做了一个蓝牙智能小车 xff0c nexys4开发板 xff0c MIPSfpga xff08 一个在 FPGA 上实现的商业 MIPS 处理器软核 xff0c Imagination Technologies公司提供给高校免费使用
  • 斐讯k2p openwrt固件改双WAN口

    原理参考教你玩转K2P A1 A2 官改版VLAN 步骤 xff1a network配置 xff0c etc config network里把wan的ifname由原来的eth1改成eth1 2增加wan2 xff0c eth1 3dhcp
  • windows 10安装Anaconda后pip报SSL错解决

    问题 新装的系统 xff0c 安装anaconda python 61 3 7 后 pip install xxx pip is configured with locations that require TLS SSL however
  • JSP中文乱码问题终极解决方案

    在介绍方法之前我们首先应该清楚具体的问题有哪些 xff0c 笔者在本博客当中论述的 JSP 中文乱码问题有如下几个方面 xff1a 页面乱码 参数乱码 表单乱码 源文件乱码 下面来逐一解决其中的乱码问题 一 JSP 页面中文乱码 在 JSP
  • ubuntu lightdm test用户自动登陆

    1 编辑 etc lightdm lightdm conf d 50 myconfig conf 内容 SeatDefaults autologin user 61 test 注意此处是自己要登陆的用户名字
  • 猴小萌的博客开通啦

    多年痴迷计算机技术 xff0c 孜孜不倦地学习着计算机的一切 xff0c 享受着计算机带给我的乐趣和满足感 然而有一天 xff0c 突然发现我所获得的知识和问题的答案基本上全部都来自于网络 xff0c 却从来没有为社区奉献过 xff0c 上
  • Cesium入门(一):第一张Cesium页面

    本章主要讲述如何下载和使用Cesium xff0c 编写完成自己的第一张Cesium应用页面 主要从以下几个方面展开叙述 xff1a 下载和部署CesiumJS编写第一张Cesium页面 1 下载和部署CesiumJS CesiumJS是一
  • Cesium入门(二):Viewer控件参数与外观定制

    本章主要介绍Cesium Viewer控件的选项参数 xff0c 以及如何对Viewer的外观进行定制 主要包括以下内容 xff1a Viewer控件Viewer选项参数定制Viewer外观界面 1 Viewer控件 Viewer是构建Ce
  • Cesium入门(三):加载WMS地图服务

    本章介绍Cesium Viewer控件的是如何加载地图的 xff0c 并以GeoServer服务器为例演示了WMS服务的加载过程 主要包括以下内容 xff1a ImageryProvider加载GeoServer发布的WMS服务 在Cesi
  • Cesium入门(四):叠加显示多个图层

    本章介绍Cesium Viewer控件的imageryLayers容器 xff0c 了解添加和叠加显示多个图层的方法 主要包括以下内容 xff1a imageLayers图层容器添加多个图层 1 imageryLayers图层容器 imag
  • GeoServer入门(一):发布第一个WMS图层

    本章主要讲述如何下载和安装使用GeoServer服务器 xff0c 介绍了GeoServer的管理界面 xff0c 并演示了发布地理数据的简单流程 主要从以下几个方面展开叙述 xff1a 下载和安装GeoServerGeoServer管理界
  • FreeBSD内存交换文件的设置与自动加载

    本文主要讲述FreeBSD操作系统下内存交换文件的作用及其自动加载过程 xff0c 主要从以下几个方面展开叙述 xff1a 交换文件的设置交换文件的自动加载 交换文件是虚拟内存机制的重要组成部分 xff0c 在物理内存不够用时可以临时将不常
  • GeoServer入门(二):WMTS图层瓦片切割与调用

    本章主要讲述如何GeoServer进行图层瓦片切割与缓冲 xff0c 发布标准的WMTS服务 xff0c 并介绍了REST格式的调用参数 主要包含以下内容 xff1a 图层切片与缓冲WMTS服务调用 在GeoServer入门 xff08 一
  • Cesium入门(五):加载WMTS瓦片地图服务

    本章介绍Cesium JS库的WebMapTileServiceImageryProvider类 xff0c 并以GeoServer为例演示了在CesiumViewer控件中添加瓦片图层的方法 主要包括以下内容 xff1a WebMapTi
  • 深入学习Tomcat----自己动手写服务器(附服务器源码)

    相信大多 Web 开发者对 Tomcat 是非常熟悉的 xff0c 众所周知 Tomcat 是一款非常好用的开源 Servlet 容器 xff0c 您一定对这个最流行的 Servlet 容器充满好奇 xff0c 虽然它并不像一个黑盒子那样让
  • Cesium入门(六):加载EPSG4326网格的瓦片地图

    本章介绍Cesium JS库的TilingScheme类 xff0c 并以GeoServer服务器为例演示了加载EPSG 4326网络的瓦片地图 主要包括以下内容 xff1a TilingScheme添加EPSG 4326瓦片图层 在Ces
  • Cesium入门(七):设置影像图层的覆盖范围

    本章介绍Cesium JS库的Rectangle类 xff0c 并以GeoServer服务器为例演示了在加载EPSG 4326网格的瓦片地图时 xff0c 通过设置rectangle参数来限定图层的覆盖范围 主要包括以下内容 xff1a R