Re: Finding points within 50 miles

Поиск
Список
Период
Сортировка
От Oleg Bartunov
Тема Re: Finding points within 50 miles
Дата
Msg-id Pine.GSO.4.63.0506271244050.26882@ra.sai.msu.su
обсуждение исходный текст
Ответ на Re: Finding points within 50 miles  (Janning Vygen <vygen@gmx.de>)
Список pgsql-general
How big is your data ? There are rather sophisticated and
very effective methods in astronomy. For example,
http://www.sai.msu.su/~megera/oddmuse/index.cgi/SkyPixelization,
http://www.sai.msu.su/~megera/oddmuse/index.cgi/pg_sphere


     Oleg
On Mon, 27 Jun 2005, Janning Vygen wrote:

> Am Montag, 27. Juni 2005 01:40 schrieb CSN:
>> If I have a table of items with latitude and longitude
>> coordinates, is it possible to find all other items
>> that are within, say, 50 miles of an item, using the
>> geometric functions
>> (http://www.postgresql.org/docs/8.0/interactive/functions-geometry.html)?
>> If so, how?
>
> I did it without some special features and datatypes some time ago. feel free
> to modify and use for your own. It should give you an idea how to do it.
>
>    SELECT
>      c1.zip,
>      c2.zip,
>      6378.388 *
>      acos(
>        sin(radians(c1.latitude)) * sin(radians(c2.latitude))
>        + cos(radians(c1.latitude)) * cos(radians(c2.latitude))
>        * cos(radians(c1.longitude - c2.longitude))
>      ) AS distance
>    FROM
>      coordinates AS c1
>      CROSS JOIN coordinates AS c2
>
> I had some problems with the calculation inside acos() sometimes being greater
> than 1, which should not occur. Please use a
>   CASE WHEN sin(...) > 1 THEN 1 ELSE sin(...) END
> if you have the same problem.
>
> kind regards,
> janning
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faq
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

В списке pgsql-general по дате отправления:

Предыдущее
От: Ulrich Wisser
Дата:
Сообщение: vacuum error
Следующее
От: Alban Hertroys
Дата:
Сообщение: Re: Finding points within 50 miles