高德地图API添加GeoServer发布的WMS图层

内容摘要:

在加载高德地图API的基础上,利用GeoServer发布shp格式的WMS图层,将WMS图层对应显示在高德地图上,并设置图层样式。

目录

 一、设置投影坐标

 二、添加图层样式

三、关键代码实现


 一、设置投影坐标

ArcMap版本:10.7 

通过查询高德地图JS API参考手册可知,高德地图仅支持符合OGC标准的EPSG3857坐标系统的WMS和WMTS地图服务,因此首先在ArcMap中设置图层的投影方式为EPSG3857坐标系统对应的WGS 1984 Web Mercator (Auxiliary Sphere)

高德地图官方文档:WMS/WMTS-参考手册-地图 JS API 1.4 | 高德地图API (amap.com)

 若图层未定义投影坐标系,选择ArcToolBox中的数据管理工具→投影和变换→定义投影,

 若图层已定义投影坐标系,选择ArcToolBox中的数据管理工具→投影和变换→投影。

将修改后的图层数据导出,在GeoServer上发布,若坐标参考系统中本机SRS读取为EPSG:3857即为成功设置投影坐标系。

 二、添加图层样式

在GeoServer的数据→Styles中为图层添加样式。

设置name为style1,Format选择SLD,Style Editor中全部代码如下:

(本例设置填充色为#5698c3蓝色,透明度为0.2,边框为#000000黑色,宽度为1)

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
    xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
    xmlns="http://www.opengis.net/sld"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NamedLayer>
    <Name>dongbei</Name>
    <UserStyle>
      <Title>Custom Style with Red Fill</Title>
      <FeatureTypeStyle>
        <Rule>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#5698c3</CssParameter> <!-- 蓝色填充 -->
              <CssParameter name="fill-opacity">0.2</CssParameter> <!-- 设置透明度为0.2 -->
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter> <!-- 黑色边框 -->
              <CssParameter name="stroke-width">1</CssParameter>
            </Stroke>
          </PolygonSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

 提交样式,在JavaScript中添加'STYLES': 'style1' 即可使用该样式。

三、关键代码实现

在HTML中添加加载地图的代码如下:

//地图容器
<div id="container"></div>
<script src="//webapi.amap.com/maps?v=2.0&key=你申请的Key"></script>

在JavaScript中添加加载WMS图层的代码如下:

// 加载高德地图
var map = new AMap.Map('container', {
        zoom: 9.6, //设置缩放级别
        center: [121.456493, 31.252764] //设置中心点坐标
    });

// 加载WMS图层
    var wms = new AMap.TileLayer.WMS({
        url: 'http://localhost:8008/geoserver/geoserver/wms', //此处修改为你的地址
        blend: true,
        blend: true,
        tileSize: 256,
        params: {
          'LAYERS': 'geoserver:example', //此处修改为你的图层名称
           VERSION: '1.1.0',
          'STYLES': 'style1' // 指定样式名称
        }
    });

//显示WMS图层
    wms.setMap(map); 

欢迎交流🌹🌹

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值