作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我计划将 GeoServer 与 PostGIS 数据库结合使用,以通过 Web map 服务提供等高线。
我有一个简单的经纬度值网格,我想将其存储在数据库中并绘制轮廓。虽然 GeoServer 用户手册暗示在此示例中是可能的...
...它没有讨论数据应该采用什么格式。请有人能建议一个合适的 PostGIS 数据库模式,我可以使用 GeoServer 理解并能够绘制轮廓吗?最好是一个可以与上面链接中的 GeoServer 示例一起使用的。
感谢您的帮助。
最佳答案
由于您的数据已经在 Java 程序中,我将深入研究 GeoTools这是 GeoServer 的基础库用来做实际工作。
查看ContourProcess你真正需要的是 GridCoverage2D这是对二维渲染图像支持的网格数据值的基本访问。图像中的每个波段都表示为样本维度。
所以你想要获取数据数组并执行如下操作:
WritableRaster raster2 = RasterFactory.createBandedRaster(java.awt.image.DataBuffer.TYPE_INT, w,
h, 1, null);
for (int i = 0; i < w; i++) {//width...
for (int j = 0; j < h; j++) {
raster2.setSample(i, j, 0, myData[i*w+j]);
}
}
GridCoverageFactory gcf = new GridCoverageFactory();
// Here I'm using OSGB as I live in the UK you would be using something else
CoordinateReferenceSystem crs = CRS.decode("EPSG:27700");
// Position of Lower Left Corner of grid
int llx = 500000;
int lly = 105000;
// Pixel size in projection units
int resolution = 10;
ReferencedEnvelope referencedEnvelope = new ReferencedEnvelope(llx, llx + (w * resolution), lly, lly + (h * resolution),
crs);
GridCoverage2D gc = gcf.create("name", raster2, referencedEnvelope);
然后您可以将其写成 GeoTiff 或将以上所有内容包装到 a new Process 中返回轮廓。
关于postgis - 如何在 PostGIS 数据库中存储值网格,以便 GeoServer 可以绘制轮廓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59632884/
我是一名优秀的程序员,十分优秀!