1

- Bref 历史: -

我使用的是 MapServer,一切正常,除了当我使用 PixMap 直接在图层上绘制标记时,它被切割在瓷砖之间。因此,我决定更改为看起来可以正常工作的 GeoServer,以在瓷砖之间有一些图像/像素图的地方绘制瓷砖。

-历史的终结-

好的,我可以连接到我的数据存储,即 Ms Sql Server 2008(Express 版)。也许,我无法在我的 OpenLayer 地图上显示任何内容。

我的数据库中的点示例:

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 中。

4

1 回答 1

1

对于那些遇到同样问题的人:

我找到了它不起作用的原因。“Native-SRC”没有正确设置自己(事实上我根本没有价值)。这实际上是我什么都看不到的主要原因。现在无缘无故(或奇迹),在删除所有内容并重新创建所有内容之后,我现在有了一个 Native SRC 值,并且一切都按预期显示。

事实上,当我将数据库添加到 GeoServer 时,这些表是用 EPSG:0 设置的(几何的默认值)。但是您需要通过执行如下更新将 EPSG 切换为 4326:

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

之后,将 GeoServer 中的所有引用删除到您的表中。您实际上需要从头开始重新创建所有内容。当你用你的表重新添加你的数据库时,它就会起作用。其实你会看到“Native-SRC”是自己设置的,也可以点击自动设置你表的BBOX。(最小 X、Y、最大 X、Y)

于 2010-10-04T14:27:57.460 回答