Посчитать количество городов

Ответить
a.lineff
Новоприбывший
Сообщения: 6
Зарегистрирован: 04 фев 2011, 14:44
Репутация: 0

Посчитать количество городов

Сообщение a.lineff » 22 мар 2012, 12:32

Прошу о помощи.

Необходимо посчитать количество городов с хорошей детализацией.
Есть в таблице полигоны городов и зданий. Если они пересекаются - значит город с хорошей детализацией (информация о домах есть), считаем его.
Как составить запрос к базе (база большая)?

таблица polygons, колонка mp_type хранит тип объекта, 61 - город, 71 - дом.

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать количество городов

Сообщение rhot » 22 мар 2012, 12:44

т.е. у вас пространственная информация об объектах типа "город", и объектах типа "дом" хранится в одном поле геометрии, что ли?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать количество городов

Сообщение rhot » 22 мар 2012, 13:03

Код: Выделить всё

SELECT DISTINCT count(mp_type) FROM
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=61) AS towns,
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=71) AS buildings
                       WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND mp_type=61;
Не гарантирую, что код рабочий. :)
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

a.lineff
Новоприбывший
Сообщения: 6
Зарегистрирован: 04 фев 2011, 14:44
Репутация: 0

Re: Посчитать количество городов

Сообщение a.lineff » 22 мар 2012, 14:54

rhot писал(а):т.е. у вас пространственная информация об объектах типа "город", и объектах типа "дом" хранится в одном поле геометрии, что ли?
Да, какие-то записи - города, какие-то - дома. Отличаются типом mp_type.

a.lineff
Новоприбывший
Сообщения: 6
Зарегистрирован: 04 фев 2011, 14:44
Репутация: 0

Re: Посчитать количество городов

Сообщение a.lineff » 23 мар 2012, 15:19

rhot писал(а):

Код: Выделить всё

SELECT DISTINCT count(mp_type) FROM
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=61) AS towns,
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=71) AS buildings
                       WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND mp_type=61;
Не гарантирую, что код рабочий. :)
Чуть подредактировал, получился рабочий запрос. За подсказку спасибо большое.

Код: Выделить всё

SELECT DISTINCT towns.gid FROM
         (SELECT the_geom, gid, mp_type FROM polygons WHERE mp_type = 61) AS towns,
         (SELECT the_geom, mp_type FROM polygonscd WHERE mp_type=71) AS buildings
                       WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND towns.mp_type=61;

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать количество городов

Сообщение rhot » 23 мар 2012, 15:23

не за что =)
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

Вернуться в «PostGIS/PostgreSQL»

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

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