记QGIS+PostgreSQL+GeoServer发布地图服务遇到的问题

本文介绍了在使用QGIS处理矢量图层时遇到的三个常见问题:PostgreSQL的addgeometrycolumn函数不存在,Polygon环点不足,以及geoserver预览图层和切片时的编码和命名错误。给出了详细的解决步骤。
摘要由CSDN通过智能技术生成

尝试用QGIS操作数据库->数据库管理器->导入矢量图层->OK

 

 1、错误:函数 addgeometrycolumn(unknown, unknown, unknown, integer, unknown, integer) 不存在
 

解决:

1、打开postgresql数据库的执行窗口,输入create extension postgis 并运行。

2、再操作导入矢量图层,成功!

2、错误:  Polygon must have at least four points in each ring

3、错误:geoserver无法预览图层

Layer Preview 里点击 Openayers链接无法预览图层,用IE打开点击后下载得到的own文件查看错误如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8084/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" >   <ServiceException>
      java.lang.RuntimeException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
2 字节的 UTF-8 序列的字节 2 无效。
</ServiceException></ServiceExceptionReport>

解决:修改样式文件中的编码UTF-8为中文GB2312格式

4、geoserver生成切片报错:org.geowebcache.rest.exception.RestException 400 BAD_REQUEST: Thread 14 Unknown layer sde:. Check the logfiles, it may not have loaded properly.

浏览器窗口地址的图层名称也也变成了问号:???

解决:查看出错的图层,切换到“数据”标签,修改图层的命名,把中文修改成英文

Leaflet是一个基于Web的交互式地图库,Geoserver是一个开源的地理空间数据服务器,PostGIS是一个基于PostgreSQL的地理空间数据库扩展。 在使用Leaflet、Geoserver和PostGIS来构建Web GIS应用程序时,通常的工作流程如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver发布的Web服务,并在Web页面上呈现地图。 具体步骤如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 首先,需要安装PostgreSQL和PostGIS扩展。然后,在PostgreSQL数据库中创建一个新的数据库,并在该数据库中启用PostGIS扩展。接下来,使用QGIS等GIS软件来创建或导入地理空间数据,并将其保存为PostGIS支持的格式(例如Shapefile)。最后,使用PostgreSQL客户端工具(例如pgAdmin)将地理空间数据加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 打开Geoserver的Web界面,在数据存储中添加新的PostGIS数据库,并配置数据库连接参数。然后,在Geoserver中创建工作区和数据图层,并将其发布为Web服务。在此过程中,可以选择不同的发布格式(例如WMS、WFS等)和地图样式(例如SLD文件)。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver发布的Web服务,并在Web页面上呈现地图。 在HTML页面中引入Leaflet库和Leaflet插件(例如Leaflet.markercluster)。然后,在JavaScript代码中编写Leaflet地图对象,并使用Ajax请求访问Geoserver发布的Web服务。最后,将地图对象添加到HTML页面中,以呈现交互式地图。 总之,Leaflet、Geoserver和PostGIS可以一起使用来构建功能强大的Web GIS应用程序,可以实现从数据管理到地图呈现的全流程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值