Geoserver2.5中的WFS实现存在严重错误。
我将数据集加载到SQL Server和PostGIS中。该数据集由几个点组成,采用本机EPSG:3857。
已为SQL Server连接设置Geometry_Columns表,并且在Geoserver设置中一切正常。
但是,尝试通过OpenLayers访问WFS:
wfs1.0。0 |获取|修复| SQL Server
WFS 1.0.0|GET|固定|PostGIS
wfs1.0。0 | POST | Fixed | SQL Server
wfs1.0。0 |立柱|固定|立柱
WFS 1.0.0|GET|BBOX|SQL服务器
wfs1.0。0 |获取| BBOX | PostGIS
WFS 1.0.0|POST|BBOX|SQL服务器
wfs1.0。0 |邮政| BBOX |邮政GIS
WFS 1.1。0 |获取|修复| SQL Server
WFS 1.1。0 |获取|修复| PostGIS
WFS 1.1。0 | POST | Fixed | SQL Server
WFS 1.1.0|POST|固定|PostGIS
WFS 1.1。0 | GET | BBOX | SQL Server
WFS 1.1。0 |获取| BBOX | PostGIS
WFS 1.1。0 | POST | BBOX | SQL Server
WFS 1.1.0|POST|BBOX|PostGIS
唯一成功的BBOX筛选请求是1.0。0获取PostGIS数据源。
如果有人希望自己运行测试,那么GeoServer是可公开访问的。欢迎任何建议。我真的需要让它与SQL Server一起工作。
http://developer.system-ns.net:8080/geoserver/MobileSurvey/ows?service=WFS
下面是我如何调用来自OpenLayers 2.13的WFS作为POST请求:
var wfsLayer = new OpenLayers.Layer.Vector('CATASTRO', {
projection: 'EPSG:3857',
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.WFS({
version: '1.0.0',
url: 'http://developer.system-ns.net:8080/geoserver/MobileSurvey/wfs',
srsName: 'EPSG:3857',
featurePrefix: 'MobileSurvey',
featureType: 'CATASTRO_SQL3857',
geometryName: 'GEOMETRY',
featureNS: 'http://argeomatica.com/MobileSurvey'
})
});
这是SQL Server数据源。将PostGIS数据源的featureType更改为“catastro_pg3857”。我将策略从Fixed切换到BBOX,版本在'1.0'之间。“0”和“1.1”。0'用于不同的测试。
这是我的GEThtml" target="_blank">请求:
var wfsOptions = {
url: 'http://developer.system-ns.net:8080/geoserver/MobileSurvey/ows?',
params: {
request: 'GetFeature',
service: 'WFS',
version: '1.0.0',
typeName: 'catastro_pg3857',
srsName: 'EPSG:3857'
},
format: new OpenLayers.Format.GML({
featureNS: 'http://argeomatica.com/MobileSurvey',
geometryName: 'GEOMETRY'
})
}
wfsLayer = new OpenLayers.Layer.Vector('CATASTRO', {
projection: 'EPSG:3857',
strategies: [new OpenLayers.Strategy.BBOX()],
visibility: true,
protocol: new OpenLayers.Protocol.HTTP(wfsOptions)
});
干杯,丹尼斯
我的第一次尝试是查看sqlserver中的无效几何体。您的postgis图层显示正确。
当我从你的geoserver为它抛出的sql服务器生成普通的KML输出时,org.geoserver.platform.服务例外:java.lang.运行时间例外:java.io.IO例外:错误发生计算CATASTRO_SQL3857的边界
对于postgis,KML的生成没有错误。
试试这个:
使现代化
好奇知道结果...
OpenLayers 是一个高性能、功能丰富的库,用于在 Web 上创建交互式地图。它可以显示从任何来源加载的地图图块、矢量数据和标记。
我正在使用sharpmap将MSSQL中的边界(几何体)渲染为PNG图像。这一切都很好,除了国家在平面图像格式上看起来太“宽”。 据我所知,我需要创建到EPSG:3857投影的转换,但我不知道如何做。 这是我的密码 WKT可以在这里找到https://pastebin.com/PEbpAdxT 感谢您的帮助。 编辑2 我也尝试了以下转换,但这会呈现空白的png(没有红色的十字线)
主要介绍 SuperMap iClient for OpenLayers 的入门用法,详细的接口参数请参考 API 页面
返回这样的定位坐标,但是在地上是定位不对
一个应用的请求是用 yii\web\Request 对象来表示的,该对象提供了诸如 请求参数(译者注:通常是GET参数或者POST参数)、HTTP头、cookies等信息。 默认情况下,对于一个给定的请求,你可以通过 request application component 应用组件(yii\web\Request 类的实例) 获得访问相应的请求对象。在本章节,我们将介绍怎样在你的应用中使用这个
Wiki ▸ [[API--中文手册]] ▸ [[核心函数]] ▸ 请求 如果你不访问数据那么你就不能可视化它。幸运的是有很多的方法可以把数据放到浏览器中。对于小数据集,你可以硬编码到你的脚本里,或者使用数据属性嵌入到DOM中。对于大数据集,你可以引用外部脚本并定义你的数据为一个全局变量。(JSONP就是一个常见的例子)。最通用的方式是使用XMLHttpRequest, 或说XHR加载数据到浏览器