1

-ブレフ履歴: -

私はMapServerを使用していましたが、PixMapを使用してレイヤーに直接マーカーを描画していた場合を除いて、すべてが正常に機能していました。そこで、タイル間に画像/ピックスマップがあるタイルを描画するために正しく機能するように見えるGeoServerに変更することにしました。

-歴史の終わり-

OK、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)

私のGeoServer2.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のままにしておくと、何も返されません。ジオサーバーによって描画されるポリゴンはEPSG:0にあります。

4

1 に答える 1

1

同じ問題が発生した場合:

それが機能しなかった理由を見つけました。「Native-SRC」は適切に設定されていませんでした(実際、私にはまったく価値がありませんでした)。これが、私が何も見えなかった主な理由です。正当な理由(または奇跡)がないので、すべてを削除してすべてを再作成した後、ネイティブ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 に答える