Как используя PostGIS вычислить пересечение 3-х окружностей?
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 12 мар 2009, 14:13
- Репутация: 0
Как используя PostGIS вычислить пересечение 3-х окружностей?
Начальные данные: есть три окружности заданные точкой центра (широта и долгота) и радиусом в километрах.
Вопрос №1. Как вычислить полигоны окружностей и занести их в PostGIS?
Пока что нашёл функцию make_ellipse(cx float8, cy float8, a float8, b float8, slices float8),
но не знаю как вычислить a и b (у меня в километрах).
Вопрос №2. Как на основе сделанных полигонов окружностей вычислить полигон пересечения?
Спасибо!
Вопрос №1. Как вычислить полигоны окружностей и занести их в PostGIS?
Пока что нашёл функцию make_ellipse(cx float8, cy float8, a float8, b float8, slices float8),
но не знаю как вычислить a и b (у меня в километрах).
Вопрос №2. Как на основе сделанных полигонов окружностей вычислить полигон пересечения?
Спасибо!
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Если у вас данные в широта/долгота, а радиус в километрах, то можно сначала перепроецировать ваши данные в прямоугольную систему координат (или как это там называется?) при помощи ST_Transform, а потом считать в километрах.aquam писал(а):Начальные данные: есть три окружности заданные точкой центра (широта и долгота) и радиусом в километрах.
Вопрос №1. Как вычислить полигоны окружностей и занести их в PostGIS?
Пока что нашёл функцию make_ellipse(cx float8, cy float8, a float8, b float8, slices float8),
но не знаю как вычислить a и b (у меня в километрах).
Попробуйте ST_Intersection.aquam писал(а): Вопрос №2. Как на основе сделанных полигонов окружностей вычислить полигон пересечения?
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 12 мар 2009, 14:13
- Репутация: 0
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Спасибо! Буду пробовать.
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 12 мар 2009, 14:13
- Репутация: 0
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Можно поподробней c первым вопросом где перепроецирование в прямоугольную систему координат?
Получается мне нужно использовать что-то вида make_ellipse(37, 53, ST_Transform(радиус), ST_Transform(радиус), 18) для получения полигона-окружности с центром в точке (37, 53)?
Получается мне нужно использовать что-то вида make_ellipse(37, 53, ST_Transform(радиус), ST_Transform(радиус), 18) для получения полигона-окружности с центром в точке (37, 53)?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Не, не так. Я бы попробовал что-то в этом роде:aquam писал(а):Можно поподробней c первым вопросом где перепроецирование в прямоугольную систему координат?
Получается мне нужно использовать что-то вида make_ellipse(37, 53, ST_Transform(радиус), ST_Transform(радиус), 18) для получения полигона-окружности с центром в точке (37, 53)?
* сначала создаете точку в системе координат широта/долгота
* потом перепроецируете эту точку при помощи ST_Transform в нужную систему координат
* в новой системе координат делаете хоть make_ellips, хоть буферные зоны вокруг нее.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Пример:
Код: Выделить всё
SELECT AsText(ST_Buffer(ST_Transform(ST_SetSRID(ST_MakePoint(37,53),4326),3395),1000000));
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 12 мар 2009, 14:13
- Репутация: 0
Re: Как используя PostGIS вычислить пересечение 3-х окружнос
Спасибо!
Отличные советы!
Отличные советы!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя