Italian link google maps

micheleBr

Member
Licensed User
Longtime User
ciao!
sto cercando di inviare per email una stringa (costruita in dinamico in base alla posizione) formattata per google maps del tipo: "http://maps.google.com/maps?q=+45.3669081,11.0601079"
purtroppo alla ricezione del email, la stringa cambia diventando: "http://maps.google.com/maps?qE.3753586,11.048683950000001"
inutilizzabile...

Chiedo aiuto!!! :)
grazie in anticipo !!!!
 
Last edited:

ivanomonti

Expert
Licensed User
Longtime User
MIMM Sos function geo localizzazione

io l'ho fatto per sms, ovvio che dovrei adattare il codice, funziona bene ma e strutturato in questo modo, i messaggi non guardarli perché non sono ancora definiti.

1) richiesta di aiuto invio sms
2) attivo il gps
3) attivo il timer
4) ho 2 minuti di tempo per aganciare i satelliti, dopo quel periodo invio sms con richiesta di aiuto semplice, altrimenti invio sms con richiesta di aiuto (questo serve a te) con la stringa formattata per gmap internet o navigatore

Inizio codice -------------------

B4X:
#Region sms
   
   Sub ImageView3_Click
      ToastMessageShow("Press 2 sec", True)
   End Sub
   
   Sub ImageView3_LongClick
      If xchiave3 = "Cellulare sms amico" OR xchiave3 = Null OR xchiave3 =  "" Then
         ToastMessageShow("Error imput data", False)
         Return
      End If
   
      If gpsActive(0, 0) = True Then
         ToastMessageShow("GPS localization phase", True)
      End If
      
   End Sub
   
   Sub gpsActive(Tim As Long, Dis As Float) As Boolean

    GPS2.Initialize("GPS")
    tl.Initialize
      
   Timer1.Initialize("Timer1",60000*2)
   Timer1.Enabled = True
      
   Try
         If GPS2.GPSEnabled = False Then
             ToastMessageShow("GPS disabilitato.", True)
             StartActivity(GPS2.LocationSettingsIntent)
         GPS2.Start(Tim,Dis)
         Return True
      Else
         GPS2.Stop
         GPS2.Start(Tim,Dis)
         Return True
      End If
   Catch
      ToastMessageShow("Error GPS " & LastException.Message , True)
      Return False
   End Try

   End Sub
   
   Sub GPS_LocationChanged (Location1 As Location)

       lat = Location1.Latitude
       lon = Location1.Longitude
       alt = Location1.Altitude
   
      Dim Sms As PhoneSms
      Dim numerphone As Phone
   
      Dim s As String
      s = lat & "," & lon
      s = mappaLink(s)
   
      Sms.Send(xchiave3, "Help me, call me I need you " & s)
      ToastMessageShow("SMS sent successfully", True)
   
      GPS2.Stop
      Timer1.Enabled = False
   
   End Sub

   Sub mappaLink( luogo As String) As String
      Dim Uri As String
      Uri="https://maps.google.it/maps?q=" & luogo & "&hl=it&t=h&z=16"
      Return Uri
   End Sub

   Sub GPS_UserEnabled (Enabled As Boolean)
      If Enabled = True Then
          ToastMessageShow("GPS enabled", True)
      Else
         ToastMessageShow("GPS disable", True)
      End If
   End Sub

   Sub GPS_GpsStatus (Satellites As List)

   End Sub

   Sub Timer1_Tick
      GPS2.Stop
      Dim Sms As PhoneSms
      Dim numerphone As Phone
      Sms.Send(xchiave3, "Help me, call me I need you")
      ToastMessageShow("SMS sent successfully", True)
      Timer1.Enabled = False
   End Sub
   
   #End Region

Fine codice ------------------------------------------

Spero ti possa aiutare a te e a tutti gli altri che ne faranno uso ...
 

micheleBr

Member
Licensed User
Longtime User
tnx a tutti per i suggerimenti, ancora non va... questo il codice che creo e concateno:
B4X:
Dim mappa As String = "http://maps.google.com/maps?q="
Dim virg As String = ","
B4X:
Sub Location_LocationChanged (Longitude As Double, Latitude As Double, Altitude As Double, Accuracy As Float, Bearing As Float, Provider As String, Speed As Float, Time As Long) 
   sLat = Latitude
   sLong = Longitude
