相关博文原文地址:

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. 元旦在家撸了两天Seata源码,你们是咋度过的呢?

    撸Seata源码 2020年12月31日晚23点30分,我发了2020年的最后一个朋友圈:假期吃透Seata源码,有组队的吗? 不少小伙伴都来点赞了, 其中也包括Seata项目的发起人--季敏大佬哦! ...

  2. 一行 CSS 代码的魅力

    之前在知乎看到一个很有意思的讨论 一行代码可以做什么? 那么,一行 CSS 代码又能不能搞点事情呢? CSS Battle 首先,这让我想到了,年初的时候沉迷的一个网站 CSS Battle .这个网 ...

  3. Element UI组件说明

    -<el-card>-查询及展示列表页面-[v-show]属性控制显示隐藏-<el-card class="box-card" >-多标签页面-<el ...

  4. 风炫安全web安全学习第二十九节课 CSRF防御措施

    风炫安全web安全学习第二十九节课 CSRF防御措施 CSRF防御措施 增加token验证 对关键操作增加token验证,token值必须随机,每次都不一样 关于安全的会话管理(SESSION) 不要 ...

  5. Java进阶基础18天课程大总结

    知识点目录 day1:分类思想,static关键字 day2:面向对象-继承,抽象类,权限修饰符,final day3:接口,多态 day4:内部类,Lambda day5:工具类API,系统API, ...

  6. 白日梦的Elasticsearch笔记(一)基础篇

    目录 一.导读 1.1.认识ES 1.2.安装.启动ES.Kibana.IK分词器 二.核心概念 2.1.Near Realtime (NRT) 2.2.Cluster 2.3.Node 2.4.In ...

  7. 【Java基础】集合

    集合 集合概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储.另一方面,使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器 ...

  8. nginx: [emerg] bind() to 0.0.0.0:80 failed (10013:

    问题出现 今天在win10安装nginx时候,启动nginx.exe时在dos窗口出现了这个错误,特此记录一下. 解决方法 上面报错信息的意思大概是:0.0.0:80地址访问不被允许.可能是80端口号 ...

  9. docker 容器和镜像的常用命令

    镜像 docker rmi 镜像id -f # 删除指定镜像 docker rmi 镜像id 镜像id -f # 删除多个镜像 docker rmi -f $(docker images -aq) # ...

  10. 【EXPDP】指定导出,只导出函数,导出的时候加上where条件过滤

    expdp导出的时候可以使用parfile这个参数,在parfile中添加想要的导出信息: 这里简单写了几句: vim test.par include=function     --导出函数 inc ...