Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-08-2010, 17:26   #1
Opcode
Member
 
L'Avatar di Opcode
 
Iscritto dal: Jun 2010
Città: Asti
Messaggi: 85
[C++] Calcolare l'offset UTC dopo aver analizzato latitudine e longitudine in input

Sera a tutti,

devo realizzare una classe che permetta, presi in input due double che esprimano rispettivamente latitudine e longitudine, permetta di ottenere in output l'offset UTC della zona espressa dai due punti.

La classe deve operare in ambiente *nix quindi non sono ammesse api specifiche di windows o simili. Precisamente la classe deve operare su FreeBSD.

Mi viene da pensare che potrei operare come segue:
  • Calcolare la zona a cui lat e lon puntano
  • Ottenere da una lista di dati l'offset relativo alla zona richiesta
  • Restituire il dato sotto forma di ore

Ma... ecco sono un po' confuso su come fare.
Purtroppo prima di oggi a parte la <ctime> non ho mai avuto a che fare con nulla del genere. Attualmente stò cercando qualche libreria che mi aiuti semplificandomi il lavoro, tenendo presente la licenza con cui viene rilasciata, se ne trovassi una che faccia anche tutto il necessario andrebbe benissimo, ma qualora non ne conosciate alcuna ma potete fornirmi link/guide o spiegazioni sugli algoritmi necessari, sui dati da prendere in considerazione e tutto quanto viene in gioco vi sarei molto grato.

Come da titolo un requisito essenziale è il linguaggio. Purtroppo non posso usarne altri.

Grazie a tutti in anticipo.

Ultima modifica di Opcode : 28-08-2010 alle 20:38.
Opcode è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2010, 10:37   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dipende da come operi, se in via approssimata o meno.
In via approssimata se hai il tempo UTC e la longitudine, basta dividere la longitudine per 15 e con la parte intera hai il discostamento in ore dal UTC (negativo in caso di longitudine ovest, positivo in caso di est).

Se invece lo vuoi calcolare in modo preciso puoi usare questo metodo:
http://www.earthtools.org/webservices.htm#timezone (c'è anche un servizio simile da parte di www.geonames.org )
Il problema è che il tuo programma dovrà essere sempre online.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2010, 20:40   #3
Opcode
Member
 
L'Avatar di Opcode
 
Iscritto dal: Jun 2010
Città: Asti
Messaggi: 85
Quote:
Originariamente inviato da cionci Guarda i messaggi
Dipende da come operi, se in via approssimata o meno.
In via approssimata se hai il tempo UTC e la longitudine, basta dividere la longitudine per 15 e con la parte intera hai il discostamento in ore dal UTC (negativo in caso di longitudine ovest, positivo in caso di est).

Se invece lo vuoi calcolare in modo preciso puoi usare questo metodo:
http://www.earthtools.org/webservices.htm#timezone (c'è anche un servizio simile da parte di www.geonames.org )
Il problema è che il tuo programma dovrà essere sempre online.
Grazie mille per la risposta, è utilissima
Purtroppo non posso limitarmi a calcolare l'offset in via approssimativa ma ho bisogno di dati certi.

Ho visto che ci sono algoritmi per convertire lat/lon in un valore UTM[1] oppure in Gradi/minuti/secondi.
Mentre penso che il secondo non mi possa essere d'aiuto in alcun modo, il primo apre la porta ad una soluzione diversa, ovvero, definire in un file una sequenza di quadranti contenenti le informazioni (messe già a mano), calcolare tramite lat/lon il quadrante giusto, leggere le informazioni.

Secondo te è una soluzione plausibile?

La prima soluzione che hai proposto funziona in alcuni casi, ma stando a quei tool online anche la latitudine crea una differenza di time zone (mi sembra di aver letto da qualche parte che invece sulla stessa latitudine l'ora è uguale).

La soluzione di appoggiarsi ad un servizio online non è affatto malvagia, purtroppo non posso usare connessioni a internet :|
E comunque fosse penso che quei servizi offrano le API a pagamento per un tot di hit. Ad esempio: qui.

Potrei effettuare direttamente una richiesta al sito web, ma penso che questo sia contro i loro ToS, altrimenti chi pagherebbe?
Opcode è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2010, 00:23   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
earthtools mi sembra che accetti al max una connessione al secondo.
Anche geonames offre un servizio simile a quello di earthtools, ma senza quelle limitazioni a quanto sembra: http://www.geonames.org/export/web-s....html#timezone
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2010, 23:48   #5
Opcode
Member
 
L'Avatar di Opcode
 
Iscritto dal: Jun 2010
Città: Asti
Messaggi: 85
Quote:
Originariamente inviato da cionci Guarda i messaggi
earthtools mi sembra che accetti al max una connessione al secondo.
Anche geonames offre un servizio simile a quello di earthtools, ma senza quelle limitazioni a quanto sembra: http://www.geonames.org/export/web-s....html#timezone
Uhm. Si penso che adotterò la soluzione di effettuare una query ad uno dei servizi online.

Mi ritengo già soddisfatto di aver imparato come calcolare l'offset in via approssimativa
Magari in seguito proverò quella via attraverso UTM e un file di dati per le varie celle. Se riesce qualcosa ti farò sapere, almeno come ringraziamento per il tuo aiuto
Opcode è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
Annunciata la tuta di volo di Vast che s...
Vast presenta il nuovo Large Docking Ada...
Una denuncia getta ombre sulle batterie ...
DJI Avata 2 Fly Smart Combo a 526€: il d...
Alla guida della nuova auto elettrica ci...
GeForce RTX 3060 12 GB a giugno di nuovo...
Apple Music sarà sponsor ufficiale di Po...
The Mandalorian & Grogu: trailer fin...
Fedeltà record: Apple blinda gli utenti,...
Volkswagen ID.3 Neo: fino a 630 km di au...
GPU-Z mette i dati personali a rischio? ...
La PS6 potrebbe essere retrocompatibile ...
Amazfit Cheetah 2 Pro arriva in Italia: ...
Duolingo ammette l'errore dopo un anno: ...
Samsung Galaxy Tab S10 Lite a 249€: il t...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v