Я займаюся астрономічним проектом. Я хочу, щоб інформація про наші зображення зберігалася в просторово включеній базі даних. Думаю, це має бути дуже легким особливим випадком для функцій ГІС, оскільки небо можна розглядати як ідеально сферичне і не вимагає еліптичної обробки, як поверхня землі. На жаль, я ще не знайшов способу це зробити, і я ухилявся від мін з просторовими функціями, які використовують еліптичну землю. (Практично будь-яка функція, яка повертає метри замість градусів, може використовувати еліптичний обчислення. На щастя, багато потрібних мені функцій PostGIS мають неповні реалізації, де в документації прямо вказано, що повернені результати призначені для сфери, а не для але це може змінитися з майбутніми версіями, що викликає занепокоєння.)
Передумови: В даний час я використовую PostgreSQL з координатами PostGIS і WGS 84 (SRID = 4326). Це працює досить добре. Я створюю закритий ПОЛІГОН із правого підйому та скланення чотирьох кутів зображення. У мене дуже багато зображень (10k і більше), які охоплюють велику область неба. Кожне зображення становить приблизно 1 градус квадрата. З набору цих зображень я роблю мозаїки з невеликих підмножин від 15 до 30 зображень. Кожна мозаїка має площу близько 1,5 градусів.
В даний час я зберігаю географію мозаїк як МНОГОПОЛІГОН, що складається з усіх ПОЛІГОНІВ, що відповідають кожному зображенню, що ввійшло в мозаїку. [Кращим рішенням було б створити єдиний ПОЛІГОН, який описує периметр з'єднання всіх окремих многокутників. Я не знаю, чи можна це зробити за сферичними координатами (тобто типом географії). Це також буде цікавою відповіддю і для мене.] Рядок дати та небесні полюси можуть бути включені до зображення в наборі даних, тому я уникав проектувати плоскі координати наскільки це можливо.
Яку систему координат я повинен використовувати для небесних координат з функціями PostGIS?
Я переглянув http://spatialreference.org/, але поки що нічого не знайшов. Google мало піднявся. Я спотикався. В основному, я хочу переконатися, що якщо функція повертає метри як відстань, це метри вздовж великого кола на кулі.
Загалом, деякі поради щодо використання небесних координат у просторовій базі даних також будуть вдячні.
Я помилився, вибравши PostGIS?
Чи є куди найкращий комерційний вибір?
Вибір FOSS?
Я використовую PostGIS 1.5.2. Я ще не пробував PostGIS 2.0. Мені цікаво, якщо функція ST_CoveredBy працює з POLYGON та MULTIPOLYGON типу географії. Якщо хтось працює під управлінням 2.0, ви можете мені сказати, якщо ви отримуєте таку ж помилку, як ця:
mydb=# select ST_CoveredBy(ST_GeographyFromText('MULTIPOLYGON(( (10.37795 -69.57926,8.9498 -69.54875,9.0178 -69.21643,10.4242 -69.24648,10.37795 -69.57926),(10.42436 -69.24618,9.01774 -69.2162, 9.08363 -68.88389,10.46914 -68.91344,10.42436 -69.24618)))'),ST_GeographyFromText('POLYGON((10.46915 -68.91315,9.08371 -68.88364,9.14755 -68.5513,10.5125 -68.58038,10.46915 -68.91315))'));
ERROR: geography_covers: only POLYGON and POINT types are currently supported
CONTEXT: SQL function "st_coveredby" statement 1
Я спробував PostGIS 2.0. Ця функція все ще працює лише на точках і полігонах, не більш загальних форм.