It is currently 1 November 2024, 22:23 Advanced search

Coordinate Geografiche

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Coordinate Geografiche

Postby Big_Rosta » 29 February 2012, 14:53

Salve a tutti.
Innanzitutto scusatemi per la domanda banale, ma sono al primo progetto sviluppato con IN.DE.
Ho la necessità di salvare in un DB MySQL dei valori di latitudine e longitudine che mi vengono passati da dispositivi mobili come stringhe (es. Latitudine="45,1234" Longitudine="12,1234")
Icampi latitudine e longitudine sono definiti nel DB come Decimal(10,6) (ho usato il dominio/lista valori GeoCoordinata di IN.DE).
Che funzione devo usare per convertirli da stringa a Decimal? Ho provato con toInteger e toFloat, ma in un caso mi tronca il valore all'intero, mentre nell'altro arrotonda.
Grazie dell'attenzione.
big_rosta
User avatar
Big_Rosta
 
Posts: 481
Joined: 28 February 2012, 14:39
Location: Rovigo

Re: Coordinate Geografiche

Postby m.sirri » 29 February 2012, 21:47

Probabilmente devi sostituire la virgola con il punto prima di convertire con la funzione toFloat.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Coordinate Geografiche

Postby Big_Rosta » 1 March 2012, 8:40

Ciao.
Ho provato con il toFloat, ma passandogli le stringhe col punto salva solo la parte intera.
Esempio:
latitudine="45.5555"
salva sul DB "45.000000"

Ciao.
big_rosta
User avatar
Big_Rosta
 
Posts: 481
Joined: 28 February 2012, 14:39
Location: Rovigo

Re: Coordinate Geografiche

Postby m.sirri » 1 March 2012, 21:35

Non è che sul DB il campo è definito come intero o come decimal senza decimali?
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Coordinate Geografiche

Postby Big_Rosta » 2 March 2012, 8:15

Ciao.
Qui sotto c'e' la definizione dei campi nella tabella del DB che devo popolare, presa dal MySQL Workbench:
nuovo-1.jpg
nuovo-1.jpg (30.46 KiB) Viewed 15720 times


mentre questa è la definizione in IN.DE
def_latitudine.JPG
def_latitudine.JPG (45.74 KiB) Viewed 15720 times


Grazie dell'attenzione.
Ciao.
big_rosta
User avatar
Big_Rosta
 
Posts: 481
Joined: 28 February 2012, 14:39
Location: Rovigo

Re: Coordinate Geografiche

Postby m.sirri » 2 March 2012, 11:59

Non saprei. Forse è meglio guardarci in assistenza.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Coordinate Geografiche

Postby a.maioli » 2 March 2012, 20:17

Con quale codice inserisci i dati? Come sono le query sql nel debug?
User avatar
a.maioli
Pro Gamma
Pro Gamma
 
Posts: 1090
Joined: 29 September 2010, 12:47

Re: Coordinate Geografiche

Postby Big_Rosta » 5 March 2012, 9:58

a.maioli wrote:Con quale codice inserisci i dati? Come sono le query sql nel debug?


Salve.
Il codice che inserisce i dati nel db è questo:
salvat.JPG
salvat.JPG (15.9 KiB) Viewed 15690 times


Per prova, abbiamo fatto una form in Javascript che dal browser manda i dati.
La parte relativa all'invio delle coordinate è questa:

(.....)
sXML = '&xmldata=<?xml version="1.0" encoding="UTF-8" standalone="no"?>';;
if( params == null )
return;
else if( params == "CMD=LOGIN" )
{
sXML += '<login_operatore>';
sXML += '<data MATRICOLA="0008" PASSWORD="1234" LATITUDINE="45.111111" LONGITUDINE="12.111111" />';
sXML += '</login_operatore>';
params += sXML;
}

(.....)
var http = new XMLHttpRequest();
var url = "/Datacomm/Datacomm.htm";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.

if(http.readyState == 4 && http.status == 200) {
//alert(http.responseText);
document.form1.ta.value = http.responseText;
}

}
http.send(params);

Grazie.
big_rosta
User avatar
Big_Rosta
 
Posts: 481
Joined: 28 February 2012, 14:39
Location: Rovigo

Re: Coordinate Geografiche

Postby Big_Rosta » 5 March 2012, 10:06

Scusate, mancava l'SQL preso dal debugger:

SQL = insert into LOGACCESSI ( MATROPERACCE, ISTANTACCESS, LATITUACCESS, LONGITACCESS ) values ( '0008', NOW(), CAST('45.9999' as decimal), CAST('12.9999' as decimal) )

Grazie.
big_rosta
User avatar
Big_Rosta
 
Posts: 481
Joined: 28 February 2012, 14:39
Location: Rovigo

Re: Coordinate Geografiche

Postby m.sirri » 5 March 2012, 10:21

Il problema sembra dovuto alla query di inserimento: la seguente query
Code: Select all
select CAST('45.9999' as decimal)
restituisce in effetti 46.

Specificando invece anche la precisione il valore viene convertito correttamente:
Code: Select all
select CAST('45.9999' as decimal(10,4))
restituisce 45.9999.

Sembrerebbe sbagliata la mappatura della funzione ToFloat per MySQL nella DBLibrary. Per risolvere ti basta modificarla in questo modo:
Code: Select all
CAST($1 as decimal)
.

Provvederemo a correggerla.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 39 guests