首页 文章

Geoserver - 连接到SQL Server 2008 Express并获取数据

提问于
浏览
1
  • Bref history: -

我正在使用MapServer,一切都运行正常,除了当我使用PixMap直接在图层上绘制标记时,它在tile之间切割 . 因此,我决定更改为GeoServer,它看起来能正常工作以在瓷砖之间绘制一些图像/像素图 .

  • End of history -

好的,我能够连接到我的数据存储,即Ms Sql Server 2008(Express版) . 也许,我无法在OpenLayer Map 上显示任何内容 .

我的数据库中的点的示例:

POINT (2.66131 48.8792)
POINT (2.66131 48.8792)
POINT (2.67789 48.8982)
POINT (2.67789 48.8982)
POINT (2.70361 48.9402)
POINT (2.76454 48.9866)

在我的GeoServer 2.0.2中,我实际上使用了点的默认样式(红色方块点) . 数据库中这些点的EPSG是“4326”,在GeoServer的配置中,它也是4326,边界如下:

Min X: 2
Min Y: 46
Max X: 8
Max Y: 50

我做错了什么不能显示任何积分?

编辑这是我的表的定义

id  int (PK)
lon float
lat float
geom    geometry

以下是来自GeoServer的查询示例:

SELECT "id",CAST("geom".STSrid as VARCHAR) + ':' + "geom".STAsText() as "geom" FROM "TestGeom" WHERE "geom".Filter(geometry::STGeomFromText('POLYGON ((-236.25 -120.234375, -236.25 120.234375, 236.25 120.234375, 236.25 -120.234375, -236.25 -120.234375))', 0)) = 1

只有当我将数据库中的EPSG设置为0(它们仍未在openlayer“预览”中显示)时,它才会返回一个点列表 . 如果我在4326离开它,它什么都不返回 . 由geoserver绘制的多边形位于EPSG:0 .

1 回答

  • 1

    对于遇到相同问题的人:

    我找到了它无法正常工作的原因 . “Native-SRC”没有正确设置(实际上我根本没有任何 Value ) . 这实际上是我无法看到任何东西的主要原因 . 现在没有任何理由(或奇迹),在删除所有内容并重新创建所有内容后,我现在拥有一个Native SRC值,所有内容都按预期显示 .

    事实上,当我将数据库添加到GeoServer时,表格被设置为EPSG:0(几何的默认值) . 但是你需要通过这样的更新将EPSG切换到4326:

    update MyTable set MyGeom = geometry::...FromText(MyGeom.STAsText(), 4326)
    

    之后,将GeoServer中的所有引用删除到您的表中 . 实际上你需要从头开始重新创建所有东西 . 当您使用表重新添加数据库时,它将起作用 . 实际上,您将看到自己设置的“Native-SRC”,您还可以单击自动设置表格的BBOX . (Min X,Y,Max X,Y)

相关问题