相关博文原文地址:

CSDN:龙泉太阿:GIS解决方案(1):geoserver+openlayers+mysql设计思想

简书:ZWalter:Docker 制作geoserver镜像

CSDN:不睡觉的怪叔叔:GeoServer一:GeoServer的安装与初步使用



一、geoserver+openlayers+mysql主要设计思想

GIS服务端geoserver和GIS客户端openlayers技术,数据源关注Shapefile文件。

1.1 Geoserver

点击跳转官网官网

  1. 地理信息系统服务器,是 OpenGIS Web 服务器规范的 J2EE 实现,开源项目;
  2. 兼容 WMS 和 WFS 特性;
  3. 支持 PostGIS 、 Shapefile 、 ArcSDE 、 Oracle 、 VPF 、 MySQL 、 MapInfo数据源;
  4. 支持上百种投影,能够将网络地图输出为 jpeg 、 gif 、 png 、 SVG 、 KML 等格式;
  5. 能够运行在任何基于 J2EE/Servlet 容器之上;
  6. 嵌入 MapBuilder 支持 AJAX 的地图客户端OpenLayers;

1.2 Openlayers

点击跳转官网

  1. 专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问,开源项目;
  2. 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加;
  3. 实现访问地理空间数据的方法都符合行业标准。支持Open GIS 协会制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等网络服务规范;
  4. 可以通过远程服务的方式,将以OGC 服务形式发布的地图数据加载到基于浏览器的OpenLayers客户端中进行显示;

1.3 shapefile

  1. Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式;
  2. 一个Shapefile文件包括一个主文件(.shp),一个索引文件(.shx),一个dBASE表文件(.dbf)和一个空间参考文件(.prj)。

二、Geoserver服务器搭建

GeoServer是基于Java开发的。因此在安装之前,必须确保安装了Java。

2.1 Docker 制作geoserver镜像

  1. 提前下载好jdk和tomcat,通过ftp移动到虚拟机 /home/mydocker 下
  2. 新建目录dock-geoserver
  3. 解压相关文件到对应文件夹,并修改文件夹名称以便后续操作。
# 解压到指定目录
unzip geoserver-2.11.0-bin.zip -d dock-geoserver/ # 重命名
mv geoserver-2.11.0 geoserver # 修改geoserver的监听端口,默认8080,防止冲突
# cd 到geoserver目录下,修改start.ini中的监听port为9090.保存退出

2.1.1 编写Dockfile制作jdk1.8镜像

  1. 在dock-jdk1.8下新建Dockerfile
# 基础镜像,基于openjdk:8-jre-alpine操作系统
FROM openjdk:8-jre-alpine
# 移动geoserver文件夹到/usr/local/geoserver 下
ADD geoserver /usr/local/geoserver
# 配置环境变量
ENV GEOSERVER_HOME /usr/local/geoserver
# 暴露9090端口
EXPOSE 9090
# 设置镜像启动时执行的命令
ENTRYPOINT ["sh","/usr/local/geoserver/bin/startup.sh"]

保存并退出,执行 build 操作,制作镜像。

# 注意最后有一个 . 代表在当前目录执行操作
docker build -t mydocker/geoserver .

最后显示build successfully,即表示镜像制作成功。

2.1.2 通过docker镜像运行geoserver

# 可以看到刚生成的geoserver镜像
docker images
# 执行geoserver镜像
docker run -d --name geoserver -p 9090:9090 mydocker/geoserver
# 查看geoserver镜像是否运行
docker ps

然后我们就可以访问虚拟机ip:9090/geoserver看到geoserver。

2.2 GeoServer初试

GeoServer的控制和管理是基于网页形式,所有和GeoServer相关的操作都要通过这个Web管理界面来进行,包括全局设置、数据发布与服务配置等。

在GeoServer的Web管理页面中输入用户名与密码进行登录。如果是默认安装,那么用户名为"admin",密码为"geoserver"。

http://localhost:9090/geoserver/web/

登录以后,可看到如下所示页面:



GeoServer使用的是图层与图层组的概念。将在服务器上准备发布为服务的数据定义为一组数据集,然后规定在发布为Web服务时的一些参数。

2.2.1 图层预览

在GeoServer的Web管理页面的左边菜单的”数据“部分,单击”Layer Preview"菜单项,将在页面的右边部分列出了所有可预览的图层。向下滚动滚动条,滚动到topp:tasmania_state_boundaries,如下图所示,然后单击OpenLayers链接。



这会将地图显示为可漫游的Web服务。该服务满足OGC的WMS规范。地图的框架与漫游按钮都是基于OpenLayers JavaScript框架创建的。



