1

SQLServer2012を使用しています。地理列のシングルポイントインスタンスを追跡しているテーブルがあります。それらを単一のポイントとして保存することは問題なく機能しますが、私はそれらのいくつかを新しいテーブルにグループ化して、それらがマルチポイントになるようにしようとしています。latとlongを次のようなマルチポイント列に挿入することで機能させることができます。

DECLARE @g geography; 
SET @g = geography::STMPointFromText('MULTIPOINT(-104.952784 39.524092, -104.935269 39.542652)', 4326);
INSERT INTO test(loc) values(@g)

私がやりたいのは、すでに地理データ型であるテーブルから値を選択することです。基本的なクエリでこれを実行できるのか、それともループでビルドする必要があるのか​​わかりません。どちらの方法でも機能させることができないようです。

また、それを取得した後、マルチポイント列の中心点を返すメソッドはありますか?私はのようないくつかの方法で遊んでいますが、中心点を返す方法を見つけることができないようですSTStartPointSTEndpoint

これらの質問についての助けは素晴らしく、高く評価されます。

ありがとう!

4

2 に答える 2

1

最初の質問を正しく理解している場合は、地理インスタンスとして個別に保存された2つのポイントがあります。その場合は、STUnionメソッドを使用して、それらを1つの地理マルチポイントインスタンスに結合できます。

于 2013-01-27T20:56:25.693 に答える
1

探しているのはSTCentroid()メソッドですが、残念ながら、MultiPointオブジェクトでは機能しません。私はこの数年前にConnectの問題を提起しましたが、これはMicrosoftによって「修正されません」としてクローズされましたが、とにかく投票してください:https ://connect.microsoft.com/SQLServer/feedback/詳細/588316/ make-geometry-stcentroid-method-work-on-geometries-other-than-polygons

一方、マルチポイントの平均「中心」を取得するには、X座標値とY座標値を手動で合計してから平均する必要があります。

于 2013-02-02T22:37:00.670 に答える