ForHosting KIT · Viaggi e geografia

Faccia del cubo S2 da lat/lon: quale faccia contiene il punto

Scopra su quale delle sei facce del cubo S2 cade un punto: San Francisco, in (37,7749; -122,4194), finisce sulla faccia 4, la -Y, con u -0,918061185048 e v -0,635094359374. È il primo passo prima di costruire celle S2. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Latitudine
37,7749
Longitudine
-122,4194
Ottiene
Faccia
4
Nome della faccia
-Y
X
-0,4237560025
Y
-0,6672331383

La libreria di geometria S2 di Google suddivide la Terra proiettando la sfera unitaria su un cubo e suddividendo in modo ricorsivo ciascuna faccia in una gerarchia di celle. Prima di codificare un identificatore di cella S2, calcolare una copertura o ragionare sull'intersezione di regioni, occorre sapere quale delle sei facce di quel cubo contiene una data latitudine e longitudine. Questa capacità accetta lat e lon WGS84, le converte in un vettore di direzione unitario e restituisce l'indice di faccia S2 (da 0 a 5), un nome leggibile come +X o -Z, le componenti cartesiane unitarie e le coordinate UV del punto su quella faccia nell'intervallo convenzionale da meno uno a più uno. La usi quando costruisce indici spaziali, insegna geometria sferica o verifica che i propri binding S2 scelgano la stessa faccia della libreria di riferimento nei casi limite vicino ai bordi delle facce.

Come lat/lon diventa una faccia del cubo S2

Parta da latitudine e longitudine in gradi decimali sulla sfera WGS84. Converta la latitudine in un angolo polare dall'equatore e la longitudine in un azimut dal meridiano di Greenwich, entrambi in radianti. Il vettore di direzione unitario è allora x uguale a cos(latitudine) cos(longitudine), y uguale a cos(latitudine) sin(longitudine) e z uguale a sin(latitudine), con z positivo verso il polo nord e x positivo verso latitudine zero e longitudine zero.

Le sei facce del cubo S2 corrispondono ai sei semispazi definiti dall'asse cartesiano dominante: la faccia zero è la faccia più X, la uno più Y, la due più Z, la tre meno X, la quattro meno Y e la cinque meno Z.

L'implementazione segue la stessa regola della componente di maggior valore assoluto usata dalla libreria S2 di Google: confronti i valori assoluti di x, y e z; l'asse di maggiore magnitudine decide la coppia di facce; il segno di quella componente decide quale delle due facce opposte viene scelta. In caso di pareggio esatto vince l'indice di asse maggiore, come LargestAbsComponent di S2, così i punti sulle giunzioni tra facce si risolvono in modo deterministico.

Nota la faccia, le coordinate UV su di essa si ottengono dividendo le due componenti non dominanti per quella dominante con i ribaltamenti di segno specifici di ciascuna faccia pubblicati in ValidFaceXYZToUV di S2, producendo valori nell'intervallo chiuso da meno uno a più uno che collocano il punto nella faccia quadrata prima di qualsiasi ulteriore gerarchia di celle.

Dove la ricerca della faccia S2 ripaga

Generatori didattici e d'esame che insegnano griglie globali discrete possono chiedere agli studenti la faccia di una città e valutare rispetto a un oracolo deterministico invece di quaderni docenti instabili. Pipeline di analisi dei log che raggruppano campioni GPS per faccia S2 per instradamento grossolano o suddivisioni geografiche A/B chiamano una volta per evento e memorizzano l'intero di faccia accanto alle coordinate grezze. La validazione fallita non consuma saldo.

Mantenga le richieste compatte, fissi l'intero di faccia e l'UV arrotondato nei test e otterrà un'assegnazione di faccia riproducibile per indici, lezioni e worker di edge senza erigere un intero stack di geometria sferica proprio.

Preambolo di codifica delle celle S2

Stabilisca quale delle sei facce del cubo contiene un lat/lon prima di calcolare identificatori di cella S2 gerarchici o coperture di regione in un worker che non può caricare l'intera libreria S2.

