zoukankan      html  css  js  c++  java
  • JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图

    系列链接: Java web与web gis学习笔记(一)——Tomcat环境搭建 Java web与web gis学习笔记(二)——百度地图API调用 JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图

    前言:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。因此运行GeoServer服务的前提是配置好Java环境。本文将GeoServer部署在Tomcat服务器上。

    关于Tomcat服务器的部署,可以参考Java web与web gis学习笔记(一)——Tomcat环境搭建

    一、关于数据

    地理数据一般可分为矢量数据和栅格数据,本文使用shp矢量数据作为数据源发布地图。对于最常见的几种地理数据源,GeoServer的支持情况如下:

    数据源 GeoServer支持情况
    shp
    GeoJSON ×
    mid/mif ×
    GeoTIFF
    PostGIS
    其他数据库 需要插件

    二、GeoServer安装

    首先在GeoServer的官网下载GeoServer。为了部署到Tomcat服务器上,这里选择下载war包。

    image-20200319211902766

    将下载好的war包部署到Tomcat的webapps目录下,并运行Tomcat,在本地即可通过URL:http://localhost:8080/geoserver访问。

    如果你更改了Tomcat的默认端口,则需要通过自己设置的端口访问。

    如果Tomcat部署在云服务器上,通过公网可以使用URL:http://ip:port/geoserver访问,其中ip为云服务器公网ip,port为开放的端口。

    GeoServer默认用户名为:admin,密码为:geoserver。在网页右上角输入用户名和密码即可登录到GeoServer。

    Snipaste_2020-03-19_16-24-28

    三、通过shp文件发布地图

    1. 新建工作区

    Snipaste_2020-03-19_17-18-34

    在左侧数据栏打开工作区,并选择添加新的工作区,按照下图设置即可。

    Snipaste_2020-03-19_17-37-37

    2. 添加shp数据源

    Snipaste_2020-03-19_17-40-21

    在左侧数据栏打开数据存储,并选择添加新的数据存储,出现如下界面:

    Snipaste_2020-03-19_21-39-4322222222222222222

    这里主要先介绍两个选项:

    • Directory of spatial files(shapefiles),将一个包含shp的文件夹连接到数据源

    • Shapefile,加载单个shp文件到数据源

    对于单个shp数据而言,两种方式创建数据源区别不是特别大。因为我有多个shp数据,所以这里选择Directory of spatial files(shapefiles)。出现如下界面:

    Snipaste_2020-03-19_17-55-31

    根据图中提示设置相应的参数,注意被连接的shp文件(或文件夹)必须储存在本地,也就是说如果你在云服务器上进行上述操作,就需要将数据储存到云服务器上。点击保存按钮完成数据源的创建。

    3. 发布地图图层

    一般在完成数据源创建后会自动弹出新建图层的窗口。如果你加载的也是多个shp文件的文件夹,那你将在此页面看到多个待发布的图层(每个图层对应一个shp文件)。不过在这里只能先发布其中一个图层。

    Snipaste_2020-03-19_18-30-34

    点击其中一个发布按钮,可以看到图层信息的编辑页面,其中需要设置的参数主要是基本信息、坐标参考和边框信息,见下图:

    Snipaste_2020-03-19_19-02-35

    Snipaste_2020-03-19_18-35-05

    为了解释上图中的参数,这里补充一些名词解释(。)


    1. OGC:Open Geospatial Consortium (OGC)开放地理空间信息联盟,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作。相信这也是各位GIS开发者的“老朋友”了。

    2. EPSG和OGP:European Petroleum Survey Group (EPSG)欧洲石油调查组,它成立于1986年,并在2005年重组为Internation Association of Oil & Gas Producers(OGP)国际石油和天然气生产者协会。它负责维护并发布坐标参考系统的数据集参数,以及坐标转换描述。

    3. SRS:代表空间参考系(Spatial Reference System),也叫坐标参考系统CRS(coordinate reference system),是基于局部的、区域的或者全球的坐标系统,常被用来定位地理实体。

    4. WKT:WKT(well-known text)是OGC的简单要素规范(Simple Feature Specification,SFS)中定义的一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。 WKT可以描述SRS,其中包括对参考椭球SPHEROID、基准面DATUM、坐标系(地心坐标系GEOCCS、地理坐标系GEOGCS、投影坐标系PROJCS)等描述。

      例如:WGS 84的OGC-WKT描述如下(注意这里的“WGS 1984”是指大地基准面,“WGS 84”既指参考椭球,又指地理坐标系(即WGS 84坐标系)。不过有时,”WGS 84“兼有三者的含义)

      GEOGCS["WGS 84",
          DATUM["WGS_1984",
              SPHEROID["WGS 84",6378137,298.257223563,
                  AUTHORITY["EPSG","7030"]],
              AUTHORITY["EPSG","6326"]],
          PRIMEM["Greenwich",0,
              AUTHORITY["EPSG","8901"]],
          UNIT["degree",0.01745329251994328,
              AUTHORITY["EPSG","9122"]],
          AUTHORITY["EPSG","4326"]]
      
    5. SRID:Spatial Reference System Identifier (SRID)空间参考系统标识符,是用来明确标识投影的、非投影的、独立的空间坐标系定义的独一无二的值。每一个SRS都可以用一个唯一的SRID整数来表示。OGP定义的EPSG code实质上是权威机构对SRID的一种实现,因此二者是一致的。

      例如:WGS84 — SRID 4326,也表示为EPSG 4326


    所以上图中SRS设置为EPSG:4326就是将空间参考系设置为WGS84,通过查找按钮可以查询每种空间参考系对应的EPSG代码。

    若发布后的地图不能正常预览,可以尝试更改这里的SRS,例如:在web map中同样常见的 EPSG:3857 (Pseudo-Mercator),伪墨卡托投影,即我们经常提到的web墨卡托投影,诸如Google地图,OpenStreetMap等web地图都使用这一坐标系。

    4. 发布剩余图层

    前面提到了,对于文件夹的数据源,新建图层时只能发布其中一个shp数据,因此,我们还需要将文件夹中剩余的shp数据进行发布。在左侧找到图层,选择添加新的资源

    Snipaste_2020-03-19_19-19-43

    在接下来的页面中,选择我们之前创建的数据源,即可看到之前尚未发布的图层,在这里重复之前的操作,将这两个图层进行发布即可。

    Snipaste_2020-03-19_19-26-01

    5. 预览发布的图层

    在左侧数据栏选择Layer Preview 可以在右侧看到已经发布的所有图层,找到刚才发布的图层,选择OpenLayers即可预览。

    Snipaste_2020-03-19_23-42-59

    也可以在下拉菜单中选择一种服务进行预览,这里有WMS和WFS两类服务可选。关于WMS、WFS以及WMTS、WCS、WPS等常见地图服务的详细区别见我另一篇博客:WMS、WFS、WCS、WPS、WMTS等常见地图服务的区别

    这里直接用Openlayers预览看效果。

    Snipaste_2020-03-19_23-57-21

    不难看到,我们的WMS服务的URL就是:http://localhost:8080/geoserver/xjs/wms,在后面跟上一系列请求参数就访问到我们发布的图层了。

    把浏览器上的URL复制下来,localhost改成公网ip就能通过公网访问我们发布的地图啦!

    http://localhost:8080/geoserver/xjs/wms?service=WMS&version=1.1.0&request=GetMap&layers=xjs%3ABoundaryChn2_4l&bbox=73.44696044921875%2C3.408477306365967%2C135.08583068847656%2C53.557926177978516&width=768&height=624&srs=EPSG%3A4326&format=application/openlayer
    

    关于地图的配置、美化等操作将会在下一篇博客中进行说明。

  • 相关阅读:
    http协议get方式获取图片
    listview全选,和反选的实现
    猜红桃A游戏
    java虚拟机的类加载器
    正则表达式基本用法
    echarts饼图配置模板
    spring----bean的使用
    mysql特殊查询----分组后排序
    java程序存入数据库中文乱码解决方案
    echarts功能配置实例----柱/折线、饼图
  • 原文地址:https://www.cnblogs.com/ssjxx98/p/12528688.html
Copyright © 2011-2022 走看看