GeoServer发布OSM地图
参考顺序:
- CentOS7.5安装Postgresql10.5和PostGIS(CentOS7.6安装Postgresq11和PostGIS)
- CentOS7部署GeoServer
- CentOS7部署osm2pgsql
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地图相关推荐
- Geoserver发布切片地图组完整教程
Geoserver发布切片地图组完整教程 特别注意:geoserver中所有使用的名称都不用使用中文!!!!,以免出现未知错误. - 下载安装Geoserver 1.下载地址http://geoser ...
- Geoserver发布wms地图服务的样式制作(地图工具篇.4)
听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 相关文章查看: 5.(地图工具篇)Geoserver发布wms地图服务(shape数据) 1.安装udig工具 安装较简单,不做介绍 下 ...
- GeoServer发布osm数据地图服务
文章目录 前言 正文 一.下载安装PostgreSQL和PostGIS 二.下载osm2pgsql 三.下载 osm数据 四.修改PostgreSQL配置 五.OSM数据导入PostgreSQL中 1 ...
- Docker+geoserver发布shp地图服务
场景 Docker+Tomcat+geoserver+shp发布地图服务: 上面从Docker 拉取tomcat镜像,tomcat镜像中添加geoserver的war包的方式实现发布shp地图服务的流 ...
- ol+天地图+geoserver_教程:使用GeoServer发布离线地图服务(WMS)
太乐地图下载器 是一款集地图类数据下载(谷歌/百度/天地图/海图/专题图/E都市等).矢量类数据下载(高程/DEM/等高线/三维地形.兴趣点POI.建筑轮廓.路网/水系/绿地等),地图服务发布.离线地 ...
- Geoserver发布wms地图服务(shape数据)(地图工具篇.5)
听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 相关文章查看 28.(leaflet篇)leaflet接入geoserver发布的wms服务 1.新建一个工作区 2.输入工作区名称和命 ...
- 傻瓜教程:使用GeoServer发布离线地图服务
一.离线地图下载 离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另 ...
- OSM地图本地发布(四)-----Geoserver发布自定义地图
一.准备工作 1. 安装jdk 1.8.tomcat 2.安装Geoserver,下载地址:https://sourceforge.net/projects/geoserver/files/GeoSe ...
- openlayer调用geoserver发布的地图实现地图的基本功能
转自:http://starting.iteye.com/blog/1039809 主要实现的功能有放大,缩小,获取地图大小,平移,线路测量,面积测量,拉宽功能,显示标注,移除标注,画多边形获取经纬度 ...
- geoserver发布shape地图步骤
1.到 http://geoserver.org/download/ 下载 安装包 2.解压安装包 3.启动geoserver4.登录geoserver 5.发布图层 发布shap文件存放路径 sha ...
最新文章
- 【3】npm run build Vue的项目,如何修改相对路径配置
- R语言使用fmsb包、gradar包可视化雷达图(radar chart、蜘蛛图spider plot)、ggpubr包可视化点图、GGally包可视化多变量的平行坐标轴图
- django数据模型字段和通用参数说明
- linux下dns设置详解
- 如何处理 Hybris Accelerator css style 显示不正确的问题
- Joy of Handcraft Gym - 102822J(线段树或差分)
- python制作远程桌面控制_Python 远程桌面协议RDPY简介
- Win7笔记本查看无线网卡是否“支持的承载网络”的方法
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.......
- 微软(中国)CTO韦青:人工智能时代还没有真正到来
- 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)
- 根据需求增加或删除表格行
- 网络虚拟化基础协议之Geneve
- .describe() python_Python实现ARMA模型
- 上传苹果版本时错误解决办法:No suitable application records were found. Verify your bundle identifier
- Flash游戏开发必备书籍
- 雄迈录像机开放哪些端口
- 华为OD岗位面试流程及总结
- 如何知道php是32位还是64位,怎么看电脑是32位还是64位详细介绍
- COMSOL 专题学习
热门文章
- 深度 | 蚂蚁金融智能平台:让AI在金融场景发挥作用
- 微信红包服务器连接失败是怎么回事啊,微信公众平台,红包_微信发红包接口,线下测试正确,服务器上提示CA证书错误,微信公众平台,红包 - phpStudy...
- 阿里云短信服务(无需营业执照)快速上手
- win10系统如何玩各个版本的红色警戒
- ARPG游戏角色行为分析
- R语言入门-数据分析实操(tyidyverse工作流+代码)
- 《关键对话——何谓关键对话》读书笔记(一)
- iOS自定义UITableViewRowAction
- Rainmeter音频频谱插件分享
- Elasticsearch教程(31) es mapping参数doc_values enabled ignore_above norms store详解