private void btn_L7018_Click(object sender, EventArgs e) { String outFilename = Path.Combine(GlobalSettings.XMLOutputDir, "l7018.kml"); KmlHelper kmlWriter = MgrsGridElement.StartKmlWriting(); XmlNode kmlNode = kmlWriter.AddFolder(kmlWriter.DocumentNode, "L7018", false); RtsdMapIndex.CalcIndexList(); foreach (var entry in RtsdMapIndex.MapIndexL7018) { entry.WriteToKml(kmlWriter, kmlNode, entry.Name); } kmlWriter.SaveToFile(outFilename); String nonStandardSheetInfo = String.Empty; foreach (var index in RtsdMapIndex.NonStandardSheets) { var sheet = RtsdMapIndex.MapIndexL7018.FirstOrDefault(x => x.Index.Equals(index)); if (sheet != null) { nonStandardSheetInfo += sheet.Name + " " + sheet.NorthWestCorner.ToString("%D° %M' %S'' %H") + " - " + sheet.SouthEastCorner.ToString("%D° %M' %S'' %H") + Environment.NewLine; } } var stringDisplayForm = new StringDisplayForm("L7018 Non-Standard sheets", nonStandardSheetInfo); stringDisplayForm.Show(); }
/// <summary> /// Initializes a new instance of the GeoDataViewModel class. /// </summary> public GeoDataViewModel(GeoDataModel model) { ////if (IsInDesignMode) ////{ //// // Code runs in Blend --> create design time data. ////} ////else ////{ //// // Code runs "for real": Connect to service, etc... ////} Model = model; Model.PropertyChanged += (s, e) => { if (e.PropertyName == GeoDataModel.DatumPropertyName) { RaisePropertyChanged(CurrentGeoDatumPropertyName); } if (e.PropertyName == GeoDataModel.LocationPropertyName) { RaisePropertyChanged(GeoHashPropertyName); RaisePropertyChanged(GeoLocationPropertyName); RaisePropertyChanged(UtmLocationPropertyName); RaisePropertyChanged(MgrsLocationPropertyName); RaisePropertyChanged(L7018FramePropertyName); } GeoPoint point = new GeoPoint(Model.Location); point.Datum = Model.Datum; RaisePropertyChanged(GeoPointPropertyName, _oldLocation, point, true); _oldLocation = point; }; GeoDatums = new ObservableCollection <GeoDatum>(); GeoDatums.Add(GeoDatum.DatumWGS84()); GeoDatums.Add(GeoDatum.DatumIndian1975()); GeoDatums.Add(GeoDatum.DatumIndian1954()); L7018Index = new ObservableCollection <RtsdMapFrame>(); RtsdMapIndex.CalcIndexList(); foreach (var entry in RtsdMapIndex.MapIndexL7018.OrderBy(x => x.Name)) { L7018Index.Add(entry); } _oldLocation = new GeoPoint(Model.Location); _oldLocation.Datum = Model.Datum; }
private void SetValues(GeoPoint geoPoint, UtmPoint utmPoint, object sender) { if (sender != edt_LatLong) { if (geoPoint == null) { edt_LatLong.Text = String.Empty; } else { edt_LatLong.Text = geoPoint.ToString(); } } if (sender != edt_geohash) { if (geoPoint == null) { edt_geohash.Text = String.Empty; } else { edt_geohash.Text = geoPoint.GeoHash; } } if (sender != edt_UTM) { if (utmPoint == null) { edt_UTM.Text = String.Empty; } else { edt_UTM.Text = utmPoint.ToString(); } } if (sender != edt_MGRS) { if (utmPoint == null) { edt_MGRS.Text = String.Empty; } else { edt_MGRS.Text = utmPoint.ToMgrsString(6); } } _Point = geoPoint; btnFlyTo.Enabled = (_Point != null); lbl_L7018Value.Text = "Not available"; if (geoPoint != null) { try { var sheet = RtsdMapIndex.IndexL7018(geoPoint); if (sheet != null) { lbl_L7018Value.Text = sheet.Name; } } catch (ArgumentOutOfRangeException) { } } }
public void TestIndexL7018() { GeoPoint khonKhaenLocation = new GeoPoint(16.4424, 102.8360); Assert.AreEqual("5541 I", RtsdMapIndex.IndexL7018(khonKhaenLocation).Name); }