protected override StorableSettings GetSettingsCore() { var settings = base.GetSettingsCore(); settings.GlobalSettings[autoSaveKey] = AutoSave.ToString(); settings.GlobalSettings[mouseCoordinateKey] = MouseCoordinateType.ToString(); settings.GlobalSettings[windowLocationKey] = windowLocation; settings.GlobalSettings[recentProjectFilesKey] = recentProjectFiles; settings.GlobalSettings[ThreadMaxCountKey] = ThreadMaxCount.ToString(); settings.GlobalSettings[ThreadMinCountKey] = ThreadMinCount.ToString(); settings.GlobalSettings[IsDisplayAutoSaveKey] = IsDisplayAutoSave.ToString(); if (Application.Current != null && Application.Current.MainWindow.Tag is Dictionary <string, string> ) { settings.GlobalSettings[alwaysShowHintsKey] = (Application.Current.MainWindow.Tag as Dictionary <string, string>)["ShowHintSettings"]; settings.GlobalSettings[currentExtentKey] = (Application.Current.MainWindow.Tag as Dictionary <string, string>)[currentExtentKey]; } XElement xml = new XElement("Scales"); foreach (var scale in scales) { xml.Add(new XElement("scale", scale)); } settings.GlobalSettings["Scales"] = xml.ToString(); return(settings); }
//private Dictionary<string, bool> showHints; public GeneralManager() { //showHints = new Dictionary<string, bool>(); DisplayLanguage = GisEditor.LanguageManager.GetCurrentLanguage(); originalSelectedLanguage = DisplayLanguage; originalSelectedMouseCoordinate = MouseCoordinateType; AutoSave = true; originalAutoSave = AutoSave; AutoSaveInterval = TimeSpan.FromMinutes(5); originalAutoSaveTimeSpan = AutoSaveInterval; Theme = GisEditor.DockWindowManager.Theme; originalTheme = Theme; recentProjectFiles = ""; threadMaxCount = 100; threadMinCount = 50; isDisplayAutoSave = true; scales = new Collection <double>(); Application.Current.MainWindow.Tag = new Dictionary <string, string>(); }
private static string GetMouseCoordinates(double lon, double lat, MouseCoordinateType mouseCoordinateType, string displayProj4, double xInCurrentProjection = double.NaN, double yInCurrentProjection = double.NaN) { switch (mouseCoordinateType) { case MouseCoordinateType.Default: //Vertex vertex = ConvertCurrentCoordinatesTo4326Coordinates(lon, lat, displayProj4); return(String.Format("X:{0}, Y:{1} | {2}", xInCurrentProjection.ToString("N4", CultureInfo.InvariantCulture), yInCurrentProjection.ToString("N4", CultureInfo.InvariantCulture), GetDmsString(lon, lat))); case MouseCoordinateType.LatitudeLongitude: return(String.Format(CultureInfo.InvariantCulture, "Latitude: {0}, Longitude: {1}", Math.Round(lat, 4).ToString(CultureInfo.InvariantCulture), Math.Round(lon, 4).ToString(CultureInfo.InvariantCulture))); case MouseCoordinateType.LongitudeLatitude: return(String.Format(CultureInfo.InvariantCulture, "Longitude: {0}, Latitude: {1}", Math.Round(lon, 4).ToString(CultureInfo.InvariantCulture), Math.Round(lat, 4).ToString(CultureInfo.InvariantCulture))); case MouseCoordinateType.DegreesMinutesSeconds: return(GetDmsString(lon, lat)); default: return("--°--'--\"E --°--'--\"N"); } }
public static string GetFormattedWorldCoordinate(this GisEditorWpfMap map, ScreenPointF screenPoint, MouseCoordinateType mouseCoordinateType) { PointShape lonlat = map.ToWorldCoordinate(screenPoint.X, screenPoint.Y); double xInCurrentProjection = lonlat.X; double yInCurrentProjection = lonlat.Y; string projectionFullName = "Unknown"; if (map.DisplayProjectionParameters != null) { string projectionShortName = map.DisplayProjectionParameters.Split(' ')[0].Replace("+proj=", string.Empty); projectionFullName = projectionAbbreviations[projectionShortName]; } GeographyUnit mapUnit = GisEditorWpfMap.GetGeographyUnit(map.DisplayProjectionParameters); if (projectionFullName == "Unknown" && mapUnit == GeographyUnit.Unknown) { return(String.Format("X:{0}, Y:{1}", lonlat.X.ToString("N4", CultureInfo.InvariantCulture), lonlat.Y.ToString("N4", CultureInfo.InvariantCulture))); } else { if (mapUnit != GeographyUnit.DecimalDegree) { try { Proj4Projection proj = new Proj4Projection(); proj.InternalProjectionParametersString = map.DisplayProjectionParameters; proj.ExternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); proj.Open(); lonlat = proj.ConvertToExternalProjection(lonlat) as PointShape; proj.Close(); } catch { lonlat = new PointShape(); } } return(GetMouseCoordinates(lonlat.X, lonlat.Y, mouseCoordinateType, map.DisplayProjectionParameters, xInCurrentProjection, yInCurrentProjection)); } }