4

関連する町のポリゴン(データ型)を含むTown列を持つテーブルがあります。TownBoundarygeography

町ごとに、次のような 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 ポリゴンよりも上記と同じ方法を実行することです。

4

1 に答える 1