World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)
这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171
1、WMSTiledImageLayer类说明
一个WMSTiledImageLayer类对象只能对应一个WMS发布的服务图层,使用WMS服务时需要使用到WMS元数据描述类WMSCapabilities对象,我们使用WMSCapabilites类的静态方法retrieve来获得它的对象。WMSCapabilites对象可以包含WMS服务中所以的图层和图层样式,我们通过把需要显示的图层名称保存到AVList对象中,然后通过WMSCapabilites对象和AVList来创建WMSTiledImageLayer对象。我们可以通过一个请求地址来查看WMS服务所包含的元数据。例如:http://127.0.0.1:8080/geoserver/PostGIS/wms?request=GetGapabilities&Service=WMS 问号后面的地址是固定的,可以但看如下的XML:
- <LayerqueryableLayerqueryable="1">
- <Name>spearfish</Name>
- <Title>spearfish</Title>
- <Abstract>Layer-Group type layer: spearfish</Abstract>
- <CRS>EPSG:26713</CRS>
- <EX_GeographicBoundingBox>
- <westBoundLongitude>-103.87791475407893</westBoundLongitude>
- <eastBoundLongitude>-103.62278893469492</eastBoundLongitude>
- <southBoundLatitude>44.37246687108142</southBoundLatitude>
- <northBoundLatitude>44.50235105543566</northBoundLatitude>
- </EX_GeographicBoundingBox>
- <BoundingBoxCRSBoundingBoxCRS="EPSG:26713"minx="589425.9342365642"miny="4913959.224611808"maxx="609518.6719560538"maxy="4928082.949945881"/>
- </Layer>
- <LayerqueryableLayerqueryable="1">
- <Name>tasmania</Name>
- <Title>tasmania</Title>
- <Abstract>Layer-Group type layer: tasmania</Abstract>
- <CRS>EPSG:4326</CRS>
- <EX_GeographicBoundingBox>
- <westBoundLongitude>143.83482400000003</westBoundLongitude>
- <eastBoundLongitude>148.47914100000003</eastBoundLongitude>
- <southBoundLatitude>-43.648056</southBoundLatitude>
- <northBoundLatitude>-39.573891</northBoundLatitude>
- </EX_GeographicBoundingBox>
- <BoundingBoxCRSBoundingBoxCRS="EPSG:4326"minx="-43.648056"miny="143.83482400000003"maxx="-39.573891"maxy="148.47914100000003"/>
- </Layer>
- <LayerqueryableLayerqueryable="1">
- <Name>tiger-ny</Name>
- <Title>tiger-ny</Title>
- <Abstract>Layer-Group type layer: tiger-ny</Abstract>
- <CRS>EPSG:4326</CRS>
- <EX_GeographicBoundingBox>
- <westBoundLongitude>-74.047185</westBoundLongitude>
- <eastBoundLongitude>-73.907005</eastBoundLongitude>
- <southBoundLatitude>40.679648</southBoundLatitude>
- <northBoundLatitude>40.882078</northBoundLatitude>
- </EX_GeographicBoundingBox>
- <BoundingBoxCRSBoundingBoxCRS="EPSG:4326"minx="40.679648"miny="-74.047185"maxx="40.882078"maxy="-73.907005"/>
- </Layer>
- <LayerqueryableLayerqueryable="1">
- <Name>省界_region</Name>
- <Title>省界_region</Title>
- <Abstract/>
- <KeywordList>
- <Keyword>features</Keyword>
- <Keyword>省界_region</Keyword>
- </KeywordList>
- <CRS>EPSG:4326</CRS>
- <CRS>CRS:84</CRS>
- <EX_GeographicBoundingBox>
- <westBoundLongitude>73.441277</westBoundLongitude>
- <eastBoundLongitude>135.08693</eastBoundLongitude>
- <southBoundLatitude>18.159829</southBoundLatitude>
- <northBoundLatitude>53.561771</northBoundLatitude>
- </EX_GeographicBoundingBox>
- <BoundingBoxCRSBoundingBoxCRS="CRS:84"minx="73.441277"miny="18.159829"maxx="135.08693"maxy="53.561771"/>
- <BoundingBoxCRSBoundingBoxCRS="EPSG:4326"minx="18.159829"miny="73.441277"maxx="53.561771"maxy="135.08693"/>
- <Style>
- <Name>polygon_x</Name>
- <Title>Default Polygon</Title>
- <Abstract>A sample style that draws a polygon</Abstract>
- <LegendURLwidthLegendURLwidth="20"height="20">
- <Format>image/png</Format>
- <OnlineResourcexmlns:xlinkOnlineResourcexmlns:xlink="http://www.w3.org/1999/xlink"xlink:type="simple"xlink:href="http://localhost:8080/geoserver/cite/ows?service=WMS&request=GetLegendGraphic&format=image%2Fpng&width=20&height=20&layer=%3F%3F_region"/>
- </LegendURL>
- </Style>
- </Layer>
里面的每一个Layer节点都是一个WMS图层。
2、例子
- package gov.nasa.worldwindx.v5cn;
- import gov.nasa.worldwind.avlist.AVKey;
- import gov.nasa.worldwind.avlist.AVList;
- import gov.nasa.worldwind.avlist.AVListImpl;
- import gov.nasa.worldwind.ogc.wms.WMSCapabilities;
- import gov.nasa.worldwind.wms.WMSTiledImageLayer;
- import gov.nasa.worldwindx.examples.ApplicationTemplate;
- import java.net.URI;
- import java.net.URISyntaxException;
- public class WMSLayerTest extends ApplicationTemplate {
- public static class AppFrame extends ApplicationTemplate.AppFrame{
- private static final long serialVersionUID = 1L;
- public AppFrame(){
- try {
- //请求地图的URL
- String uri = "http://127.0.0.1:8080/geoserver/PostGIS/wms";
- WMSCapabilities caps;
- URI serverURI = new URI(uri);
- //获得WMSCapabilities对象
- caps = WMSCapabilities.retrieve(serverURI);
- //解析WMSCapabilities数据
- caps.parse();
- AVList params = new AVListImpl();
- //图层的名称
- params.setValue(AVKey.LAYER_NAMES, "planet_osm_line");
- //地图服务的协议,这里是OGC:WMS
- params.setValue(AVKey.SERVICE_NAME, "OGC:WMS");
- //获得地图的uri,也就是上面定义的uri
- params.setValue(AVKey.GET_MAP_URL, uri);
- //在本地缓存文件的名称
- params.setValue(AVKey.DATA_CACHE_NAME, "planet_osm_line");
- params.setValue(AVKey.TILE_URL_BUILDER, new WMSTiledImageLayer.URLBuilder(params));
- WMSTiledImageLayer imageLayer = new WMSTiledImageLayer(caps,params);
- //图层名称
- imageLayer.setName("planet_osm_line");
- imageLayer.setEnabled(true);
- //图层的透明度
- imageLayer.setOpacity(1);
- //图层的最大显示高度
- imageLayer.setMaxActiveAltitude(33500000);
- getWwd().getModel().getLayers().add(imageLayer);
- getLayerPanel().update(getWwd());
- } catch (URISyntaxException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public static void main(String[] args) {
- ApplicationTemplate.start("WMS图层", WMSLayerTest.AppFrame.class);
- }
- }
请求的URL就是GeoServer中点击【OpenLayers】中的路径:
图层名称就是定义发布服务是的名称,可以在GeoServer中找到。
转载于:https://www.cnblogs.com/telwanggs/p/6774710.html
World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)相关推荐
- Leaflet中加载Geoserver发布的WMS服务显示地图
场景 Openlayers下载与加载geoserver的wms服务显示地图: Openlayers下载与加载geoserver的wms服务显示地图_BADAO_LIUMANG_QIZHI的博客-CSD ...
- leaflet 加载 geoserver 发布的 wms 服务
1. 安装 geoserver 服务:略 2. 启动 geoserver: 3. 登录 geoserver 控制台:( 默认账号.密码为 admin.geoserver ) 4. 新建工作区: 5. ...
- ArcGIS JS API加载GeoServer发布的WFS服务
文章目录 前言 主要代码 总结 参考链接 前言 WFS(Web Feature Service),OGC标准下的要素服务.其支持的主要操作如下: GetCapabilities (discovery ...
- Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效
一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...
- cesium加载geoserver发布的mvt服务
cesium 本身并不支持矢量切片的加载,所以需要借助其他工具进行解析.在Canvas中把矢量瓦片绘制好了,以图片形式像WMTS一样向Cesium提供图片服务就行了,当然也可以采用中间件的形式在后台把 ...
- Vue+OpenLayers学习系列(十一)使用axios加载GeoServer发布的WFS服务
一.问题 1.之前用下面官网的方法 source.addFeatures() 将查询的图层信息加载到 source 里面,但是不知道为啥,死活出不来,也不报错,就很奇怪. var source = n ...
- World Wind Java开发之十一——加载热点信息(仿Google Earth)(转)
在GE的图层中有一个照片图层,在浏览时可以看到各地的一些图片,我们称之为热点信息,如下图所示: 再来看下本文的实现效果: 效果是不是很像呢,其实实现这个很简单,参照examples中的Balloons ...
- World Wind Java开发之十一——加载热点信息(仿Google Earth)
在GE的图层中有一个照片图层,在浏览时可以看到各地的一些图片,我们称之为热点信息,如下图所示: 再来看下本文的实现效果: 效果是不是很像呢,其实实现这个很简单,参照examples中的Balloons ...
- openlayers 加载geoserve发布的WMS数据
一.导入相关的包 import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer.js'; import {XYZ,TileWMS,V ...
最新文章
- MongoDB--预备
- 虚拟机删除后服务器内存,卸载虚拟机后仍占内存
- 7种方法帮助企业改进软件维护效率
- 美国国家标准技术局发布应用容器安全指南
- JS 实现两表格里的数据来回 转移
- java 请求 https_JAVA后端请求HTTPS 的URL 遇到的问题
- opencv 图像旋转_图像数据集增强方式总结和实现【数字图像处理系列四】
- python闭包和函数调用区别_对python闭包(内嵌函数)的理解
- 在IDEA中调试JavaScript代码
- 如何在电脑上彻底删除Oracle客户端?
- eplan 电箱布局_Eplan 的从头到尾完成3D布局步骤说明
- onblur和onfocus
- switch语句查询水果价格
- 数学智力题 武士数独题目_最新智力题大全及答案-各种最新IQ题目推荐-第1595页-33IQ...
- mysql 正序_请问mysql 中 怎么实现这种排序,按照状态排序正序,再按照开始时间排序正序,...
- 服务器raid配置和安装系统,R390X G2服务器配板载RSTe阵列卡UEFI模式安装windows2008 R2系统典型配置...
- 无法访问其它家庭组计算机,Win7电脑同一个家庭组或者工作组,电脑无法相互访问...
- 学Java可以不学算法吗-学java有必要学算法吗?
- 实战小项目_猜数字小游戏
- k8s-service底层之 Iptables与 IPVS
热门文章
- ElasticSearch的filter原理深度剖析
- (01)FPGA技术市场调研
- 2021年NBA季后赛第二轮晋级预测
- server sql 无法从long转为int_MySQL中,21个写SQL的好习惯(修正版)
- 人机交互界面设计大作业_为什么说大多数UI设计、大数据、人工智能等培训班不靠谱?...
- 关于精英版stm32从模板工程移植RTT Spi驱动打开后编译不过的处理办法
- 12021.ADS7952采集芯片
- 5010.有限状态机-电梯事件
- 【实验6】——时域波束形成与频域波束形成
- zlib的安装与使用