Python - получить соотношение между градусами и метрами в зависимости от координат на карте (google)

Я пытаюсь найти точки, которые блокируют круг (a, b, R) на карте, проблема в том, что координаты, используемые на карте, переводятся в разные значения метрики при изменении долготы. Я знаю, что это как-то связано с радианами. это код с отсутствующей частью:

class Circle(object):
    def __init__(self,x,y,R):   
        self.x = x #Degrees
        self.y = y #Degrees
        self.R = R #meters

    def getRatio(self,x,y):     
        #This is where the magic happens...
        return latRatio, LatRatio


    def getBlockingSquareCords(self):
        latRation, lonRatio = getLonRatio(x,y)
        latD = self.R/latRatio
        lonD = self.R/lonRatio

        x1 = self.x+latD
        y1 = self.y+lonD

        x2 = self.x-latD
        y2 = self.y-lonD

        return (x1,y1,x2,y2)

этот следующий вопрос имеет некоторые подсказки к ответу, но я не мог понять это - Рассчитать расстояние между двумя точками широты-долготы? (формула Хаверсина)


person Mr. Nun.    schedule 26.05.2014    source источник
comment
соотношение между чем и чем?   -  person Andrey    schedule 26.05.2014
comment
*отредактировано в теме вопроса   -  person Mr. Nun.    schedule 26.05.2014
comment
Я все еще не понимаю. Соотношение между градусами и км? Например, сколько км составляет 1 градус в какой-то момент?   -  person Andrey    schedule 26.05.2014


Ответы (1)


Это зависит только от широты (потому что круги становятся меньше, когда вы приближаетесь к полюсам).

Latitude:  1 deg = 110.54 km
Longitude: 1 deg = 111.320*cos(latitude) km
person Andrey    schedule 26.05.2014
comment
@NadavNuni нет, градусов. Вы знаете разницу между радиантом и градусом? - person Andrey; 27.05.2014
comment
Я так думаю, на самом деле мой код уже работает с вашей помощью. я использовал радианты в функции cos, но я только что понял, что это не имеет значения :) - person Mr. Nun.; 28.05.2014