首页 文章

使用SQL视图查询在GeoServer上创建多边形图层

提问于
浏览
0

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

因此在 Map 上绘制并存储到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是“区域” .

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

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

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

谢谢 .

1 回答

  • 0

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

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

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

相关问题