地图依赖服务 GeoServer+PostgreSQL+PostGIS+pgRouting 整理

I 相关工具包

       GeoServer下载地址:

http://geoserver.org/download/

PostgreSQL下载地址:

https://www.postgresql.org/download/

paAdmin4下载地址:

https://www.pgadmin.org/download/pgadmin-3-windows/

PostGIS下载地址:

http://postgis.net/windows_downloads/

pgRouting已经包含在安装程序中

 

II 工具安装

PostgreSQL

本机安装PostgreSQL 的话 , pgAdmin4 不用另外安装 , 已经包含在安装程序中

PostGIS

PostGIS 安装需要依赖PostgreSQL (安装到PostgreSQL安装目录下面就可以)

新的空间数据库里添加空间扩展

CREATE EXTENSION postgis;

CREATE EXTENSION pgrouting;

CREATE EXTENSION postgis_topology;

CREATE EXTENSION fuzzystrmatch;

CREATE EXTENSION postgis_tiger_geocoder;

CREATE EXTENSION address_standardizer;

 

安装问题

1 PostgreSQL 安装完成后 , 可以配置下相关环境变量(方便后续支持dos命令)

2 PostgreSQL 安装后有时会出现没有初始化 ${installDir}/data 目录 , 导致数据库服务无法启动Or无法登录 , 需要手动初始化一下data的数据 :

管理员身份下进入dos (cmd) 命令界面

创建Postgres用户

net user postgres postgres /add

在数据库根目录建立data目录

D:\GIS\PostgreSQL>md data

 

将data目录的权限赋给postgres用户

D:\GIS\PostgreSQL>Cacls data /e /t /r postgres:C
处理目录:D:\GIS\PostgreSQL\data

初始化数据库

D:\GIS\PostgreSQL\bin>initdb.exe -D ../data -E UTF-8 --locale=chs -U postgres -W

初始化后,需要输入新的用户密码,用于登录数据库。

注册PostgresSQL服务

D:\GIS\PostgreSQL\bin>pg_ctl.exe register -N PostgreSQL -D D:\GIS\PostgreSQL\data

启动PostgresSQL服务

net start PostgreSQL

停止PostgresSQL服务

net stop PostgreSQL

 

如果登录时提示 用户 ‘postgres’ 不存在 , 运行如下命令 :

createuser -s -r postgres

** Postgresql异常Down机后服务无法启动,服务未报告任何错误,右键电脑-->管理

存在遗留postgres 进程 , 找到日志中报错的 pid 例 : 4016

查看进程 netstat -ano | findstr 4016

杀死进程 taskkill /pid 4016 /f

重启服务 net start [postgresql]

 

 

III 数据问题

1 安装PostGIS 后 , 可以使用 PostGIS 3 Shapefile and DBF LoaderExporter 工具将shapefile文件数据导入PostgreSQL数据库

2 OSM 路网资源拉取&入库操作

      a 从官网可以导出对应地区的OSM数据

           https://www.openstreetmap.org

      b 使用 osm2pgsql 工具将osm文件数据导入PostgreSQL 数据库

           dos 进入工具包解压目录下 (D:\osm2pgsql)

osm2pgsql -d osm -U postgres  -P 5432 -C 1024  -S "D:\osm2pgsql\ default.style"  ../asia-latest.osm

-d:你的数据库名称

-U:数据库的用户名

-P:数据库的端口

-C:数据缓存(单位是M,你导入的数据的大小合理的设置缓存,如果设置的缓存太小,会导致由于缓存不足造成的导入失败)

-S:选择导入时候用到的style文件

asia-latest.osm:这个是我要导入的osm数据文件

      c 数据转变问题

         osm数据导入数据库后 , 可以用PostGIS工具导出成shapefile,再重新将shapefile导入数据库就好(解决数据兼容问题)

 

IV 路由查询问题

       1 路由数据查询时 , 报错提示 :

           org.postgresql.util.PSQLException:错误: Operation on mixed SRID geometries

           查看 对应表中对应 geom 字段的 SRID 是否已经给定

SELECT st_srid(geom) FROM planet_osm_roads

           如果给定的 SRID 与查询时指定的 SRID 不一致或者未给定(SRID=0),保持查询的SRID 与 数据表给定 SRID一致,如果是未给定(SRID = 0) , 则设置一个默认的

update planet_osm_roads set geom = st_geomfromtext(ST_AsText(geom),4326)

 

V 地图资源发布

1 地图资源入库

              将拿到的地图资源(shp文件格式)导入到PostgreSQL数据库

           打开 PostGIS shp 数据导入工具 , 然后配置数据库信息

          

          

           点击OK后 , 会提示连接信息 , 提示连接成功后 , 添加需要导入的shp 文件

          

           文件路径尽量别用中文 , 否则导入时会出现编码异常 , 文件添加后 , 将 SRID 设置为 4326 (这个很重要 , 指定地图加载时使用的坐标系) , 然后点击导入 import

     

           如果文件内容中存在中文信息 , 可能会出现导入报错 , 需要转码处理 , 不用特意去修改 , 报错了再去修改

          

           数据导入成功后 , 可以登录到数据库查看 , 表名=文件名

 

 

2 地图数据算法

              运行pgAdmin服务

($PostgreSQLDir$/pgAdmin 4/bin/ pgAdmin4.exe)

双击后 , 浏览器会弹出PostgreSQL数据库可视化界面 , 配置好数据库连接信息 , 登入对应数据库 , 可以看到我们已经导入的数据

新建对应的数据分析算法函数 , 对应数据表结构修改 , 上面已经有提到 , 需要对会检索到的数据表进行结构变更

 

3 地图资源发布

              运行geoserver 服务 ($geoserverDir$/bin/startup.bat) , 服务器来后 , 登入系统 : http://localhost:8080/geoserver/web/

              默认的账号密码是 admin/geoserver

          

           登陆成功后 , 可以开始地图资源发布以及管理相关操作

           新建工作区

              添加数据存储 , 选择矢量数据源 PostGIS

          

新建图层 , 选择工作区后 , 能看到对应数据库下面所有的资源数据都可以在这里发布

配置SQL视图

到这里 , 地图已经发布完成 , 可以通过openlayers 进行调用测试

 

 

4 地图数据加载

关于地图样式的修改 , 可以在geoserver 系统里面进行单独调整

      

 

VI 影像数据(img)发布支持

1 geoserver 扩展插件安装

              从官网下载 gdal 插件包 (需要对应geoserver服务版本)

           http://geoserver.org/release/2.16.0/ 

          

      

下载拿到压缩包后 , 将其解压到 geoserver-2.16.0 应用服务目录的 lib 路径下($geoserver$ \WEB-INF\lib) , 已经存在的包 , 直接覆盖替换

2 GDAL (源栅格空间数据转换库) 安装

              下载 gdal 安装包 (我的安装是依赖python完成的 , 直接安装不确定是否能够成功)

      http://www.gisinternals.com/query.html?content=filelist&file=release-1911-x64-gdal-2-4-3-mapserver-7-4-2.zip

 

           安装完成后会生成 C:\Program Files\GDAL 安装路径

           将这个路径添加环境变量的Path 内容中

      相关配置需要重启电脑生效 , 然后重启 geoserver , 可以看到数据源发布中已经能够支持 ERDASImg 栅格数据发布

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值