SQL Server2008R2にいくつかのテーブルがあります。
ビューを作成してGeoserverに公開したいと思います。しかし、ジオメトリに問題があります。線分のジオメトリがあります。たとえば、同じ行からのこのセグメント:
0xE610000001040C000000F01472A59E5A524032C7F2AE7AAA4E40AC1E300F995A52403C889D2974AA4E408C666
5FB905A5240213F1BB96EAA4E406A12BC218D5A5240B7F0BC546CAA4E404A404CC2855A5240ACAA97DF69AA4E40
4E2A1A6B7F5A5240D7A546E867AA4E402B85402E715A5240BAC0E5B166AA4E400EA0DFF76F5A52405AB8ACC266A
A4E402E3883BF5F5A5240D7A546E867AA4E403AE63C635F5A5240D7A546E867AA4E40043A9336555A5240D2393F
C571AA4E405CCCCF0D4D5A5240A75B76887FAA4E4001000000010000000001000000FFFFFFFF0000000002
0xE610000001040A000000F01472A59E5A524032C7F2AE7AAA4E4011C47938815A52401DE4F56052AA4E40145D1
77E705A52401364045438AA4E404B00FE29555A5240DE74CB0EF1A94E4059130B7C455A5240FED2A23EC9A94E40
C9B08A37325A52407444BE4BA9A94E402B323A20095A524049D576137CA94E408B1A4CC3F0595240342C465D6BA
94E40E0F3C308E1595240F487669E5CA94E40B169A510C8595240CBBA7F2C44A94E400100000001000000000100
0000FFFFFFFF0000000002
セグメントを選択するには、次のクエリを使用します。
SELECT
Segment_ID = Segment_ID.Segment_ID,
GEOMETRY::STGeomFromText(Track.Track.STAsText(),4326) as the_geom,
Road.Name as Road_Name,
Road.Road_ID as Road_Id
FROM dbo.Road
LEFT JOIN Segment_ID ON Road.Road_ID = Segment_ID.Road_ID
LEFT JOIN Track ON Segment_ID.Segment_ID = Track.Segment_ID
1つのクエリで1つの機能にセグメントを結合することは可能ですか?
アップデート
関数STUnionを見つけましたが、それを使用して単一のクエリでセグメントを結合する方法がわかりません。
UPDATE2
テーブルの構造についてお話したいと思います。私は3つのテーブルを持っています:
追跡
Segment_ID(character),
Track (geometry)
Segment_ID
Segment_ID(character),
Road_ID(character)
道
Road_ID(character),
Road_Name(character)
そして、クエリ結果では、Road_NameとすべてのセグメントがこのRoadの単一のフィーチャに接続されていることを確認します。
しかし、それでもカントクエリを書くことはできません(
UPDATE3
答えの解決策は機能しますが、それにはかなりの時間がかかります。つまり、クエリの実行を押すと、2秒以内に結果が得られますが、クエリは約5分で機能します。それをより速くすることが可能です。Bercouse私はこのクエリからビューを作成し、それをGeoserverに追加しますが、タイムアウトエラーが発生するため、レイヤープレビューでレイヤーを取得できません。
何か面白いものがあります。テーブルRoadには76行あります。クエリの実行を押すと75行が取得され、5分後に76行すべてが取得されます。したがって、最後の反復で問題が発生します。何が間違っている可能性がありますか?