此外,还可以从每行的最右边的下拉列表框中选择"WMS>OpenLayers",实现同样的功能。仔细查看下拉列表框中的内容,了解GeoServer支持的不同输出格式。

Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像)的更多相关文章

  1. 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)

    点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...

  2. 阿里云服务器搭建Docker版AWVS

    本文严重参考该文章:https://www.sqlsec.com/2020/04/awvs.html 阿里云服务器搭建Docker版AWVS,因为之前有使用Docker的经验,所以本文只是简述一下安装 ...

  3. 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面

    搭建docker本地镜像仓库并提供权限校验及UI界面 docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本 ...

  4. 基于 registry 搭建 Docker 私有镜像仓库

    今天主要介绍使用 registry 来搭建 Docker私有镜像仓库,方便在公司内部项目中使用,registry 也是 Docker 官方提供的一个镜像,操作也很简单. dockerhub: http ...

  5. 关于mysql集群主从服务器搭建

    在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡. 那么在大并发下,该如何缓解数据库的压力呢? ...

  6. mysql在一台服务器搭建主从

    注:本环境事先执行rm -rf /usr/local/mysql   以方便实验. 1. 主与从,类似于A机器和B机器的连接,通过bin_log和rpel_log 进行数据连接 2. 如图所示: 3. ...

  7. mysql在一台服务器搭建主从1

    1. 登录mysq的方法:  mysql-S /tmp/mysql.sock 登录3306  mysql -S /tmp/mysql_slave.sock 登录3307 mysql -h 127.0. ...

  8. centos7系统下搭建docker本地镜像仓库

    ## 准备工作 用到的工具, Xshell5, Xftp5, docker.io/registry:latest镜像 关于docker的安装和设置加速, 请参考这篇博文centos7系统下 docke ...

  9. 搭建docker 私有镜像仓库

    前期准备 服务器:centos 7.3 docker-ce: 18.06.1-ce docker-compose: 1.22.0 docker 安装 首先,更新系统 yum update yum up ...

随机推荐

  1. 使用mybatis执行对应的SQL Mapper配置中的insert、update、delete等标签操作,数据库记录不变

    我使用springMVC集成mybatis,执行SQLMapper配置文件里的insert操作,发现程序没有报错,但数据库表里却没有刚才插入的记录.查了很多资料,终于在一篇博客上找到了答案:在执行完方 ...

  2. 机器学习之shape

    shape[:2] 取彩色图片的长和宽 shape[:3]取彩色图片的长和宽和通道 img.shape[0]:图像的垂直高度 img.shape[1]:图像的水平宽度 img.shape[2]:图像的 ...

  3. flask为多个接口添加同一个拦截器的方法

    前言 最近又抽掉出来写一个 Python 项目, 框架使用 Flask , 又有些新心得, 比如本篇所说, 想要将某个蓝图加上统一的权限控制, 比如 admin 蓝图全部有一个统一的拦截器判断是否有权 ...

  4. 【C++】《C++ Primer 》第十八章

    第十八章 用于大型程序的工具 大规模应用程序的特殊要求包括: 在独立开发的子系统之间协同处理错误的能力. 使用各种库进行协同开发的能力. 对比较复杂的应用概念建模的能力. 一.异常处理 异常处理(ex ...

  5. Flutter 基础组件:输入框和表单

    前言 Material组件库中提供了输入框组件TextField和表单组件Form. 输入框TextField 接口描述 const TextField({ Key key, // 编辑框的控制器,通 ...

  6. 初识JWT

    1.JWT是什么 官方网站 JWT是JSON Web Token的简称.是一种开放标准(RFC 7519),定义了一种紧凑且自包含的方式,以JSON对象的形式在各方之间安全地传输信息,因为他被数字签名 ...

  7. 【Oracle】Script to Collect DRM Information (drmdiag.sql) (文档 ID 1492990.1)

    脚本对应如下: The following (drmdiag.sql) is a script to collect information related to DRM (Dyanamic Reso ...

  8. kubernets之服务的实现方式

    一  服务如何通过kubernetes集群的组件来实现其功能 1.1  节点上的所有的服务相关的功能实现都是通过节点上面的kube-proxy来实现的,服务提供了一个或者多个服务IP以及端口对客户端开 ...

  9. 基于Dockfile构建JAVA环境网站镜像

    查看本地目录 [root@docker tomcat]# ls apache-tomcat-8.5.16.tar.gz  Dockerfile  jdk-8u91-linux-x64.tar.gz   ...

  10. ABAP 多表联合查询

    inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录right join(右联接) 返回包括右表中的所有记录 ...