使用SQL视图查询在

时间:2017-11-05 11:10:41

标签: geoserver

我使用openlayer在地图上绘制多边形并将geojson存储到sql server DB和From Stored geojson我想在GeoServer上创建多边形图层并再次使用wms请求在地图上反映多边形图像图块。

因此在地图上绘制并存储到db工作正常。

表列EntityJson看起来像

{
  "LatLong": {
        "Type": "string",
        "Value": "{ \"type\": \"Polygon\", \"coordinates\": [ [ [ -76.2890625, 58.07787626787517 ], [ -95.625, 50.28933925329178 ], [ -84.72656249999999, 41.244772343082076 ], [ -62.22656249999999, 43.32517767999296 ], [ -56.6015625, 48.45835188280866 ], [ -53.78906249999999, 56.9449741808516 ], [ -63.28125, 62.91523303947614 ], [ -76.2890625, 58.07787626787517 ] ] ] }"
    }
}

和EntityType是" Area"。

但是对于Next流程来说,在客户端调用WMS请求,我试图通过在GeoServer上使用sql视图查询来创建多边形层,以便动态从db中获取geojson,基于EntityType =" Area& #34;

但我没有得到如何为多边形图层创建sql视图查询以从SqlDB表列EntityJson获取geojson数据。

请有人告诉我。如何从表列中获取多边形geojson并使用sqlview查询在GeoServer上创建多边形图层。

感谢。

1 个答案:

答案 0 :(得分:0)

执行此操作的唯一方法是使用字符串替换从JSON构造WKT多边形定义,这将是缓慢且容易出错的。

更好的方法是不将GeoJSON存储在数据库中,而是存储多边形。这样做的简单方法是使用OpenLayers WFS-T支持将功能发送到GeoServer,然后GeoServer将它们正确地写入数据库(如果您以后更改数据库,则以与供应商无关的方式),并且可以通过WMS界面没有额外的努力。

或者,如果你必须使用GeoJson作为传输格式,那么你应该看一下像mongoDB这样的NoSQL数据库,它也可以用作GeoServer中的数据存储。