2010-02-17 4 views
1

OK. Cela pourrait être plus d'une question de mathématiques, mais ici va.Comment vérifier si une valeur de longitude donnée est dans une plage de longitude quelconque?

J'ai une valeur de longitude, disons X. Et je veux savoir si X se situe entre deux valeurs de longitude.

Par exemple, si mon X est 145 et la plage est [21, -179]. La plage est donnée par les limites de l'API Google Map et je peux voir sur la carte google que X tombe dans cette plage.

Cependant, comment puis-je calculer cela?

Répondre

1
// check if x is between min and max, inclusively 
if (x >= minLongitude && x <= maxLongitude) 
    return true; 
0
/* 
* Return true if and only if the longitude value lng lies in the range [min, max]. 
* 
* All input values should be in the range [-180, +180]. 
* The test is conducted clockwise. 
*/ 
private boolean isLongitudeInRange(double lng, double min, double max) { 

    assert(lng >= -180.0 && lng <= 180.0); 
    assert(min >= -180.0 && min <= 180.0); 
    assert(max >= -180.0 && max <= 180.0); 

    if (lng < min) { 
     lng += 360.0; 
    } 

    if (max < min) { 
     max += 360.0; 
    } 

    return (lng >= min) && (lng <= max); 
} 
Questions connexes