使用 SQL 查看查询在 GeoServer 上创建多边形层
Create Polygon layer on GeoServer using SQL View Query
我正在使用 openlayer 在地图上绘制多边形并将 geojson 存储到 sql 服务器数据库和从存储的 geojson 我想在 GeoServer 上创建多边形图层并再次使用 wms 请求在地图上反映多边形图像图块。
所以在地图上绘制并存储到数据库中工作正常。
Table 列 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"。
但是为了在客户端调用 WMS 请求的下一个流程,我正在尝试通过在 GeoServer 上使用 sql 视图查询来创建多边形图层,以便根据 EntityType=[ 的位置从数据库中动态获取 geojson =28=].
但我不知道如何为多边形层创建 sql 视图查询以从 SqlDB table 列 EntityJson 获取 geojson 数据。
谁能告诉我。如何从 table 列获取多边形 geojson 并使用 sql 查看查询在 GeoServer 上创建多边形图层。
谢谢。
执行此操作的唯一方法是使用字符串替换从 JSON 构造 WKT 多边形定义,这将是缓慢且容易出错的。
更好的方法是不在数据库中存储 GeoJSON,而是存储多边形。执行此操作的简单方法是使用 OpenLayers WFS-T 支持将功能发送到 GeoServer,然后 GeoServer 会将它们正确写入数据库(如果您以后更改数据库,则以供应商中立的方式),并且能够通过以下方式访问它们WMS 界面无需额外努力。
或者,如果您必须使用 GeoJson 作为传输格式,那么您可能应该看看像 mongoDB 这样的 NoSQL 数据库,它也可以用作 GeoServer 中的数据存储。
我正在使用 openlayer 在地图上绘制多边形并将 geojson 存储到 sql 服务器数据库和从存储的 geojson 我想在 GeoServer 上创建多边形图层并再次使用 wms 请求在地图上反映多边形图像图块。
所以在地图上绘制并存储到数据库中工作正常。
Table 列 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"。
但是为了在客户端调用 WMS 请求的下一个流程,我正在尝试通过在 GeoServer 上使用 sql 视图查询来创建多边形图层,以便根据 EntityType=[ 的位置从数据库中动态获取 geojson =28=].
但我不知道如何为多边形层创建 sql 视图查询以从 SqlDB table 列 EntityJson 获取 geojson 数据。
谁能告诉我。如何从 table 列获取多边形 geojson 并使用 sql 查看查询在 GeoServer 上创建多边形图层。
谢谢。
执行此操作的唯一方法是使用字符串替换从 JSON 构造 WKT 多边形定义,这将是缓慢且容易出错的。
更好的方法是不在数据库中存储 GeoJSON,而是存储多边形。执行此操作的简单方法是使用 OpenLayers WFS-T 支持将功能发送到 GeoServer,然后 GeoServer 会将它们正确写入数据库(如果您以后更改数据库,则以供应商中立的方式),并且能够通过以下方式访问它们WMS 界面无需额外努力。
或者,如果您必须使用 GeoJson 作为传输格式,那么您可能应该看看像 mongoDB 这样的 NoSQL 数据库,它也可以用作 GeoServer 中的数据存储。