Dim gpsNMEASentences As String = "$GPGGA, 92204.9, " & e.Result(recordcount).ELat & ", N," & e.Result(recordcount).ELon & ", W, 1, 04, 2.4, 25.7, M,,,,*75" Dim gpsNMEASentenceArray() As String = gpsNMEASentences.Split(ControlChars.Lf) Dim gpsNMEASentence() As String = gpsNMEASentenceArray(0).Split(","c) Dim graphic As New Graphic() With { .Geometry = mercator.FromGeographic(New MapPoint(Convert.ToDouble(gpsNMEASentence(4)), Convert.ToDouble(gpsNMEASentence(2)))), .Symbol = TryCast(LayoutRoot.Resources(colourstyle), Symbol) } Dim graphicsLayer As GraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayer"), GraphicsLayer) graphicsLayer.Graphics.Clear() graphicsLayer.Graphics.Add(graphic) esriLogoImage.Visibility = Windows.Visibility.Collapsed MyMap.Visibility = Windows.Visibility.Visible MyMap.ZoomTo(graphicsLayer.FullExtent)
Solved! Go to Solution.
ZoomToResolution(MyMap, 0.00551220549302222, New MapPoint(Convert.ToDouble(gpsNMEASentence(4)), Convert.ToDouble(gpsNMEASentence(2))))
Private Sub ZoomToResolution(map As Map, resolution As Double, center As MapPoint) 'Workaround for Map.ZoomToResolution Dim halfWidth As Double = resolution * MyMap.ActualWidth / 2 Dim halfHeight As Double = resolution * MyMap.ActualHeight / 2 Dim newExtent As New Envelope(center.X - halfWidth, center.Y - halfHeight, center.X + halfWidth, center.Y + halfHeight) Map.ZoomTo(newExtent) End Sub
Dim graphic As New Graphic() With { .Geometry = mercator.FromGeographic(New MapPoint(Convert.ToDouble(gpsNMEASentence(4)), Convert.ToDouble(gpsNMEASentence(2)))), .Symbol = TryCast(LayoutRoot.Resources(colourstyle), Symbol) } Dim graphicsLayer As GraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayer"), GraphicsLayer) graphicsLayer.Graphics.Clear() graphic.Attributes.Add("Zen Factor", 7) graphic.Attributes.Add("Zodiac Sign", Status) graphicsLayer.Graphics.Add(graphic) AddHandler graphic.MouseLeftButtonDown, AddressOf Graphic_MouseEnter AddHandler graphic.MouseLeave, AddressOf Graphic_Mouseleave Dim envelope As ESRI.ArcGIS.Client.Geometry.Envelope = New ESRI.ArcGIS.Client.Geometry.Envelope(Convert.ToDouble(gpsNMEASentence(4)) - 100, Convert.ToDouble(gpsNMEASentence(2)) - 100, Convert.ToDouble(gpsNMEASentence(4)) + 100, Convert.ToDouble(gpsNMEASentence(2)) + 100) MyMap.ZoomTo(envelope)
MyMap.ZoomToResolution(MyMap.Resolution / MyMap.ZoomFactor, mapPoint);
ZoomToResolution(MyMap, 0.00551220549302222, New MapPoint(Convert.ToDouble(gpsNMEASentence(4)), Convert.ToDouble(gpsNMEASentence(2))))
Private Sub ZoomToResolution(map As Map, resolution As Double, center As MapPoint) 'Workaround for Map.ZoomToResolution Dim halfWidth As Double = resolution * MyMap.ActualWidth / 2 Dim halfHeight As Double = resolution * MyMap.ActualHeight / 2 Dim newExtent As New Envelope(center.X - halfWidth, center.Y - halfHeight, center.X + halfWidth, center.Y + halfHeight) Map.ZoomTo(newExtent) End Sub