参考顺序:

  1. CentOS7.5安装Postgresql10.5和PostGISCentOS7.6安装Postgresq11和PostGIS
  2. CentOS7部署GeoServer
  3. CentOS7部署osm2pgsql
  4. GeoServer发布OSM地图

1. 创建图层数据表

osm_db中包含了planet_osm_line,planet_osm_point,planet_osm_polygon和planet_osm_roads四个有数据的表,我们要为各个图层分别配置样式,就应该为这些数据归归类;方法有两种

一是使用这四个基础数据表中再创建新的数据表;

二是以这四个表为基础,创建视图(View);

效果都一样,不过视图在应用时会慢点,我的CPU太低级,但是硬盘还凑合,所以我们采用第一种方式吧

先下载本文中将用到的各种脚本和批处理文件osmsld.zip,然后放到合适的位置解压

wget -O osmsld.zip https://download.csdn.net/download/junlong750/12149541unzip osmsld.zip

现在就可以正式创建图层表了,登录postgres用户,然后使用osm_db的owner(你想要在GeoServer中使用的那个用户运行SQL脚本文件),不要使用无关用户,不然后面你得一个个得去修改权限。

su postgrespsql -U postgres -W -d osm_db -a -f /tmp/osmsld/create_tables.sql

创建也没有非常慢,大概不到2分钟生成完了,我们来看一下数据库结构,可以看出来比之前多了不少表出来。

2. 在GeoServer中创建工作空间和数据源

1、创建工作区

2、新建数据源

3. 创建样式和图表

可以手动创建,也可以使用批处理文件自动创建,样式和图表加起来近50个,你选哪个?反正我选自动创建了

回到GeoServer的服务端,将之前我们下载的osmsld.zip文件中的sld.zip解压开 unzip sld.zip ,然后稍修改下SLD_create.sh文件,主要是修改GeoServer的REST API相关参数,如下:

通常而言,既然是REST服务了,应该远程和本地调用都没有问题,然而在本例中,经实测,发现localhost可以,如果在另一台linux上远程调用REST服务,会出现错误,导致不能创建图层,原因以后在查吧,先使用本地调用。

在本文件的最下面,也修改点内容,将两行暂不用的命令注释掉,如下:

然后进入刚才解压sld.zip形成的sld目录 cd sld ,然后调用以下命令

cd sld
sudo sh /tmp/osmsld/SLD_create.sh

看到上面这个画面就说明成功了。

如果整个过程顺利应该就可以在GeoServer的图层和样式里面能看到结果了:

如果你的点比较低,很有可能只能看见样式,而看不见图层,那最好找找原因,得新来一遍,osmsld.zip包中有一个SLD_delete.sh文件可以自动帮你清理刚才的工作,不过貌似它清理过头了,把工作空间和数据源也给清掉了,因为我都在测试环境下在用,所以会看到在清理后工作空间和数据源里面空空如也,所以SLD_delete.sh批处理文件慎用,不要将你其他有用的东西删掉了!!!

在使用SLD_delete.sh之前,照例先修改下其配置,如下:

4. 创建图层组

执行到上一步,应该是可以看到图层样式了,但是那只能显示整个地图的一个层,我们还需要建个完整的图层组,用来展示完整地图,同样手动方式和自动方式让你选,你选哪个?

我还是用自动方式吧

先做个准备工作,打开osmsld.zip包中的layergroup.xml文件,将ocean这一节给删掉,为啥要删呢?因为我们并没有导入海图数据,因我电脑太搓的原因,今天时间有限,不导ocean数据了,另找时间专门开贴导ocean数据吧

随后打开SLD_create.sh,滚动到最底部看一眼,我们要照着这两行命令创建图层组

curl -v -u admin:geoserver -XPOST -d@layergroup.xml -H "Content-type: text/xml" http://localhost:8080/geoserver/rest/workspaces/chinaosm/layergroups

 最后,如果想使用命令删除掉这个图层使用下列命令即可

curl -v -u admin:geoserver -XDELETE http://localhost:8080/geoserver/rest/workspaces/chinaosm/layergroups/osm

5. 添加地名中文字体

进行完上一步操作后,在Layer Preview中就可以预览地图了,但是地名的显示字体不一定是我们想要的,所以接下来我们看看如果添加相要的字体,如微软雅黑,设置字体部分参考了这里。

首先,给GeoServer所在的CentOS7安装微软雅黑,从Windows操作系统的C:\Windows\Fonts中复制微软雅黑,放到一个指定文件夹中,就会得到一两个文件:msyh.ttf、msyhbd.ttf,将这两个字体打包到一个zip文件夹中,然后想办法弄到CentOS的/tmp文件夹中。怎么弄自已想办法(我为了方便,在Windows上弄了个web服务器,这样不论怎么折腾虚拟机,服务器上的东西都可以使用)

安装字体管理工具

sudo yum install  fontconfig mkfontscale -y

创建字体目录,并且将msyh.ttf和msyhbd.ttf复制到字体目录中

sudo mkdir -p /usr/share/fonts/winsudo mv msyh.ttf msyhbd.ttf /usr/share/fonts/win

建立字体索引信息,更新字体缓存

cd /usr/share/fonts/winsudo mkfontscalesudo mkfontdirfc-cache

