0

ユーザーが自由にサイズ変更できる一連の編集可能なMapPolygonを表示するBingMapコントロールを備えたSilverlightアプリケーションがあります。もちろん、これらのMapPolygonは地理座標として定義されます。ポリゴンの面積を計算するにはどうすればよいですか?

ポリゴンはSQLServerに地理タイプとして保存されており、サーバーに戻って回答を得ることができますが、ポリゴンの形状を変更すると、ユーザーは領域のインタラクティブな更新を失います。数パーセント以内の精度が望ましいです。

4

2 に答える 2

1

クライアント上で「球面ジオメトリ」の面積計算を行うルーチンを作成することで、これを解決しました。サーバーに戻る必要はありません。

要するに、私はだまします。領域の重心を見つけ、重心を中心とする平面に平坦化し、平面ジオメトリを使用して、多角形を一連の三角形として扱うことで多角形の面積を計算します。

概算ではありますが、私の目的には十分正確です。正確な答えが必要な場合は、SCHUMMBOs メソッドを使用します。

デイブ。

于 2011-05-27T04:19:00.847 に答える
0

WCF サービスに戻っても構わない場合は、Microsoft.SqlServer.Types ライブラリを使用して計算を行うことができます。SqlGeometry には、これを行うSTAreaというメソッドがあります。

必ずしもアプリのインタラクティブ性を失う必要はありません。ユーザーがサイズ変更を終了したら、サービスに領域を要求し、スピナーまたは何かを簡単に表示できます。これは、サイズ変更のようにその場で行うほど滑らかではないことは理解していますが、クライアントで面積を計算する必要もありません。

申し訳ありませんが、その場でそれを行う方法に答えるのにこれ以上役に立ちませんでした。

于 2011-05-26T20:54:22.850 に答える