/// <summary> /// 保持している全DEMデータ情報をKML形式のテキストデータで返す /// <para>ファイルへ保存する際はUTF-8で保存してください。</para> /// </summary> /// <param name="color">色情報</param> /// <returns>テキスト形式のKMLポリゴン情報</returns> public string ToStringAsKml(Color color) { Polygon polygon = new Polygon(); polygon.name = "dummy"; polygon.color = color; var arr = this.dict.Values.ToArray(); /* if (arr.Length != 0) { for (int i = 1; i < arr.Length; i++) { Polygon poly = new Polygon(); poly.name = arr[i].DataInfo.ID.ToString(); poly.AddToOuter(arr[i].DataInfo.Field.ToArray()); polygon.AddPolygon(poly); } } * */ foreach (DemSet member in arr) { Polygon poly = new Polygon(); poly.name = member.DataInfo.ID.ToString(); poly.AddToOuter(member.DataInfo.Field.ToArray()); StringBuilder sb = new StringBuilder(300); // 予め大きなメモリ容量を確保しておく sb.Append("File name: ").Append(member.FileName).Append(System.Environment.NewLine); sb.Append("Map Model: ").Append(member.DataInfo.MapModel.ToString()).Append(System.Environment.NewLine); sb.Append("Center position: ").Append(member.DataInfo.Field.Center.ToString()); poly.description = sb.ToString(); polygon.Add(poly); } return polygon.GetKmlCode(); }
/// <summary> /// RectangleFieldクラスとPolygonクラスのテスト /// <para>NMEAファイルからRectangleFieldオブジェクトを生成し、Polygonクラスを利用してKMLファイルを出力します。</para> /// <para>ダイアログを利用してファイルを開きます。</para> /// </summary> public static void ReadNmeaToRectangleField() { RectangleField field = GNSS.GnssTest.ReadNmeaToRectangleFeild(); if (field.AreaIsZero == false) { Polygon polygon = new Polygon(); polygon.AddToOuter(field.ToArray()); // KML出力に備え、座標をセット // ファイル出力 // KML出力はUTF8で出力してください。 using (System.IO.StreamWriter fwriter = new System.IO.StreamWriter("NMEAtoField.kml", false, Encoding.UTF8)) { try { fwriter.Write(polygon.GetKmlCode()); } catch { // エラー処理があれば記述 } } } return; }