Cesium加载各类数据总结

接触到的加载数据类型:源地图、shp、Geojson、png、wms、地形底图

1、Cesium加载各类源地图(在线的影像服务)

#此类加载的本质在于 new Cesium.ImageryProvider()

Api defination:“Provides imagery to be displayed on the surface of an ellipsoid. This type describes an interface and is not intended to be instantiated directly.”

imagerProvider不能直接实例化,必须使用具体的接口

var viewer = new Cesium.Viewer("cesiumContainer",

{imageryProvider:new Cesium.加载数据方式{

url:加载数据类型}),

 其他控件设置

});

#加载在线影像服务的方式主要包括:

ArcGisMapserverImageryProvider - Arcgis地图服务

BingMapsImageryProvider - BIngMaps地图服务

createOpenStreetMapImageryProvider

createTileMapServiceImageryProvider -提供已发布的瓦片格式(provides tiled imagery as generated by MapTiler, GDAL2Tiles, etc.)

                     地图加载:TMS、GDAL2Tiles处理后的发布数据

GoogleEarthEnterpriseImageryProvider -Provides tiled imagery using the Google Earth Enterprise REST API

singleTileImageryProvider -单一瓦片加载方式

TileCoordinationImageryProvider - 常用于地形加载

UrlTemplateImageryProvider -url模版的影像服务加载,较为常用的方式,

                api中url : ‘https://cesiumjs.org/tilesets/imagery/naturalearthii/{z}/{x}/{reverseY}.jpg‘以及其他地图的api地址

WebMapServiceImageryProvider:Provides tiled imagery hosted by a Web Map Service (WMS) server.

                提供瓦片化的wms服务

WebMapTilesServiceImageryProvider:提供一种兼容性的瓦片wms服务

  

#追加地图服务:

var addlayer = viewer.scene.imagerlayers;Imagerylayers影像图层容器

var newmap = addlayer.addImageryProvider(new Cesium.UrlTemplateImageryProvider({url:地址},其他设置);

可以对newmap 设置透明度、亮度等:newmap.alpha(0透明,1不透明),newmap.brightness(>1增加亮度,<1降低亮度)

#追加个别影像

var specilaMap = addlayer.addImageryProvider(new Cesium.SingleTileImageryProvider(

                          {url:....png},

                          rectangle:cesium.rectangle.fromDegrees(111,31,113,33))//放置范围

#官方的ImageryProvider详细说明:

Cesium内置以下ImageryProvider:

2、加载shp主要将shp格式转换为可加载的格式Geojson,或者kml

处理数据可用方法:https://mapshaper.org/或者Geoserver

#直接加载

var pro = viewer.dataSources.add(Cesium.GeoJsonDataSource.load(“json地址”,

stroke:Cesium.Color.RED,

strokeWidth:5,

fill:Cesium.Color.RED.withAlpha(0.1)

fill:new Cesium.Color(0, 0, 0, 0)//设置纯透明后,必须点击到polygon边界才显示提示框

}));

#entity方式加载

var promise =Cesium.GeoJsonDataSource.load("json地址");

promise.then(function(dataSource){

viewer.dataSources.add(dataSource);

var entities = dataSource.entities.values;

for (let i = 0; i < entities.length; i++) {

let entity = entities[i];

entity.polygon.fill=false;//设置无填充后,必须点击到polygon边界才显示提示框

entity.polygon.outline = true;

entity.polygon.outlineColor = Cesium.Color.RED;

entity.polygon.width=5//无效,polygon.width不能超过1

}});

3、加载geoson同上

topojson、Geojson、普通json三种方式

4、加载图片 一般用于具体位置的放置 SingleTileImageryProvider接口

var mypic =new Cesium.SingleTileImageryProvider({

url:"图片地址",

rectangle:Cesium.Rectangle.fromDegrees(113,31,114,33) //放置样式有很多种,比如ellipse

});

 viewer.scene.imageryLayers.addImageryProvider(mypic);

//后续追加的一些设置

mypic.hasAlphaChannel=true;

mypic.defaultAlpha=0.5;  //初始化的图片透明度修改,此外还可以设置对比度,亮度

5、发布的wms

使用Geoserver发布,网上有很多教程如何使用,使用接口WebMapServiceImageryProvider

var wmsLayer = new Cesium.WebMapServiceImageryProvider({

url:"http://127.0.0.1:8083/geoserver/cesium/wms",

layers:"cesium:county",//Geoserver中的cesium组county层

fill:false,  //Cesium.Color.PINK.withAlpha(0.1),

parameters:{

service:"WMS",

format:"image/png",

transparent:true

}});

    viewer.scene.imageryLayers.add(wmsLayer);

6、

原文地址:https://www.cnblogs.com/xiaoguniang0204/p/11675253.html

时间: 2024-11-29 09:16:56

Cesium加载各类数据总结的相关文章

vue cesium 加载倾斜摄影数据并在上面添加自定义标注【转】

在main.js引入 import Cesium from 'cesium/Cesium'import '../node_modules/cesium/Build/Cesium/Widgets/widgets.css' Vue.prototype.Cesium = Cesium; <br>// 以下是组件内容<br><br><br><br><template>     <div class="cesium-wrap&q

cesium加载DEM数据

参考:https://www.jianshu.com/p/62d6f03f44e3 1.目前一般都是win7-64位系统,从tif数据转成terrain,最好在win7-32位系统上安装后做转换:尝试在win7-64位电脑上安装32位的python,arcmap被装坏掉 2.IIS上发布terrain数据 首先需要解决跨域问题,做cors配置: 其次需要在数据目录下放web.config,内容如下: <?xml version="1.0" encoding="UTF-8

ext combobox动态加载数据库数据

前台: var provinceStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: basePath + "/stationManage/station_getProvinceJSON.action" }), reader: new Ext.data.JsonReader( { root: "" }, ["PROVINCEID", "PROVINCENAME

JQuery跨域加载JSON数据或HTML。

前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $.ajax({ type: "get", async: false, url: "http://localhost:13964/getpage.ashx?callback=?",//服务端URL,该URL返回一段JS数据.如需返回HTML,只需把HTML组织成JSON即可

hive加载json数据解决方案

hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EXTERNAL table access_log (content string) row format delimited fields terminated by '\t' STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInpu

SQLLoader8(加载的数据中有换行符处理方法)

SQLLDR加载的数据中有换行符处理方法1.创建测试表: CREATE TABLE MANAGER( MGRNO NUMBER, MNAME VARCHAR2(30), JOB VARCHAR2(30), REMARK VARCHAR2(1000) ); 2.创建控制文件我们可以通过控制文件,在数据加载前处理remark列的数据,将用户指定的"\n"字符替换为chr(10),即标准换行符,创建控制文件如下: LOAD DATA INFILE 'D:\testSqlLoader\ldr_

WP8_GestureListener实现列表向下滑动加载新数据

利用GestureListener的OnDragCompleted事件,实现列表向下滑动时,加载新的数据: (不建议使用 Touch.FrameReported+=Touch_FrameReported; 此事件是全局的,如果没有注销事件,在离开页面后仍会得到响应,而这不是希望的效果) 前台代码: <Border> <!- 此处放置ScrollViewer或 ListBox--> <ScrollViewer/>   <toolkit:GestureService.

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源占用少,无依赖,多平台的javascript滚动插件.iScroll不仅仅是 滚动.它可以处理任何需要与用户进行移动交互的元素.在你的项目中包含仅仅4kb大小的iScroll,你的项目便拥有了滚动,缩放,平移,无限滚动,视差滚动,旋转功能.iScroll的强大毋庸置疑,本人也非常欢迎大家使用iScr