Classe DistanceUtils
Vari calcoli di distanza e costanti. Per quanto possibile, a Calcolatrice della distanza, recuperato da Calc Dist dovrebbe essere usato di preferenza rispetto alla chiamata diretta di questi metodi.
Questo codice è venuto da Apache Lucene, LUCENE-1387, che a sua volta proveniva da "LocalLucene".
Eredità
Membri ereditati
montaggio: Space4n.dll
Sintassi
public static class DistanceUtils
campi
Nome | Descrizione |
---|---|
DEG_180_AS_RADS | |
DEG_225_AS_RADS | |
DEG_270_AS_RADS | |
DEG_45_AS_RADS | |
DEG_90_AS_RADS | |
DEG_TO_KM | Equivalente a Degrees2Dist(1, EARTH_MEAN_RADIUS_KM) |
GRADI_A_RADIANTI | |
TERRA_EQUATORIALE_RAGGIO_KM | |
TERRA_EQUATORIALE_RAGGIO_MI | |
TERRA_MEDIA_RAGGIO_KM | L'Unione internazionale di geodesia e geofisica afferma che il raggio medio della Terra in KM è: |
TERRA_MEDIA_RAGGIO_MI | |
KM_A_DEG | |
KM_IN_MIGLIA | |
MIGLIA_A_KM | |
RADIANTI_IN_GRADI | |
SIN_45_AS_RADS |
Metodi
Nome | Descrizione |
---|---|
CalcBoxByDistFromPt_deltaLonDEG(Doppio, Doppio, Doppio) | La longitudine delta di un punto-distanza. In altre parole, metà della larghezza del riquadro di delimitazione di un cerchio. |
CalcBoxByDistFromPt_latHorizAxisDEG(Doppio, Doppio, Doppio) | La latitudine dell'asse orizzontale (ad es. linea sinistra-destra) di un cerchio. L'asse orizzontale di un cerchio passa attraverso i suoi bordi più a sinistra e più a destra. Su un piano 2D, questo risultato è sempre
|
CalcBoxByDistFromPtDEG(Doppio, Doppio, Doppio, Contesto Spaziale, IRectangle) | Calcola il rettangolo di delimitazione di un cerchio, come specificato dal punto centrale e dalla distanza. |
CalcLonGradiAtLat(Doppio, Doppio) | Calcola la distanza in gradi di longitudine alla latitudine Utilizzato per calcolare una nuova distanza del buffer espanso per tenere conto degli effetti di inclinazione per le forme che utilizzano lo spazio lat-lon come piano 2D anziché come sfera. Il buffer espanso coprirà sicuramente l'area prevista, ma la forma è ancora distorta e quindi coprirà un'area più ampia. Per la latitudine 0 (l'equatore) il risultato è lo stesso buffer. A 60 (o -60) gradi, il risultato è il doppio del buffer, il che significa che una forma a 60 gradi è due volte più alta che larga se proiettata su un piano lat-lon anche se nel mondo reale è uguale tutt'intorno. Se il risultato aggiunto a abs(lat ) è >= 90 gradi, quindi l'inclinazione è così grave che il chiamante dovrebbe prendere in considerazione l'idea di lanciare la forma e sostituire invece una calotta sferica.
|
Gradi2Dist(Doppio, Doppio) | Converte |
Dist2Gradi(Doppio, Doppio) | Converte una distanza nelle unità del raggio in gradi (360 gradi sono in un cerchio). Si assume un modello terrestre sferico. |
Dist2Radianti(Doppio, Doppio) | Converte una distanza nelle unità di |
DistHaversineRAD(doppio, doppio, doppio, doppio) | |
DistLawOfCosinesRAD(Doppio, Doppio, Doppio, Doppio) | Calcola la distanza tra due lat/lng utilizzando la legge del coseno. A causa di errori di condizionamento numerico, non è precisa come la formula di Haversine per piccole distanze. Ma con doppia precisione, non è poi così male -- presumibilmente 1 metro. Gli argomenti e il valore restituito sono espressi in radianti. |
DistQuadratoCartesiano(Doppio[], Doppio[]) | Il quadrato della distanza cartesiana. Non proprio una distanza, ma utile se tutto ciò che conta è confrontare il risultato con un altro. |
DistVincentyRAD(doppio, doppio, doppio, doppio) | Calcola la distanza massima del cerchio utilizzando la formula di Vincenty, semplificata per un modello sferico. Questa formula è accurata per qualsiasi coppia di punti. L'equazione è stata presa da wikipedia. Gli argomenti sono in radianti e il risultato è in radianti. |
NormLatDEG(Doppio) | Mette nell'intervallo -90 <= lat_deg <= 90. |
NormLonDEG(Doppio) | Mette nell'intervallo -180 <= lon_deg <= +180. |
PointOnBearingRAD(Doppio, Doppio, Doppio, Doppio, Contesto Spaziale, PuntoI) | Dato un punto iniziale (startLat, startLon) e un rilevamento su una sfera di raggio sferaRaggio, restituire il punto di destinazione. |
Radians2Dist(Doppio, Doppio) | Converte |
AGradi(Doppio) | Uguale a quello di Java |
ARadianti(Doppio) | Uguale a quello di Java |
VectorBoxCorner(Doppio[], Doppio[], Doppio, Booleano) | Restituisce le coordinate di un vettore che rappresenta l'angolo di una scatola (in alto a destra o in basso a sinistra), assumendo un sistema di coordinate rettangolare. Nota: questo non si applica ai punti su una sfera o un'ellisse (anche se potrebbe essere usato come approssimazione). |
DistanzaVettore(Doppio[], Doppio[], Doppio) | Calcolare la p-norma (cioè la lunghezza) tra due vettori |
DistanzaVettore(Doppio[], Doppio[], Doppio, Doppio) | Calcolare la p-norma (cioè la lunghezza) tra due vettori |