[原][osgearth][xyz插件]GeoServer生产发布EPSG:3857WMTS切片服务

本文原创,欢迎任何形式转载~

一、前期准备

1、安装JDK17

官网下载并安装 OpenJDK17U-jre_x64_windows_hotspot_17.0.12_7

2、安装GeoServer

官网下载并安装 GeoServer-2.26.0-winsetup

3、安装插件

官网下载geoserver-2.26.0-wmts-multi-dimensional-plugin插件

解压到C:\Program Files\GeoServer\webapps\geoserver\WEB-INF\lib目录下

4、准备图源(数据源)

这里演示影像数据,使用已有的tif影像

 

5、启动GeoServer

C:\Program Files\GeoServer\bin\startup.bat

二、发布服务

1、访问geoServer管理主页

http://localhost:8080/geoserver/web/?1

账号:admin 密码:geoserver

 2、建立工作空间 

 

 建立好了保存

这里介绍一下WMTS、WCS、WFS、WMS,我们这个工作空间为了建立WMTS服务,所以只选一个

在地理信息系统(GIS)领域,WMTS、WCS、WFS、WMS 都是用于提供地理空间数据的网络服务标准,它们的主要区别如下:
一、WMTS(Web Map Tile Service,网络地图瓦片服务)
定义
WMTS 是一种用于在 Web 上高效传输地图瓦片的标准服务。它将地图预先切割成固定大小的瓦片,并以不同的缩放级别进行组织。
用户通过请求特定的瓦片来获取地图图像,而不是每次都请求整个地图。
特点
高效性:由于瓦片是预先生成的,服务器可以快速响应请求,提高地图加载速度。
可缓存性:客户端可以缓存瓦片,减少重复请求,提高用户体验。
支持多种投影:可以提供不同投影方式的地图瓦片,以适应不同的应用需求。
应用场景
在线地图应用:如互联网地图服务、移动地图应用等,需要快速加载地图的场景。
大规模地图展示:对于需要展示大量地理数据的应用,WMTS 可以有效地管理和传输地图瓦片。
二、WCS(Web Coverage Service,网络覆盖服务)
定义
WCS 提供对地理空间数据的覆盖范围(coverage)的访问。覆盖范围可以是栅格数据(如卫星影像、数字高程模型等)或矢量数据(如点、线、面等几何对象)。
用户可以请求特定区域和特定波段的数据,以满足不同的分析和应用需求。
特点
数据灵活性:支持多种数据类型和格式,包括栅格和矢量数据。
空间和光谱分辨率可定制:用户可以根据需要请求特定分辨率的数据。
支持数据处理:可以进行数据裁剪、重采样等操作。
应用场景
环境监测:获取卫星影像数据进行环境分析和监测。
气象预报:使用气象数据进行天气预报和气候研究。
地理信息分析:对地理空间数据进行分析和处理,提取特定的信息。
三、WFS(Web Feature Service,网络要素服务)
定义
WFS 提供对地理空间数据中的矢量要素的访问。矢量要素可以是点、线、面等几何对象,以及与之相关的属性信息。
用户可以通过 WFS 请求特定区域的矢量要素数据,并进行查询、编辑和更新等操作。
特点
矢量数据访问:专注于提供矢量数据的服务,支持对要素的几何形状和属性进行操作。
数据交互性:允许客户端与服务器进行数据交互,实现数据的查询、编辑和更新。
支持地理数据库操作:可以与地理数据库进行集成,实现对地理数据的管理和维护。
应用场景
地理信息系统应用:在 GIS 软件中进行数据查询、分析和编辑。
数据共享和集成:不同系统之间共享和集成地理空间数据。
空间决策支持:为决策制定提供地理空间数据支持。
四、WMS(Web Map Service,网络地图服务)
定义
WMS 提供对地理空间数据的地图图像的访问。它将地理数据渲染成地图图像,并以不同的格式(如 PNG、JPEG 等)返回给客户端。
用户可以请求特定区域的地图图像,并进行缩放、平移等操作。
特点
地图图像生成:根据用户请求实时生成地图图像。
可定制性:用户可以通过设置参数来定制地图的样式、图层显示等。
支持多种地图投影:可以提供不同投影方式的地图图像,以适应不同的应用需求。
应用场景
在线地图展示:在 Web 应用中展示地图图像。
地理信息可视化:将地理数据以地图的形式进行可视化展示。
空间分析:结合其他地理信息服务进行空间分析和决策支持。
综上所述,WMTS、WCS、WFS 和 WMS 在地理信息系统中分别提供不同类型的地理空间数据服务。WMTS 主要用于高效传输地图瓦片;WCS 提供对覆盖范围数据的访问;WFS 专注于矢量要素数据的交互操作;WMS 提供地图图像的生成和访问。在实际应用中,可以根据具体需求选择合适的服务来获取和使用地理空间数据。
View Code

 

3、建立存储仓库,发布图层

如果你还没有发布该数据作为图层,需要先发布它。进入“图层”(Layers) 或者“发布”(Publish) 页面,选择你的数据源和对应的图层,然后发布。

在发布过程中,你可以指定原始数据的坐标系(EPSG:4326)。

 

 

 

点击发布

 

 发布成功

4、图层预览

 

 

 能看见发布的数据

5、多坐标系支持

 

