首页 > 其他分享 >cesium.js入门基础教程二 (影像和标注)

cesium.js入门基础教程二 (影像和标注)

时间:2023-12-13 13:46:10浏览次数:37  
标签:js Cesium services 基础教程 cesium new ImageryProvider 影像 加载

影像简介

Cesium加载大的虚拟地球默认是有影像的,如图:

默认使用的影像是 “Bing Maps Aerial”:

影像提供者 ImageryProvider

除了途中列出的一些影像,开发者可以通过Cesium中的ImagerProvider影像提供者类创建所需的影像,Cesium中提供了很多种ImageryProvider影像提供类(不包括抽象类ImageryProvider):

加载图层影像的方法

  • 在初始化viwer的时候添加
  • 通过viwer.imageryLayers.addImageryProvider方法添加

初始化时添加影像

在初始化Viewer时可在第二个参数Viewer.ConstructorOptions中添加imageryProvider属性并提供一个ImageryProvider对象:

const viewer = new Cesium.Viewer("cesiumContainer", {
  imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
  })
})

注意:使用这种方法添加影像图层只能添加一个

使用addImageryProvider方法添加

使用viewer.imageryLayers.addImageryProvider方法,顾名思义需要传入一个ImageryProvider对象:

const ArcGisImagery = viewer.imageryLayers.addImageryProvider(new Cesium.ArcGisMapServerImageryProvider({
  url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
}))

影像提供者示例

由于国外的影像地图服务往往拍摄生成的年份比较早,因此很多地区的影像和实际出入较大,所以推荐使用国内的影像服务

ArcGisMapServerImageryProvider

加载Arcgis影像服务的代码如下:

const viewer = new Cesium.Viewer("cesiumContainer", {
  imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
    url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
  })
})

加载后的效果如下:

BingMapsImageryProvider

加载Bing影像服务的代码,其中key属性需要在bing maps dev center中申请,按照页面提示申请即可:

viewer.imageryProvider = new Cesium.BingMapsImageryProvider({
  url: 'https://dev.virtualearth.net',
  key: 'xxx',
  mapStyle : Cesium.BingMapsStyle.AERIAL
})

加载后的效果如下:

其他地图服务加载方式基本与例子相同。

标签:js,Cesium,services,基础教程,cesium,new,ImageryProvider,影像,加载
From: https://www.cnblogs.com/sunyan97/p/17898835.html

相关文章

  • js中Array.from方法
    这个方法,主要用于将一个类似数组的东西变成为数组一.将一个字符串转化伪数组letstr='helloWord'letarr=Array.from(str)console.log(arr)//输出['h','e','l','l','o','W','o','r','......
  • js中数组map和集合map
    js中数组的map:使用情况:想要对一个数组进行操作,然后又不想改变原来的数组数据,还想基于原来数组的数据进行改造,那么可以使用map写法一:letarr=[1,2,3,4]letnewArr=arr.map(item=>{return++item})console.log(newArr,arr)//输出[2,3,4,5][1,2,3,4]letarr=[1......
  • js实现上传文件夹功能
    最近在研究上传文件夹功能,并上传到阿里云oss,研究了几天终于实现了。前端代码:添加“webkitdirectory”标签表示支持文件夹上传<inputtype='file'id="inputUploadDir"name="file"webkitdirectory>js代码部分$("#inputUploadDir").change(function(e){letfiles=t......
  • js上传文件夹的功能如何实现
    在JavaScript中无法直接上传整个文件夹,但可以通过以下步骤实现上传文件夹的功能:1.使用``标签来选择文件夹。该标签支持同时选择多个文件和文件夹。2.监听文件夹选择变化的事件,并获取所选择的文件和文件夹。constfileInput=document.querySelector('input[type="file"]');fil......
  • jsHTTP/HTML/浏览器
    1|前端基础1.1|HTTP/HTML/浏览器说一下http和https参考回答:https的SSL加密是在传输层实现的。(1)http和https的基本概念http:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏......
  • 汇编-js符号位SF=1则跳转(负数则跳转)
      .386.modelflat,stdcalloptioncasemap:none.stack4096IncludeIrvine32.incincludelibIrvine32.libExitProcessPROTO,dwExitCode:DWORD.data.codemainPROCoral,10000000b;让符号位SF=1jst1;js符号位S......
  • js 跳出多层循环(终止循环)
    1、thrownewError()优点:可以中断循环执行;适用于各种形式(for循环,forEach循环等)缺点:相当于强制抛错中断执行,不仅终止了循环,后续代码也不再执行废话不多说,上例子,找出【第一个爱吃芒果】的人:constarr=[{name:'张三',fruit:['苹果','香蕉']}......
  • [JavaScript] JS中如何跳出循环/结束遍历
    [JavaScript]JS中如何跳出循环/结束遍历直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。 序号方法breakcontinuereturnreturntruereturnfalse结论1for循环成功跳出本次循......
  • 几种简单的排序算法(js实现)
    排序是日常开发中经常用到的代码,下面是几种常见的排序算法:冒泡排序(BubbleSort)functionbubbleSort(arr){letlen=arr.length;for(leti=0;i<len-1;i++){for(letj=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){......
  • js29
    1、使用requests的get()函数访问必应网站20次,打印返回状态,text()内容,计算text属性和content属性所返回网页内容的长度。代码如下:importrequestsforiinrange(20):r=requests.get('https://cn.bing.com',verify=False)r.encoding="utf-8"print(r.status_code)......