Cesium加载几种离线和在线地图

Cesium加载几种离线和在线地图服务

Cesium加载在线天地图服务,arcgis地图服务,Cesium地图服务,加载arcgis离线地图服务,高德离线地图服务

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Cesium加载各种地图服务</title>
		
		<link rel="stylesheet" href="../Build/Cesium/Widgets/widgets.css" />
		<script src="../Build/Cesium/Cesium.js"></script>
	</head>
	<body>
		<div  id="cesiumContainer" style="width: 100%;height: 900px;background-color: rosybrown;"></div>
	</body>
	<script>
		var url='http://localhost:8080/geoserver/wms'; //Geoserver URL   
	   	var viewer = new Cesium.Viewer('cesiumContainer',{ 
	   		//需要进行可视化的数据源的集合
           animation: false, //是否显示动画控件
            shouldAnimate : true,
            homeButton: false, //是否显示Home按钮
            fullscreenButton: false, //是否显示全屏按钮
            baseLayerPicker: false, //是否显示图层选择控件
            geocoder: false, //是否显示地名查找控件
            timeline: false, //是否显示时间线控件
            sceneModePicker: true, //是否显示投影方式控件
            navigationHelpButton: false, //是否显示帮助信息控件
            infoBox: false, //是否显示点击要素之后显示的信息
            requestRenderMode: true, //启用请求渲染模式
            scene3DOnly: false, //每个几何实例将只能以3D渲染以节省GPU内存
            sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式  Cesium.SceneMode
            fullscreenElement: document.body, //全屏时渲染的HTML元素 暂时没发现用处
		    imageryProvider:new Cesium.WebMapServiceImageryProvider({   
		        url : url,         
		        layers: 'nurc:Arc_Sample'// Here just give layer name   
		    })
		});
		var layers = viewer.imageryLayers;  
		/**
		 * 加载本地离线高德地图
		 * gaodeTitle为加载的tomcat下面的相对路径
		 */
		layers.addImageryProvider(createGaodeTileMapServiceImageryProvider());
		function createGaodeTileMapServiceImageryProvider(){
			var gaodeLayer = new Cesium.createTileMapServiceImageryProvider({  
		     url : 'http://localhost:8087/gaodeTitle',
		     credit:"gaodeTitle"
			}); 
			return gaodeLayer;
		}
		
		/**
		* 叠合arcgis的离线动态服务
		* @param url ()
		*/
		//layers.addImageryProvider(createArcGisImageryProvider());
		function createArcGisImageryProvider(){
			var url="http://localhost:6080/arcgis/rest/services/world/MapServer";
			var slgylayer =  new Cesium.ArcGisMapServerImageryProvider({  
			   url : url
			}); 
			slgylayer.alpha = 0.1; //透明度
			//设置图层的亮度  
			slgylayer.brightness = 2.0;  //设置亮度
			return slgylayer;
		}
		
		/**
		 * 加载天地图在线地图
		 */
		//layers.addImageryProvider(createTdtiImageryProvider());
		function createTdtiImageryProvider(){
			 viewer.imageryLayers.addImageryProvider(
			      new Cesium.WebMapTileServiceImageryProvider({
			          url: 'http://t0.tianditu.gov.cn/img_w/wmts?tk=ebf64362215c081f8317203220f133eb',
			          layer:'img',
			          style:'default',
			          tileMatrixSetID:'w',
			          format:'tiles',
			          maximumLevel: 18
			      }));
		}
		
		/**
		 * 加载arcgis在线地图
		 */
		//layers.addImageryProvider(createEsriImageryProvider());
		function createEsriImageryProvider(){
			var esriImageryProvider = new Cesium.ArcGisMapServerImageryProvider({
			   url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
			});
			return esriImageryProvider;
		}
	 //引入高德地图,
	     viewer.imageryLayers.addImageryProvider(
	       new Cesium.UrlTemplateImageryProvider({
	        url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}"
	       }));
	//加载腾讯地图
	      viewer.imageryLayers.addImageryProvider(
	        new Cesium.UrlTemplateImageryProvider({
	        url : 'https://p2.map.gtimg.com/sateTiles/{z}/{sx}/{sy}/{x}_{reverseY}.jpg?version=229',
	        customTags : {
	          sx: function(imageryProvider, x, y, level) {
	            return x>>4;
	          },
	          sy:function(imageryProvider, x, y, level) {
	            return ((1<<level)-y)>>4;
	          }
	        }
	      }));

  //引入天地图标注,
      viewer.imageryLayers.addImageryProvider(
        new Cesium.WebMapTileServiceImageryProvider({
          url: "https://t0.tianditu.gov.cn/cva_w/wmts?tk=c4e3a9d54b4a79e885fff9da0fca712a&service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles",
          layer: "tdtAnnoLayer",
          style: "default",
          format: "image/jpeg",
          tileMatrixSetID: "GoogleMapsCompatible",
          show: false
        })
      );
