関連する町のポリゴン(データ型)を含むTown
列を持つテーブルがあります。TownBoundary
geography
町ごとに、次のような KML (XML) ファイルを生成するために必要なポリゴン データを取得します。
sqlg = SqlGeography.STPolyFromText(new SqlChars(
town.TownBoundary.WellKnownValue.WellKnownText),
town.TownBoundary.CoordinateSystemId);
for (int i = 1; i <= sqlg.STNumPoints(); i++)
{
SqlGeography point = sqlg.STPointN(i);
var pLong = (point.Long).ToString().Replace(",", ".");
var pLat = (point.Lat).ToString().Replace(",", ".");
double dLong = double.Parse(pLong, CultureInfo.InvariantCulture);
double dLat = double.Parse(pLat, CultureInfo.InvariantCulture);
kmlCoordinates.Add(new Vector(dLat, dLong)); //one point od polygon
}
town.TownBoundary.WellKnownValue.WellKnownText
で始まる値POLYGON(..
WellKnownText
しかし最近、一部の町にはより多くのポリゴンが含まれてMULTIPOLYGON(..
おり、機能STPolyFromText
がエラーで終わることに気付きました。
これをtry{}
ブロックに配置しましたが、catch{}
-値がマルチポリゴンの場合-どうにかして個々のポリゴンを取得することは可能ですか? method があることは知っていSTMPolyFromText
ますが、そこにある個々のポリゴンにアクセスすることはできず、 method のようにポイントにのみアクセスできますSTPolyFromText
。
私の目標は、マルチポリゴンをポリゴンに分割し、foreach ポリゴンよりも上記と同じ方法を実行することです。