Torna al Thread
Dim txtLO As String = txtLON.Text.Trim
Dim txtLA As String = txtLAT.Text.Trim
txtLO = txtLO.Replace("°", "")
txtLA = txtLA.Replace("°", "")
txtLO = txtLO.Replace("'", "")
txtLA = txtLA.Replace("'", "")
txtLO = txtLO.Replace("""", "")
txtLA = txtLA.Replace("""", "")
Dim txtN() As String = txtLO.Split(" ")
Dim txtE() As String = txtLA.Split(" ")
' Qui ti conviene mettere qualcosa che controlli che latitudine e longitudine
' siano stati scritti nel formato corretto, la prima stupidaggine che mi viene in mente è:
If txtN.GetUpperBound(0) <> 2 Then
MessageBox.Show("Longitudine immessa in formato non corretto")
Exit Sub
End If
If txtE.GetUpperBound(0) <> 2 Then
MessageBox.Show("Latitudine immessa in formato non corretto")
Exit Sub
End If
Dim dec_lat As String = txtN(0) + (txtN(1) / 60) + (txtN(2) / 3600)
Dim dec_lon As String = txtE(0) + (txtE(1) / 60) + (txtE(2) / 3600)
dec_lat.Replace(",", ".")
dec_lon.Replace(",", ".")
' A questo punto dico al webbrowser di aprire la pagina HTML contenente il
' codice per visualizzare la mappa, passandogli la QueryString adatta.
' --------------------------------------------------------------------
' Qui ho definito due variabili con le quali puoi settare a piacere
' larghezza e altezza della mappa da visualizzare
Dim MW As Integer = 300 ' Larghezza della mappa
Dim MH As Integer = 200 ' Altezza della mappa
' Definiamo quindi la QueryString, nel formato richiesto dalle funzioni JavaScript
' così come noi le abbiamo strutturate nelle pagine html
Dim QueryString As String = "?LA=" & dec_lat & "&LO=" & dec_lon & "&W=" & MW & "&H=" & MH
' Qui ho previsto che tu abbia due pagine html separate:
' una per caricare la mappa con il servizio di GoogleMaps
' e una per caricare la mappa di MapDev, perchè ?
Dim MapGoogle As String = Application.StartupPath & "/map_google.html"
Dim MapMapDev As String = Application.StartupPath & "/map_mapdev.html"
' Per una questione di comodità: puoi infatti interrogare
' gli script richiesti dalle due pagine per funzionare e verificare che siano attivi
' (verifichi in pratica che i server siano in funzione, in maniera tale che se magari
' il servizio di Google è momentaneamente fuori uso, allora utilizzi MapDev o viceversa)
' In pratica si dovrebbe verificare che il parametro "src" del primo javascript nella
' pagina html (che per map dev è: http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2)
' restituisca qualcosa, in pratica si dovrebbe ottenere un file di testo contenente un javascript
' se entro un certo tempo non viene restituito niente, allora si passa ad analizzare il servizio
' alternativo, se anche questo non da niente, possiamo visualizzare nel webbrowser una pagina
' predefinita che indica che i servizi non sono disponibili. Per cui potresti anche impostare
' una pagina di errore:
' Dim MapError As String = Application.StartUpPath & "/map_error.html"
' Oppure ancora: puoi mettere due RadioButton per scegliere quale mappa visualizzare.
' Metterai quindi una condizione che imposterà la mappa da caricare
' Qui imposto direttamente quella di Google
Dim MapToLoad As String = MapMapDev 'o MapGoogle o eventuale MapError
' Quindi dici al controllo WebBrowser di aprire la tua pagina html
' passandogli, ovviamente, anche la QueryString, la quale (per come abbiamo strutturato
' le funzioni JavaScript) sarà identica per le due pagine html.
WebBrowser1.Navigate(MapToLoad & QueryString)