//引入谷歌地图,
    viewer.imageryLayers.addImageryProvider(
      new Cesium.UrlTemplateImageryProvider({
        url: "https://mt1.google.cn/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}&s=Gali"
      }));
		
		/**
		 * 加载cesium黑色炫酷地图(地图资源问题未成功)
		 */
		//layers.addImageryProvider(createCesiumLayer());
		function createCesiumLayer(){
			var balckMarble = new Cesium.createTileMapServiceImageryProvider({
			    url : 'https://cesiumjs.org/blackmarble',
			    credit : 'Black Marble imagery courtesy NASA Earth Observatory',
			    flipXY : true
			});
			balckMarble.splitDirection = Cesium.ImagerySplitDirection.LEFT;
			return balckMarble;
		}
		
	</script>
</html>

  • 7
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
要在Cesium加载地图离线切片,你需要执行以下步骤: 1. 下载离线切片数据:首先,你需要从天地图官网或其他渠道下载离线切片数据。确保下载的数据是符合天地图切片规范的。 2. 将切片数据转换为Cesium可用的格式:Cesium使用的切片数据格式是TMS(Tiled Map Service)或WMTS(Web Map Tile Service)。如果你下载的切片数据不是这两种格式,你需要将其转换为相应格式。你可以使用GDAL或其他切片转换工具来完成这个步骤。 3. 创建Cesium Viewer对象:在Cesium中,你需要创建一个Viewer对象来显示地图。你可以使用以下代码创建一个基本的Viewer对象: ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); ``` 这里的 'cesiumContainer' 是一个HTML元素的ID,它将用于显示Cesium地图。 4. 添加离线切片图层:接下来,你需要将离线切片图层添加到Cesium Viewer中。你可以使用以下代码将切片图层添加到Viewer中: ```javascript var offlineLayer = new Cesium.UrlTemplateImageryProvider({ url: 'path/to/your/tiles/{z}/{x}/{y}.png', }); viewer.imageryLayers.addImageryProvider(offlineLayer); ``` 这里的 'path/to/your/tiles/{z}/{x}/{y}.png' 是你离线切片数据的路径。确保将路径正确指向离线切片数据的存储位置。 5. 设置初始视图:最后,你可以使用以下代码设置地图的初始视图: ```javascript viewer.camera.setView({ destination : Cesium.Cartesian3.fromDegrees(lon, lat, height), orientation : { heading : Cesium.Math.toRadians(heading), pitch : Cesium.Math.toRadians(pitch), roll : Cesium.Math.toRadians(roll), } }); ``` 在上面的代码中,lon、lat和height是地图的经度、纬度和高度,heading、pitch和roll是地图的视角。 完成这些步骤后,你应该能够在Cesium加载并显示天地图离线切片数据了。记得根据你的实际情况调整代码中的路径和初始视图参数。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值