Подготовка
Первое, что вам нужно подготовить:
- Для слоев или групп слоев, опубликованных в GeoServer,
см. https://blog.csdn.net/weixin_45390094/article/details/112816608
, чтобы несколько слоев могли присоединиться к группе слоев для унифицированного выпуска, см. https://blog. csdn.net/weixin_45390094/статья/детали/112969992 - Tianditu: Если вы хотите использовать онлайн-интерфейс Tianditu, вам необходимо зарегистрировать учетную запись на официальном сайте Tianditu https://www.tianditu.gov.cn/ и получить ключ.Способы см. на странице —> Tianditu. приобретение ключей
Код реализации выглядит следующим образом:
<!-- 天地图and geoserver的服务 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../v6.12.0/css/ol.css" /> //这里根据自己项目里openlayers的位置来写
<script src="../v6.12.0/build/ol.js"></script>
<style>
.map {
height: 980px;
width: 100%;
}
</style>
</head>
<body>
<div id="map" class="map"></div>
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.XYZ({
url: 'https://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=你的密钥',
}),
/*isGroup: true,
name: '天地图路网'*/
}),
new ol.layer.Tile({
source: new ol.source.XYZ({
url: 'https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=你的密钥'
}),
/*isGroup: true,
name: '天地图文字标注'*/
}),
//天地图有多个图层,根据需要加载
new ol.layer.Tile({
// 图层组
source: new ol.source.TileWMS({
url: 'http://localhost:8080/geoserver/qianying/wms', // 这个地址是在geoserver里面进行图层预览的地址是一致
params: {
'LAYERS': 'qianying:qianyingmap', // 这里的名字需要与空间定义的一样
'TILED': true
},
serverType: 'geoserver',
transition: 0
})
})
],
view: new ol.View({
center: [111,30], //这里我设置的效果不太对,根据情况修改
zoom: 5,
}),
})
</script>
</body>
</html>