26986 ориентирована на окрестности штата Массачусетс. Нужна система координат, подходящая под нужный регион. Или как самое простое решение использовать ST_Distance_Spheroid.
ОШИБКА: отношение "prefix_point" не существует
LINE 1: ..._X(way) AS lon,ST_Y(way) AS lat,aeroway,name FROM prefix_poi...
^
********** Ошибка **********
ОШИБКА: отношение "prefix_point" не существует
SQL-состояние: 42P01
Символ: 60
select ST_X(ST_Centroid(w.linestring)) lon, select ST_Y(ST_Centroid(w.linestring)) lat
from ways w
where w.tags -> 'aeroway' in ('airport','aerodrome')
Еще можно overpass api использовать чтобы точки получить.
Образец запроса был для схемы osm2pgsql. Вместо prefix нужно было написать используемый префикс (ключ -p, по умолчанию planet_osm).
=> SELECT 'point' AS type,ST_X(way) AS lon,ST_Y(way) AS lat,aeroway,name FROM mosobl_point
WHERE aeroway IN ('airport','aerodrome')
UNION
SELECT 'polygon' AS type,ST_X(ST_Centroid(way)) AS lon,ST_Y(ST_Centroid(way)) AS lat,aeroway,name FROM mosobl_polygon
WHERE aeroway IN ('airport','aerodrome') LIMIT 5;
type | lon | lat | aeroway | name
---------+------------------+------------------+-----------+------------------------------
point | 4096530.14 | 7578600.86 | aerodrome | Планерная Площадка "Шевлино"
polygon | 4249710.01476296 | 7526438.96354953 | aerodrome |
polygon | 4148116.61488309 | 7336950.8655616 | aerodrome | аэродром Дракино
point | 4259510.6 | 7376169.63 | aerodrome | Аэродром Заячья Поляна
point | 4030636.09 | 7459563.77 | aerodrome | Аэродром Аэроград-Можайский
(5 строк)
(Координаты в srid 900913, чтобы были нормальные, надо вместо way писать ST_Transform(way,4326)).
Как именно устроен результат загрузки шейпов я не знаю. В psql есть команда \d которой можно анализировать струтуру таблиц.
Вот что получилось у меня из orbview3_catalog.shp:
=> \d ov3cat
Таблица "public.ov3cat"
Колонка | Тип | Модификаторы
------------+------------------------+------------------------------------------------------
gid | integer | NOT NULL DEFAULT nextval('ov3cat_gid_seq'::regclass)
entity_id | double precision |
usgs_id | character varying(50) |
acq_date | character varying(12) |
cloud | double precision |
nw_corner | character varying(50) |
ne_corner | character varying(50) |
sw_corner | character varying(50) |
se_corner | character varying(50) |
center | character varying(50) |
platform | character varying(12) |
sensor | character varying(20) |
sun_elev | double precision |
sun_azimut | double precision |
vendor | character varying(20) |
vendor_id | character varying(50) |
map_proj | character varying(20) |
proc_level | character varying(100) |
datum | character varying(20) |
format | character varying(20) |
pixel_x | double precision |
pixel_y | double precision |
date_enter | character varying(12) |
view_name | character varying(20) |
browse | character varying(150) |
the_geom | geometry |
Индексы:
"ov3cat_pkey" PRIMARY KEY, btree (gid)
Ограничения-проверки:
"enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2)
"enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL)
"enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4326)
Вообще я советую освоить osm2pgsql. В перспективе можно будет работать с самостоятельными вырезками и результатами фильтрации с учётом всех тэгов в osm-файлах, а не полагаться на шейпы с фиксированной структурой данных.
Ситуация с ОСМ для виндузятников просто катастрофическая.
Инструкций нет. Нормального мануала по установке osm2pgsql под винду нет. Самого osm2pgsql нет, ну или я не нашел. Под Линуксоподобные системы/ядра - валом. Вот нет в жизни справедливости!
В общем я osm2pgsql качнул. Есть exe-шник, написанный на питоне, который запускает консоль, которая моментально закрывается.
Может кто помочь поставить под Вин7(32) osm2pgsql?