Как проверить, находится ли заданное значение долготы в каком-либо диапазоне долготы?

StackOverflow https://stackoverflow.com/questions/2279778

Вопрос

ХОРОШО.Это может быть больше математический вопрос, но вот так.

У меня есть значение долготы, скажем, X.И я хочу знать, находится ли X между любыми двумя значениями долготы.

Например, если мой X равен 145, а диапазон — [21, -179].Диапазон задается границами API Google Map, и на карте Google я вижу, что X действительно попадает в этот диапазон.

Однако как я могу это рассчитать?

Это было полезно?

Решение

// check if x is between min and max, inclusively
if ( x >= minLongitude && x <= maxLongitude ) 
   return true;

Другие советы

/*
 * 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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top