ipLocnTest
1.0.0
Obtenha mapas com recursos decentes em .NET, sem nenhuma API de mapeamento real envolvida!
Imports System.Device.Location
Coloque o seguinte código dentro da classe principal
DIm n = 0
Private Sub Watcher_StatusChanged(ByVal sender As Object, ByVal e As GeoPositionStatusChangedEventArgs)
n += 1
If e.Status = GeoPositionStatus.Ready Then
If Watcher.Position.Location.IsUnknown Then
txtlat = "Cannot find location data"
Else
txtlat = Watcher.Position.Location.Latitude.ToString() '.Substring(0, 7)
txtlong = Watcher.Position.Location.Longitude.ToString() '.Substring(0, 7)
End If
End If
If n < 10 Then
If txtlat <> "Cannot find location data" And Math.Abs(Val(txtlat)) > 0.0000001 Then
Watcher.Stop()
'the value of txtlat and txtlong has now been set to your location
End If
Else
Watcher.Stop()
'give user some indication of error/ handle the error (thrown when cannot find location)
End If
End Sub
Private Sub LocateMe()
n = 0
Watcher = New GeoCoordinateWatcher()
AddHandler Watcher.StatusChanged, AddressOf Watcher_StatusChanged
Watcher.Start()
End Sub
Chame o sub LocateMe() quando precisar da localização. Na primeira utilização, uma caixa de mensagem aparecerá solicitando permissão para acessar a localização. Os valores de txtlat e txtlong serão definidos para a latitude e longitude.
Observe que isso geralmente não é instantâneo e pode falhar na primeira tentativa