GeoServer发布OSM地图

article/2025/8/26 16:41:50

参考顺序:

  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预览一下地图吧


http://chatgpt.dhexx.cn/article/9fq6A8Gj.shtml

相关文章

使用OSM数据创建城市模型

使用OSM数据创建城市模型 一.OSM数据获取方式 (1)通过OpenStreetMap获取 (2)通过Geofabrik下载最近的OSM数据 (3)有很多插件也提供了数据获取方式,根据自己用的软件,自行百度查找 …

java osm_OSM初识(三)OSM Data

一 导出数据 将XML格式的OSM数据转换成另一种格式。 二 提取数据 剪切你选择区域内的数据,或者提取出特定区域特定的特征 三 数据格式 OSM文件仅属于OSM,不能用别的软件打开。其中后缀为bz2,pdf的文件是为了节省空间压缩过的OSM文件。一个简单…

简单学习OSM(OpenStreetMap)文件格式的最基础结构

目标 获取一个最简单的OSM文件,并学习其最基础的结构。 获取OSM数据的步骤 操作很简单: 进入官网:https://www.openstreetmap.org/ 点击左上角的 “导出” 按钮。 然后,填入坐标范围,点击按钮即可导出osm文件&…

OSM(OpenStreetMap)使用简述

0.背景 基于开源的地图制作工具osm以及开源的仿真引擎CARLA完成交通场景仿真场景的搭建。 1.构建OSM场景 https://www.openstreetmap.org/#map16/31.2808/121.1690 1.1.搜索关键字 1.2. 手动选择不同的区域 1.3.导出 导出为osm文件 2.osm->xodr OpenStreetMap 格式文件…

OSM数据内容解析

OSM数据内容解析 数据简介 OpenStreetMap(简称OSM,中文是公开地图),这是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。是一款由网络大众共同打造的免费开源、可编辑的地图服务。 OSM采…

OSM下载路网数据

OpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。 本文介绍如何使用OSM免费下载路网数据。如想直接获取全国路网数据,可见文末! OSM地…

python第三方库pygame的使用

作用:pygame一般用来做游戏 注意:1.在使用pygame提供的功能之前,需要调用init方法 2.在游戏结束前需要调用 quit 方法 pygame中的各个函数: 1.pygame.init():该函数在使用pygame时进行初始化,只有引用了该…

Py之pygame:Python的pygame库的简介、安装、使用方法详细攻略

Py之pygame:Python的pygame库的简介、安装、使用方法详细攻略 目录 pygame库的简介 pygame库的安装 pygame库的使用方法 pygame库的简介 PyPoice是SDL多媒体库的Python包装模块。它包含Python函数和类,这些类和类允许使用SDL对CDROM、音频和视频输出、…

python3安装pygame出错(输入“pip3 install pygame“,安装pygame模块报错)

使用pip3 install pygame,安装出错 自己已经更换源镜像,但总是在执行到最后一步的时候报错,通过网上的方法安装,总是出现两个配置无法被找到,向下执行的时候出现错误,最后以第一种方式安装成功。 执行: p…

【Pygame基本使用】

pygame是什么 pygame是跨平台Python模块,专门为电子游戏设计,包含图像、声音等;简单的说它是别人已经编写好的程序,并放在了一个类似库里,专门给别人使用的; pygame的图形接口 https://www.jianshu.com/p…

python Pygame的具体使用讲解

一、实验介绍 1.1 实验内容 在本节课中,我们将讲解Pygame的常用对象及其操作,包括图形、动画、文字、音频等,确保同学们对Pygame有一个基础的了解,同时为后续课程做好准备。 Pygame图形Pygame动画Pygame文字Pygame音频Pygame事…

Pygame 官方文档 - 中译版

pygame 文档 Pygame之家【Pygame Home】 帮助内容【Help Contents】 指导索引【Reference Index】最有用的东西 【Most useful stuff】Color | display | draw | event | font | image | key | locals mixer | mouse | Rect | Surface | time | music | pygame 高级的东西【…

pygame入门

pygame入门 文章目录 pygame入门说明一、pygame的安装二、pygame模块概览三、pygame的“hello world”四、事件理解事件事件检索处理鼠标事件处理键盘事件事件过滤产生事件 五、显示全屏显示改变窗口尺寸复合模式其他 六、字体创建font对象使用字体中文字体 七、颜色八、图像使…

pygame下载(非常详细)

pygame安装 第一次安装pygame,从网上查了很多资料,各种方式都有,我发现了一种很简单的方法,不用去官网找,直接输入命令就能下载,希望能给大家提供一些参考! 打开终端 1、winR 打开终端&#…

Pygame是什么

Python 是当下最为火热,且功能最为全面的一门编程语言。Python 之所以深受大家喜爱, 除了可以被应用到“人工智能”领域之外,还可以延伸到数据分析、Web 开发、自动化测试、自然语言处理、游戏开发等各个领域。这一切的实现得益于 Python 有一个强大的第三方库,这个第三方库…

【pygame游戏开发】这几个经典游戏,勾起了少年的快乐

给大家分享几个好玩有趣的小游戏,既提升了学习的兴趣,又提升了学习效率,告别枯燥的学习。 一、飞机大战 1、源码部分 模块导入 import sys import cfg import pygame from modules import *游戏界面 def GamingInterface(num_player, scr…

python-颜色识别

使用Python来做颜色识别,使用了openCV import cv2 import numpy as np import time class ColorTac(object):def colorTacing(self):print(-*-COLOR TACKING MODE-*-)print(you can input:blue,red,yellow,green,purple.and must input one)color input("Col…

android颜色识别

写的一个关于颜色识别的小功能。识别主要颜色。 思路:遍历像素点,找出出现次数最多的像素值作为主要颜色。 采用的方法有: 1.调用摄像头,拍照,裁剪,压缩。 2.找出色值。 3.转换成hsv空间,进行颜…

颜色及图片识别原理,颜色识别传感器介绍

光及颜色 1.光:是人类眼睛可以看见的一种电磁波,也称可见光谱。在科学上的定义,光是指所有的电磁波谱。光是由光子为基本粒子组成,具有粒子性与波动性,称为波粒二象性,一般人的眼睛所能接受的光的波长在380…

颜色识别总结

颜色检测 1、目标检测detr 【End-to-End Object Detection with Transformers】 论文解读 源码复现 2、目标检测deformable detr 【DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION】 论文解读 源码复现 3、目标检测mmdet中的deformable detr …