发布完图层后,编辑该图层的 SRS 设置。在图层的配置页面中找到坐标参考系统(SRS)选项。

添加 EPSG:3857 作为一个额外的坐标系。这样 GeoServer 就知道如何将 EPSG:4326 的数据转换到 EPSG:3857。

 

点击tile缓存--切片图层

找到自己的那个图层进行修改

点击“testDom”增加网格集

 

 修改名称,不支持中文

 

保存后点击“切片图层”----找到自己修改后的图层------选择一项----找一个3857的进行查看

 查看3857的墨卡托投影:

http://localhost:8080/geoserver/testDom/gwc/demo/testDom:google_Level_7?gridSet=WebMercatorQuad&format=image/png

 

 查看4326的经纬度直投

http://localhost:8080/geoserver/testDom/gwc/demo/testDom:google_Level_7?gridSet=EPSG:4326&format=image/png

 

6、缓存切分

点击“Seed、Truncate”

点击缓存到本地

 

 

配置相应参数后提交即可

 

7、查看缓存情况:

进入GeoWebCache主页

 找到最下面缓存的路径

 可以找到已经缓存完成的数据了

 

三、服务加载使用

在之前的

http://localhost:8080/geoserver/testDom/gwc/demo/testDom:google_Level_7?gridSet=WebMercatorQuad&format=image/png

页面里,用F12,查看加载的图片位置

 

 可以看到图片的位置为

http://localhost:8080/geoserver/testDom/gwc/service/wmts?layer=testDom%3Agoogle_Level_7&style=&tilematrixset=WebMercatorQuad&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix=1&TileCol=1&TileRow=0

这里的参数对应上osgearth里的xyz插件

TileRow   对应的参数是 y

TileCol     对应的参数是 x

TileMatrix      对应的参数是 z

所以对应着osgearth的xyz插件需要填入的参数是

<![CDATA[http://localhost:8080/geoserver/testDom/gwc/service/wmts?layer=testDom%3Agoogle_Level_7&style=&tilematrixset=WebMercatorQuad&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={x}&TileRow={y}]]>

 

 osgearth加载服务,成功。

 

 

四、发布高程数据

1.数据准备

 2.图层编辑发布

点击  数据--图层--添加新的资源

选择之前自己命名的 nasaDem600 点击“发布” 

类似之前影像图发布一样步骤,修改中文名称 ,使用默认的4326(经纬度直投)方式

点击 保存

 可以看到已经发布了

修改图像格式

 

3.预览图层

 可以看到发布的灰色数据

http://localhost:8080/geoserver/testDem/gwc/demo/testDem:NASADEM600m?gridSet=EPSG:4326&format=image/gif

 

我这里是为了加载在三维中当高程使用的,如果仅想要在二维中查看,可以自行添加图片样式 

可以选择“数据“—”样式“—”添加一个新的样式”为图层添加样式。

参考网上别人的样式

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor 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" xsi:schemaLocation="http://www.opengis.net/sld
http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" version="1.0.0">
  <NamedLayer>
    <Name>DEM-HeatMap</Name>
    <UserStyle>
      <Title>A raster style</Title>
        <FeatureTypeStyle>
         <Rule>
           <RasterSymbolizer>
              <ColorMap>
                <ColorMapEntry color="#2851CC" quantity="0" opacity="0.5"/>
                <ColorMapEntry color="#211F1F" quantity="50" opacity="0.8"/>
                <ColorMapEntry color="#EE0F0F" quantity="100" opacity="0.8"/>
                <ColorMapEntry color="#AAAAAA" quantity="200" opacity="0.8"/>
                <ColorMapEntry color="#6FEE4F" quantity="300" opacity="0.8"/>
                <ColorMapEntry color="#3ECC1B" quantity="450" opacity="0.8"/>
                <ColorMapEntry color="#886363" quantity="700" opacity="0.8"/>
                <ColorMapEntry color="#5194CC" quantity="1000" opacity="0.8"/>
                <ColorMapEntry color="#2C58DD" quantity="1500" opacity="0.8"/>
                <ColorMapEntry color="#DDB02C" quantity="2000" opacity="0.8"/>
              </ColorMap>
           </RasterSymbolizer>
         </Rule>
       </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
View Code

 

4.使用osgearth查看

在自己发布页面

http://localhost:8080/geoserver/testDem/gwc/demo/testDem:NASADEM600m?gridSet=EPSG:4326&format=image/gif

按F12查随便看一个图片地址:

http://localhost:8080/geoserver/testDem/gwc/service/wmts?layer=testDem%3ANASADEM600m&style=&tilematrixset=EPSG%3A4326&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fgif&TileMatrix=EPSG%3A4326%3A1&TileCol=1&TileRow=1

类似DOM的加载方案

所以对应着osgearth的xyz插件需要填入的参数是

 

<![CDATA[http://localhost:8080/geoserver/testDem/gwc/service/wmts?layer=testDem%3ANASADEM600m&style=&tilematrixset=EPSG%3A4326&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fgif&TileMatrix=EPSG%3A4326%3A{z}&TileCol={x}&TileRow={y}]]>

 

注意这里用的是经纬直投的WGS84坐标系,所以读取的时候不能用墨卡托的坐标系读取

posted @ 2024-10-14 16:27  南水之源  阅读(126)  评论(0)    收藏  举报