Insegnamento delle griglie globali discrete

Consenta agli studenti di inviare coordinate di città e verificare l'indice di faccia rispetto a un oracolo che segue la regola della componente di maggior valore assoluto di Google, inclusi poli e giunzioni tra facce.

Raggruppamento geografico grossolano

Raggruppi eventi GPS per faccia S2 per cruscotti di instradamento o suddivisioni geografiche A/B senza calcolare identificatori di cella completi per ogni campione.

Come si trova la faccia del cubo S2 di una latitudine e una longitudine?

Invii lat finita in [-90, 90] e lon in [-180, 180].

Cosa significano le facce da 0 a 5?

Seguono la convenzione S2 di Google: 0=+X, 1=+Y, 2=+Z (nord), 3=-X, 4=-Y, 5=-Z (sud). La scelta è la componente cartesiana di maggior valore assoluto del vettore unitario.

Cosa sono u e v nella risposta?

Le coordinate UV collocano il punto sulla faccia del cubo scelta nell'intervallo [-1, 1], con le stesse convenzioni di segno ValidFaceXYZToUV di S2.

Cosa succede se latitudine o longitudine sono fuori intervallo?

La latitudine deve essere in [-90, 90] e la longitudine in [-180, 180]; le richieste non valide non vengono fatturate.

Quale faccia riceve un punto proprio sullo spigolo tra due facce?

Il pareggio si risolve sempre allo stesso modo: se due componenti del vettore unitario sono ugualmente grandi, vince l'asse con l'indice più alto. Così i punti sugli spigoli non saltano da una faccia all'altra.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/geo/s2-face-from-latlon

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/geo/s2-face-from-latlon \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":37.7749,"lon":-122.4194}'
{
  "lat": 37.7749,
  "lon": -122.4194
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.s2_face_from_latlon",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

L'algoritmo è matematica analitica pura, senza chiamate di rete né stato casuale, così il percorso gratuito del browser e il percorso API a pagamento coincidono sempre.

Contratto di ingresso, campi di risposta ed errori di validazione

Esempio: San Francisco vicino alla latitudine 37.7749 e longitudine negativa 122.4194 cade sulla faccia quattro (meno Y) perché la componente di maggior valore assoluto del vettore unitario è una y negativa. Il polo nord (latitudine 90, longitudine 0) cade sulla faccia due (più Z). Longitudine zero equatoriale (latitudine 0, longitudine 0) cade sulla faccia zero (più X). Invii con POST un corpo JSON con due numeri finiti obbligatori: lat (o l'alias latitude) tra meno novanta e novanta inclusi, e lon (o gli alias lng e longitude) tra meno centottanta e centottanta inclusi. Le stringhe numeriche sono accettate come i numeri JSON. Campi mancanti, stringhe vuote, valori non finiti come NaN o Infinity e latitudini o longitudini fuori intervallo falliscono con invalid_input e non vengono fatturati. In caso di successo la risposta restituisce lat e lon ripuliti, l'intero face da zero a cinque, face_name come uno tra +X, +Y, +Z, -X, -Y o -Z, le componenti del vettore unitario x, y e z, la coppia UV locale della faccia u e v, e method impostato a s2_face_from_unit_sphere affinché i client documentino la proiezione usata. Abbini questa risposta al proprio codificatore di celle S2 se le servono identificatori di cella completi; questo endpoint identifica solo la faccia e la posizione UV su di essa.

Dove la ricerca della faccia S2 ripaga

Le piattaforme cartografiche e GIS che espongono identificatori di cella S2 per coperture di regione necessitano di un primo controllo di faccia allineato alla libreria di produzione; una piccola API parse evita di distribuire un binding completo C++ o Java in ogni worker di edge solo per sapere su quale faccia del cubo cade un pin. Poiché l'implementazione è parse pura di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita.

Quanto costa lo strumento faccia del cubo S2 da lat/lon?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.

Leggi la documentazione completa del KIT →