ol加载超图xyz瓦片

关键代码为:

var xyzMapLayer = new ol.layer.Tile({
	source: new ol.source.XYZ({
		url: 'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark/zxyTileImage.png?z={z}&x={x}&y={y}&width=256&height=256',
	}),
});

主要是使用zxyTileImage服务

SuperMap iServer REST API

openlayer加载超图iserver的xyz瓦片完整代码如下:

<html>
	<head>
		<title>超图瓦片</title>
		<link rel="stylesheet"
			href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.5.0/css/ol.css"
			type="text/css">
		<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.5.0/build/ol.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
		<style type="text/css">
			html,
			body,
			#map {
				margin: 0px;
				padding: 0px;
				width: 100%;
				height: 100%;
			}
		</style>
	</head>
	<body>
		<div id="map"></div>
	</body>
	<script type="text/javascript">
		var xyzMapLayer = new ol.layer.Tile({
			source: new ol.source.XYZ({
				// 天地图
				// url: 'http://t0.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles&tk=40b190683706230fade806c1ac8c14e8'
				// 高德
				// url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scl=2&style=7&x={x}&y={y}&z={z}'
				// 超图
				url: 'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark/zxyTileImage.png?z={z}&x={x}&y={y}&width=256&height=256',
				// url: 'http://www.supermapol.com/realspace/services/map-sample/rest/maps/WorldMap/zxyTileImage.png?z={z}&x={x}&y={y}&width=256&height=256',
				// arcgis
				// url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
			}),
			opacity: 1,
			visible: true
		});
		var view = new ol.View({
			center: ol.proj.fromLonLat([103.6, 36.1]),
			zoom: 4,
		});
		var map = new ol.Map({
			layers: [xyzMapLayer],
			target: 'map',
			view: view
		});
	</script>
</html>

 

### 使用 OpenLayers 加载 SuperMap 影像服务 为了在项目中通过 OpenLayers 来加载来自 SuperMap 的影像服务,可以采用 WMS 或者 WMTS 协议。下面是一个基于 WMTS 协议的具体实例。 #### 创建地图容器并初始化 Map 对象 首先,在 HTML 文件内定义一个用于展示地图的 div 容器,并设置其样式以便于查看效果: ```html <div id="map" style="width: 100%; height: 400px;"></div> ``` 接着利用 JavaScript 初始化 `ol.Map` 实例以及视图配置: ```javascript import 'ol/ol.css'; import { Map, View } from 'ol'; import TileLayer from 'ol/layer/Tile'; import OSM from 'ol/source/OSM'; const map = new Map({ target: 'map', layers: [ new TileLayer({ source: new OSM() }) ], view: new View({ center: [0, 0], zoom: 2 }) }); ``` #### 添 SuperMap 图像瓦片层 (WMTS) 对于想要集成的SuperMap影像服务而言,需创建对应的 `ImageWMS` 或者 `TileWMTS` 类型的数据源(Source),这里以 `TileWMTS`为例说明操作方式: ```javascript import TileWMTS from 'ol/source/TileWMTS'; import WMTSTileGrid from 'ol/tilegrid/WMTS'; import Projection from 'ol/proj/Projection'; // 假设已知的服务URL和服务参数如下所示 const url = "http://localhost:8090/iserver/services/map-world/rest/maps/World"; const layerName = "World"; // 构建投影对象 let proj = new Projection({ code: 'EPSG:4326' }); // 设置切片网格布局 let tileGrid = new WMTSTileGrid({ origin: [-180, 90], // 左上角坐标 resolutions: [0.703125, ...] // 各级分辨率数组 }); // 配置 WMTS 数据源 let superMapSource = new TileWMTS({ url: `${url}?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0`, layer: layerName, matrixSet: 'c', format: 'image/png', projection: proj, tileGrid: tileGrid, style: 'default' }); // 将新创建的地图图层入到现有地图中 new ol.layer.Tile({source: superMapSource}).addTo(map); ``` 需要注意的是,实际应用时应根据具体的 SuperMap RESTful Web Service 文档调整 URL 和其他请求参数[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值