[новичок] Как перевести расстояние в метрах в градусы?

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
skaurus
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2010, 19:06
Репутация: 0

[новичок] Как перевести расстояние в метрах в градусы?

Сообщение skaurus » 30 май 2010, 19:40

Здравствуйте :)

Только начинаю разбираться с хранением гео-информации в БД... У меня есть база точек с координатами из яндекс-карт (это как я знаю wgs84, srid 4326); для каждой точки я знаю город в котором она находится. И есть задача для заданной точки найти все точки из базы, что находятся в определенном радиусе (поиск всегда в пределах одного города) и расстояние до них.

Радиус задается в метрах, и расстояние надо получать в метрах. Я вижу два пути - 1) хранить данные с другим srid (2163 ?), но я понятия не имею, какую погрешность внесу; 2) задавать радиус поиска не в метрах, а в градусах.

Мне больше нравится второй вариант, но - как пересчитать радиус поиска? Вероятно, учитывая что поиск всегда в пределах одного города, формулу пересчета можно будет упростить...

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение Максим Дубинин » 30 май 2010, 19:48

попробуйте вот так считать

http://gis-lab.info/qa/great-circles.html
пристегивайтесь, турбулентность прямо по курсу

skaurus
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2010, 19:06
Репутация: 0

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение skaurus » 30 май 2010, 19:55

Спасибо за ответ!

Но там, кажется, описан расчет расстояния между двумя lon-lat координатами; А мне бы нужно перевести абстрактные 1000 метров в X градусов :) Или невозможно длину отрезка в градусах посчитать и я спрашиваю чушь?

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение Дмитрий Барышников » 30 май 2010, 20:55

1000 метров на разной широте равны разному кол-ву градусов

skaurus
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2010, 19:06
Репутация: 0

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение skaurus » 30 май 2010, 21:12

Ок, но я всегда знаю широту точки, от которой веду поиск!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение Максим Дубинин » 30 май 2010, 22:03

да, немного не дочитал, пардон.

мне кажется второе проще, если в пределах одного города, можно просто 1 градус = 110.5 км, правда это на экваторе, наверное вопрос какая ошибка вас устроит...

Можете немного адаптировать по широте:
http://en.wikipedia.org/wiki/Longitude#Degree_length
пристегивайтесь, турбулентность прямо по курсу

skaurus
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2010, 19:06
Репутация: 0

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение skaurus » 31 май 2010, 03:11

Спасибо за ссылку!

Она донесла до меня, что градус по широте и градус по долготе разной длины) Взяв за основу точное число точек, находящихся в километре от искомой (полученное медленной функцией, считающей расстояния по сфере), начал подбирать коэффициент перевода метров в градусы, чтобы воспользоваться быстрой функцией... В принципе, меня устроило геометрическое среднее:

1/sqrt( 111320*cos( lat ) * 111000.0)

Погрешность процентов 6 оказалась, но это очень приблизительно, я таблицу случайными данными набивал.

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение Игорь Черниенко » 31 май 2010, 03:58

А в какой СУБД работаете?

skaurus
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2010, 19:06
Репутация: 0

Re: [новичок] Как перевести расстояние в метрах в градусы?

Сообщение skaurus » 31 май 2010, 04:02

PostgreSQL + PostGIS
соответственно точная ф-ция у меня - это ST_Distance_Sphere, а быстрая - ST_Distance, она умеет использовать GiST. Так как данные я храню в WGS84, и чтобы индекс использовался, преобразование в другой srid на лету делать нельзя... пересчитываю метры в градусы)

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя