使用Openlayers和geoserver将功能保存到SQL Server

时间:2014-08-17 23:53:56

标签: sql-server sql-server-2008 openlayers geoserver

我使用SQL Server插件为geoserver(http://docs.geoserver.org/stable/en/user/data/database/sqlserver.html)使用WMS显示一些几何。这很好用。我也能够毫无困难地将几何图形提取为矢量。

现在我需要将检索到的矢量添加到另一个图层并将其保存到SQL Server数据库中的表中。这导致了一些问题。

这是一些代码:

saveStrategy = new OpenLayers.Strategy.Save();
saveStrategy.events.register("success", '', ChangesSuccess);
saveStrategy.events.register("fail", '', ChangesFailed);

function ChangesSuccess(e) {
    alert('Done');
}

function ChangesFailed(e) {
    alert('Failed');
}

selectionLayer = new OpenLayers.Layer.Vector(
        "SelectionLayer",
        {
            strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy]
            , projection: new OpenLayers.Projection("EPSG:25832")
            , protocol: new OpenLayers.Protocol.WFS({
                version: "1.1.0",
                url: "http://someserver.cloudapp.net:8181/geoserver/wfs",
                featurePrefix: 'xxxx',
                featureType: "xxxxxxxxx",
                featureNS: "xxx.xxx/xxx",
                geometryName: "xxxxx"
            })
            , displayInLayerSwitcher: false
        });

selectControl.events.register("featureselected", this, function (e) {
    var feat = e.feature;
    feat.state = OpenLayers.State.INSERT;
    selectionLayer.addFeatures([feat]);
    saveStrategy.save();
);

当我尝试保存新添加的功能时,我在保存策略的失败事件中遇到以下异常:

  

“java.lang.AbstractMethodError:org.geotools.jdbc.BasicSQLDialect.encodeGeometryValue(Lcom / vividsolutions / jts / geom / Geometry; ILjava / lang / StringBuffer;)V org.geotools.jdbc.BasicSQLDialect.encodeGeometryValue(Lcom / vividsolutions / JTS /的geom /几何; ILjava /郎/ StringBuffer的;)V“

我不知道该在这里尝试什么,但如果有人之前遇到过这个问题,或者对可能出现的问题有一些建议,我很高兴听到它。现在是凌晨1点50分,在修复之前可能不会睡觉所以所有建议都非常受欢迎:)

0 个答案:

没有答案