End Sub
B4X:
linkMappa = mappa & sLat & virg & sLong
ma quando invio la mail:
B4X:
InvioEmail(messaggi  & CRLF & CRLF & "Location: " & linkMappa) 'invio in emai
ricevo nella mia casella di posta:
B4X:
http://maps.google.com/maps?qE.3767189,11.05024302

se voi ci riuscite....
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ok.
Ma le variabili sLat ed sLong di che tipo sono ?sono double ?
L'inghippo secondo me sta proprio qui.
Prova a dichiararle di tipo string e poi assegna i valori latitudini e longitudine.
Poi riprova a concatenare la stringa.
Ciao
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Allora ho fatto dei test ed non sono mai cambiati i valori di longitudine e latitudine, non sono riuscito a simulare il tuo caso,comunque questo è il codice che ho provato:

B4X:
        Dim sLat As String
   Dim sLong As String
   Dim dLat As Double
   Dim dLong As Double
   Dim mappa As String = "http://maps.google.com/maps?q="
   Dim virg As String = ","
   Dim linkMappa As String

Sub Activity_Create(FirstTime As Boolean)
   'Do not forget to load the layout file created with the visual designer.For example:
   'Activity.LoadLayout("Layout1")
   dLat=45.3669081
   dLong=11.0601079
   linkMappa = mappa & dLat & virg & dLong
   Log(linkMappa)
   Msgbox(linkMappa,"conversione")
End Sub

Per cortesia se riesci girami il progetto zippato.
 

micheleBr

Member
Licensed User
Longtime User
Ok.
Ma le variabili sLat ed sLong di che tipo sono ?sono double ?
L'inghippo secondo me sta proprio qui.
Prova a dichiararle di tipo string e poi assegna i valori latitudini e longitudine.
Poi riprova a concatenare la stringa.
Ciao

ho provato ad inviare per email solo le 2 coordinate (si sono dichiarate stringa):
B4X:
linkMappa =sLat & " " & sLong
B4X:
InvioEmail("Location: " & linkMappa) 'invio in email
e alla ricezione della email, le coordinate sono perfettamente leggibili:
Location: 45.3670221 11.0601122

Quindi e' durante la concatenazione del link ed il relativo invio in email....
Questo e' il risultato quando invio la stringa: "http://maps.google.com/maps?q="
risultato in email: "http://maps.google.com/maps?q"
Taglia "l'uguale" e quando concateno con la latitudine mi sostituisce il "45." con "E."
cosi':
"... google.com/maps?qE.36700435,11.05954825"

ancora brancolo nel buio..
 

ivanomonti

Expert
Licensed User
Longtime User
ho provato ad inviare per email solo le 2 coordinate (si sono dichiarate stringa):
B4X:
linkMappa =sLat & " " & sLong
B4X:
InvioEmail("Location: " & linkMappa) 'invio in email
e alla ricezione della email, le coordinate sono perfettamente leggibili:
Location: 45.3670221 11.0601122

Quindi e' durante la concatenazione del link ed il relativo invio in email....
Questo e' il risultato quando invio la stringa: "http://maps.google.com/maps?q="
risultato in email: "http://maps.google.com/maps?q"
Taglia "l'uguale" e quando concateno con la latitudine mi sostituisce il "45." con "E."
cosi':
"... google.com/maps?qE.36700435,11.05954825"

ancora brancolo nel buio..

devi verificare la codifica, tipo utf8 cmq a me questo non succede usando il codice che ho postato sopra.
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Come dice Ivano, potrebbe essere un problema di codifica.
Fai comunque queste prove:

1 visualizza stringa concatena in una msgbox
2 Salva stringa concatena in un file txt ad esempio
3 Visualiza stringa concatena in una web view
4 Invia al mio indirizzo di posta il link (arena_luigiathotmail.com)

Così ti fai un idea di cosa possa essere.
 
Top