public void ValidateAllGridsCorners() { double maxHeight = double.MinValue; double maxWidth = double.MinValue; double minWidth = double.MaxValue; double minHeight = double.MaxValue; UtmGrid G = new UtmGrid(utm, 1, 'C'); for (int zone = 1; zone <= UtmGrid.NumberOfZones; zone++) { for (int band = 0; band < UtmGrid.NumberOfBands; band++) { bool valid = true; try { G = new UtmGrid(utm, zone, band); } catch (Exception) { valid = false; } if (valid) { validateCorners(G); minWidth = Math.Min(minWidth, G.MapWidth); maxWidth = Math.Max(maxWidth, G.MapWidth); minHeight = Math.Min(minHeight, G.MapHeight); maxHeight = Math.Max(maxHeight, G.MapHeight); } } } Assert.IsTrue(maxHeight >= minHeight && minHeight > 0.0); Assert.IsTrue(maxWidth >= minWidth && minWidth > 0.0); }
/// <summary> /// Instantiate the Mesh with the given nuber of meters as the size /// of the mesh squares. We do not support squares less than 1m. /// Please note that the actual mesh size used is a derived value /// that approximates the requested mesh size in order to provide /// better computational efficiency. /// </summary> /// <param name="meshSizeinMeters">The size of the squares in meter. The defauklt value is 1000m.</param> /// <exception cref="ArgumentOutOfRangeException"></exception> /// <exception cref="ArgumentOutOfRangeException"></exception> public GlobalMesh(int meshSizeinMeters = 1000) { if (meshSizeinMeters < MinimumMeshSize) { throw new ArgumentOutOfRangeException(Properties.Resources.MESHSIZE_MIN_VIOLATION); } MeshSize = meshSizeinMeters; var dblSquareSize = (double)meshSizeinMeters; var maxWidth = double.MinValue; var maxHeight = double.MinValue; for (var ord = 0; ord < UtmGrid.NumberOfGrids; ord++) { if (UtmGrid.IsValidOrdinal(ord)) { var theGrid = new UtmGrid(Projection, ord); maxWidth = Math.Max(maxWidth, theGrid.MapWidth); maxHeight = Math.Max(maxHeight, theGrid.MapHeight); } } var maxHorizontalMeshes = (long)Math.Round((maxWidth + dblSquareSize - 1.0) / dblSquareSize, MidpointRounding.AwayFromZero); _maxVerticalMeshes = (long)Math.Round((maxHeight + dblSquareSize - 1.0) / dblSquareSize, MidpointRounding.AwayFromZero); if (maxHorizontalMeshes < 2 || _maxVerticalMeshes < 2) { throw new ArgumentOutOfRangeException(Properties.Resources.MESHSIZE_TOO_BIG); } Count = maxHorizontalMeshes * _maxVerticalMeshes; }
private void ApplySettingsButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { Grid grid; // First, update the grid based on the type selected. switch (gridTypeCombo.SelectedValue.ToString()) { case "LatLong": grid = new LatitudeLongitudeGrid(); // Apply the label format setting. string selectedFormatString = labelFormatCombo.SelectedValue.ToString(); ((LatitudeLongitudeGrid)grid).LabelFormat = (LatitudeLongitudeGridLabelFormat)Enum.Parse(typeof(LatitudeLongitudeGridLabelFormat), selectedFormatString); break; case "MGRS": grid = new MgrsGrid(); break; case "UTM": grid = new UtmGrid(); break; case "USNG": default: grid = new UsngGrid(); break; } // Next, apply the label visibility setting. grid.IsLabelVisible = labelVisibilityCheckbox.IsChecked.Value; // Next, apply the grid visibility setting. grid.IsVisible = gridVisibilityCheckbox.IsChecked.Value; // Next, apply the grid color and label color settings for each zoom level. for (long level = 0; level < grid.LevelCount; level++) { // Set the line symbol. Symbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Colors.FromName(gridColorCombo.SelectedItem.ToString()), 2); grid.SetLineSymbol(level, lineSymbol); // Set the text symbol. Symbol textSymbol = new TextSymbol { Color = Colors.FromName(labelColorCombo.SelectedItem.ToString()), OutlineColor = Colors.FromName(haloColorCombo.SelectedItem.ToString()), Size = 16, HaloColor = Colors.FromName(haloColorCombo.SelectedItem.ToString()), HaloWidth = 3 }; grid.SetTextSymbol(level, textSymbol); } // Next, apply the label position setting. grid.LabelPosition = (GridLabelPosition)Enum.Parse(typeof(GridLabelPosition), labelPositionCombo.SelectedValue.ToString()); // Apply the updated grid. MyMapView.Grid = grid; }
public void TestConstructor_37X() { var g = new UtmGrid(utm, 37, 'X'); Assert.AreEqual(g.Width, 9.0); validateCorners(g); }
private void _applySettingsButton_Click(object sender, EventArgs e) { Grid grid; // First, update the grid based on the type selected. switch (_gridTypeSpinner.SelectedItem.ToString()) { case "LatLong": grid = new LatitudeLongitudeGrid(); // Apply the label format setting. string selectedFormatString = _labelFormatSpinner.SelectedItem.ToString(); ((LatitudeLongitudeGrid)grid).LabelFormat = (LatitudeLongitudeGridLabelFormat)Enum.Parse(typeof(LatitudeLongitudeGridLabelFormat), selectedFormatString); break; case "MGRS": grid = new MgrsGrid(); break; case "UTM": grid = new UtmGrid(); break; case "USNG": default: grid = new UsngGrid(); break; } // Next, apply the label visibility setting. grid.IsLabelVisible = _labelVisibilitySwitch.Checked; // Next, apply the grid visibility setting. grid.IsVisible = _gridVisibilitySwitch.Checked; // Next, apply the grid color and label color settings for each zoom level. for (long level = 0; level < grid.LevelCount; level++) { // Set the line symbol. string lineColor = ((ArrayAdapter <string>)_gridColorSpinner.Adapter).GetItem(_gridColorSpinner.SelectedItemPosition); Symbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Colors.FromName(lineColor), 2); grid.SetLineSymbol(level, lineSymbol); // Set the text symbol. string labelColor = ((ArrayAdapter <String>)_labelColorSpinner.Adapter).GetItem(_labelColorSpinner.SelectedItemPosition); Symbol textSymbol = new TextSymbol { Color = Colors.FromName(labelColor), Size = 16, FontWeight = FontWeight.Bold }; grid.SetTextSymbol(level, textSymbol); } // Next, apply the label position setting. grid.LabelPosition = (GridLabelPosition)Enum.Parse(typeof(GridLabelPosition), _labelPositionSpinner.SelectedItem.ToString()); // Apply the updated grid. _myMapView.Grid = grid; }
public void TestInEquality() { var g1 = new UtmGrid(utm, 1, 'C'); var g2 = new UtmGrid(utm, 1, 'D'); Assert.IsTrue(g1 != g2); }
public void TestEquals1() { string s = "123"; var g = new UtmGrid(utm, 1, 'C'); Assert.IsFalse(g.Equals(s)); }
public void TestConstructor_32V() { var g = new UtmGrid(utm, 32, 'V'); Assert.AreEqual(9.0, g.Width); ValidateCorners(g); }
public void TestEquality() { var g1 = new UtmGrid(utm, 1, 'C'); var g2 = new UtmGrid(utm, 1, 'D'); g2.Band = 'C'; Assert.IsTrue(g1 == g2); }
public void TestEquals2() { var g1 = new UtmGrid(utm, 1, 'C'); var g2 = new UtmGrid(utm, 1, 'D'); g2.Band = 'C'; Assert.IsTrue(g1.Equals(g2)); }
public void TestConstructor4() { var loc = new GlobalCoordinates(utm.MaxLatitude, 0); var g = new UtmGrid(utm, loc); Assert.IsTrue(true); validateCorners(g); }
public void TestConstructor1() { var g = new UtmGrid(utm, 1, 'C'); Assert.AreEqual(g.LowerLeftCorner.Longitude, -180); Assert.AreEqual(g.LowerLeftCorner.Latitude, utm.MinLatitude); Assert.AreEqual(g.Width, 6.0); validateCorners(g); }
public void TestConstructor2() { var g = new UtmGrid(utm, 1, 'X'); Assert.AreEqual(g.LowerLeftCorner.Longitude, -180); Assert.AreEqual(g.LowerLeftCorner.Latitude, utm.MaxLatitude - g.Height); Assert.AreEqual(g.Height, 12.0); Assert.AreEqual(g.Width, 6.0); validateCorners(g); }
public void TestOriginCompute() { var g = new UtmGrid(utm, 32, 'U'); var o = g.Origin; Assert.AreEqual(o.Projection, utm); Assert.AreEqual(o.Grid.ToString(), "32U"); Assert.IsTrue(Math.Abs(o.ScaleFactor - 1.0) < 0.001); validateCorners(g); }
public void TestZoneSetter() { var g0 = new UtmGrid(utm, 32, 'U'); var g = new UtmGrid(utm, 32, 'U'); g.Zone = 33; Assert.AreEqual(g.ToString(), "33U"); Assert.AreEqual(g.LowerLeftCorner.Longitude - g0.LowerLeftCorner.Longitude, g0.Width); validateCorners(g); }
public void TestBandSetter() { var g0 = new UtmGrid(utm, 32, 'U'); var g = new UtmGrid(utm, 32, 'U'); g.Band = 'V'; Assert.AreEqual(g.ToString(), "32V"); Assert.AreEqual(g.LowerLeftCorner.Latitude - g0.LowerLeftCorner.Latitude, g0.Height); validateCorners(g); }
public void TestOrdinal() { var g = new UtmGrid(utm, 32, 'U'); int ord = g.Ordinal; var g2 = new UtmGrid(utm, ord); Assert.AreEqual(g, g2); validateCorners(g); validateCorners(g2); }
public void TestOrdinal2() { for (int ord = 0; ord < 1200; ord++) { if (UtmGrid.IsValidOrdinal(ord)) { var g = new UtmGrid(utm, ord); Assert.AreEqual(g.Ordinal, ord); } } }
public void TestOriginCompute() { var g = new UtmGrid(utm, 32, 'U'); if (g.Origin is UtmCoordinate o) { Assert.AreEqual(o.Projection, utm); Assert.AreEqual("32U", o.Grid.ToString()); Assert.IsTrue(Math.Abs(o.ScaleFactor - 1.0) < 0.001); } ValidateCorners(g); }
public void TestCorners() { var g = new UtmGrid(utm, 32, 'U'); var glrc = new UtmGrid(utm, g.LowerRightCorner); Assert.AreEqual(glrc.ToString(), "32U"); var gulc = new UtmGrid(utm, g.UpperLeftCorner); Assert.AreEqual(gulc.ToString(), "32U"); var gurc = new UtmGrid(utm, g.UpperRightCorner); Assert.AreEqual(gurc.ToString(), "32U"); validateCorners(g); }
public void TestConstructor_35X() { var g = new UtmGrid(utm, 35, 'X'); Assert.AreEqual(g.Width, 12.0); var l = g.LowerRightCorner; l.Longitude += 1.0; var g2 = new UtmGrid(utm, l); Assert.AreEqual(g2.ToString(), "37X"); validateCorners(g); validateCorners(g2); }
public void TestConstructor_33X() { var g = new UtmGrid(utm, 33, 'X'); Assert.AreEqual(12.0, g.Width); var l = g.LowerRightCorner; l.Longitude += 1.0; var g2 = new UtmGrid(utm, l); Assert.AreEqual("35X", g2.ToString()); ValidateCorners(g); ValidateCorners(g2); }
public void TestConstructor_31X() { var g = new UtmGrid(utm, 31, 'X'); Assert.AreEqual(g.Width, 9.0); var l = g.LowerLeftCorner; // Going a little more than width should bring us // into the next zone 32, but not in this band l.Longitude += g.Width + 1.0; var g2 = new UtmGrid(utm, l); Assert.AreEqual(g2.ToString(), "33X"); validateCorners(g); validateCorners(g2); }
public void TestConstructor_31V() { var g = new UtmGrid(utm, 31, 'V'); Assert.AreEqual(g.Width, 3.0); var l = g.LowerLeftCorner; // 4 degrees east of lower left is normally in the same grid // but not so in 31V l.Longitude += 4.0; var g2 = new UtmGrid(utm, l); Assert.AreEqual(g2.ToString(), "32V"); validateCorners(g); validateCorners(g2); }
public void TestNeighbors() { var g = new UtmGrid(utm, Constants.MyHome); Assert.IsTrue(g.Band == 'U' && g.Zone == 32); var n = g.North; Assert.IsTrue(n.Band == 'V' && n.Zone == 32); var s = g.South; Assert.IsTrue(s.Band == 'T' && s.Zone == 32); var w = g.West; Assert.IsTrue(w.Band == 'U' && w.Zone == 31); var e = g.East; Assert.IsTrue(e.Band == 'U' && e.Zone == 33); }
private void ApplyCurrentSettings() { Grid grid; // First, update the grid based on the type selected. switch (_selectedGridType) { case "LatLong": grid = new LatitudeLongitudeGrid(); break; case "MGRS": grid = new MgrsGrid(); break; case "UTM": grid = new UtmGrid(); break; case "USNG": default: grid = new UsngGrid(); break; } // Next, apply the label position setting. grid.LabelPosition = _selectedLabelPosition; // Next, apply the grid color and label color settings for each zoom level. for (long level = 0; level < grid.LevelCount; level++) { // Set the grid color if the grid is selected for display. if (_selectedGridColor != null) { // Set the line symbol. Symbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, _selectedGridColor.Value, 2); grid.SetLineSymbol(level, lineSymbol); } // Set the label color if labels are enabled for display. if (_selectedLabelColor != null) { // Set the text symbol. Symbol textSymbol = new TextSymbol { Color = _selectedLabelColor.Value, Size = 16, FontWeight = FontWeight.Bold }; grid.SetTextSymbol(level, textSymbol); } } // Next, hide the grid if it has been hidden. if (_selectedGridColor == null) { grid.IsVisible = false; } // Next, hide the labels if they have been hidden. if (_selectedLabelColor == null) { grid.IsLabelVisible = false; } // Apply the updated grid. _myMapView.Grid = grid; }
public void TestConstructor_34X() { var g = new UtmGrid(utm, 34, 'X'); }
public void TestConstructor8() { var g = new UtmGrid(utm, UtmGrid.NumberOfGrids + 1); }
public void TestConstructor7() { var g = new UtmGrid(null, 1, 'C'); }
public void TestConstructor6() { var g = new UtmGrid(utm, 1, 'A'); }