Карта широты и долготы с изображением моего дома - PullRequest
1 голос
/ 21 ноября 2010

У меня есть вид сверху на мой дом, и я знаю широту долготы для левого верхнего пикселя, т. Е. Теперь 0,0, как получить значения широты и долготы других пикселей?

При поиске я наткнулся на следующее:

function longToX(longitudeDegrees)
  {
    var longitude =degreesToRadians(longitudeDegrees);
    return (radius * longitude);
  }

  function latToY(latitudeDegrees)
  {
    var latitude =degreesToRadians(latitudeDegrees);
    var newy = radius/2.0 * 
            Math.log( (1.0 + Math.sin(latitude)) /
                      (1.0 - Math.sin(latitude)) );
    return newy;
  }

 function xToLong(xx)
  {
    var longRadians = xx/radius;
    var longDegrees = radiansToDegrees(longRadians);

    /* The user could have panned around the world a lot of times.
    Lat long goes from -180 to 180.  So every time a user gets 
    to 181 we want to subtract 360 degrees.  Every time a user
    gets to -181 we want to add 360 degrees. */

    var rotations = Math.floor((longDegrees + 180)/360)
    var longitude = longDegrees - (rotations * 360)
    return longitude;
  }

  function yToLat(yo)
  {
    var latitude =  (Math.PI/2) - 
                    (2 * Math.atan(
                       Math.exp(-1.0 * yo / radius)));
    return radiansToDegrees(latitude);
  }  

радиус = 6371 км радиуса земли .. но, однако, если я пройду 0,0, я получу 0,0, как зафиксировать долготу широты для 0,0 и вывести из нее другие значения

1 Ответ

1 голос
/ 22 ноября 2010

Вам нужно знать расстояние между пикселями.Чтобы преобразовать расстояние в градусы, вы можете использовать тот факт, что одна широта морской минуты (1/60 градуса) составляет 1852 метра или около 6076 футов.Долгота на экваторе такая же, но вам нужно умножить ее на косинус широты в другом месте.

Широта в один градус = 1852 метра

Широта в один градус = 1852 метра * cos (широта)

(Вам может понадобиться умножить широту градусов на pi / 180, чтобы преобразовать их в радианы для функции косинуса.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...