然后重启系统, reboot ,重启好后先查看服务器状态,由原来28个字体可用变为30个字体可用了,good!看一眼

打开GeoServer的Styles菜单,查找到highway-label样式,并打开编辑,将其中的样式内容复制到notepad中,然后全使用Ctrl + H将所有“DejaVu Sans”替换成"微软雅黑",再将notepad中的样式复制到样式编辑器中,然后点击Validate验证,如果没有错误就可以保存了。

最后,我们在Layer Preview中使用OpenLayers预览一下地图吧

GeoServer发布OSM地图相关推荐

  1. Geoserver发布切片地图组完整教程

    Geoserver发布切片地图组完整教程 特别注意:geoserver中所有使用的名称都不用使用中文!!!!,以免出现未知错误. - 下载安装Geoserver 1.下载地址http://geoser ...

  2. Geoserver发布wms地图服务的样式制作(地图工具篇.4)

    听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 相关文章查看: 5.(地图工具篇)Geoserver发布wms地图服务(shape数据) 1.安装udig工具 安装较简单,不做介绍 下 ...

  3. GeoServer发布osm数据地图服务

    文章目录 前言 正文 一.下载安装PostgreSQL和PostGIS 二.下载osm2pgsql 三.下载 osm数据 四.修改PostgreSQL配置 五.OSM数据导入PostgreSQL中 1 ...

  4. Docker+geoserver发布shp地图服务

    场景 Docker+Tomcat+geoserver+shp发布地图服务: 上面从Docker 拉取tomcat镜像,tomcat镜像中添加geoserver的war包的方式实现发布shp地图服务的流 ...

  5. ol+天地图+geoserver_教程:使用GeoServer发布离线地图服务(WMS)

    太乐地图下载器 是一款集地图类数据下载(谷歌/百度/天地图/海图/专题图/E都市等).矢量类数据下载(高程/DEM/等高线/三维地形.兴趣点POI.建筑轮廓.路网/水系/绿地等),地图服务发布.离线地 ...

  6. Geoserver发布wms地图服务(shape数据)(地图工具篇.5)

    听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 相关文章查看 28.(leaflet篇)leaflet接入geoserver发布的wms服务 1.新建一个工作区 2.输入工作区名称和命 ...

  7. 傻瓜教程:使用GeoServer发布离线地图服务

    一.离线地图下载 离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另 ...

  8. OSM地图本地发布(四)-----Geoserver发布自定义地图

    一.准备工作 1. 安装jdk 1.8.tomcat 2.安装Geoserver,下载地址:https://sourceforge.net/projects/geoserver/files/GeoSe ...

  9. openlayer调用geoserver发布的地图实现地图的基本功能

    转自:http://starting.iteye.com/blog/1039809 主要实现的功能有放大,缩小,获取地图大小,平移,线路测量,面积测量,拉宽功能,显示标注,移除标注,画多边形获取经纬度 ...

  10. geoserver发布shape地图步骤

    1.到 http://geoserver.org/download/ 下载 安装包 2.解压安装包 3.启动geoserver4.登录geoserver 5.发布图层 发布shap文件存放路径 sha ...

最新文章

  1. 【3】npm run build Vue的项目,如何修改相对路径配置
  2. R语言使用fmsb包、gradar包可视化雷达图(radar chart、蜘蛛图spider plot)、ggpubr包可视化点图、GGally包可视化多变量的平行坐标轴图
  3. django数据模型字段和通用参数说明
  4. linux下dns设置详解
  5. 如何处理 Hybris Accelerator css style 显示不正确的问题
  6. Joy of Handcraft Gym - 102822J(线段树或差分)
  7. python制作远程桌面控制_Python 远程桌面协议RDPY简介
  8. Win7笔记本查看无线网卡是否“支持的承载网络”的方法
  9. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.......
  10. 微软(中国)CTO韦青:人工智能时代还没有真正到来
  11. 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)
  12. 根据需求增加或删除表格行
  13. 网络虚拟化基础协议之Geneve
  14. .describe() python_Python实现ARMA模型
  15. 上传苹果版本时错误解决办法:No suitable application records were found. Verify your bundle identifier
  16. Flash游戏开发必备书籍
  17. 雄迈录像机开放哪些端口
  18. 华为OD岗位面试流程及总结
  19. 如何知道php是32位还是64位,怎么看电脑是32位还是64位详细介绍
  20. COMSOL 专题学习

热门文章

  1. 深度 | 蚂蚁金融智能平台:让AI在金融场景发挥作用
  2. 微信红包服务器连接失败是怎么回事啊,微信公众平台,红包_微信发红包接口,线下测试正确,服务器上提示CA证书错误,微信公众平台,红包 - phpStudy...
  3. 阿里云短信服务(无需营业执照)快速上手
  4. win10系统如何玩各个版本的红色警戒
  5. ARPG游戏角色行为分析
  6. R语言入门-数据分析实操(tyidyverse工作流+代码)
  7. 《关键对话——何谓关键对话》读书笔记(一)
  8. iOS自定义UITableViewRowAction
  9. Rainmeter音频频谱插件分享
  10. Elasticsearch教程(31) es mapping参数doc_values enabled ignore_above norms store详解