Страница 1 из 1
SQL запрос
Добавлено: 13 сен 2013, 08:27
Foxxxy
Здравствуйте. Есть задачка: имеется слой с базисными кварталами в границах города и слой с точечными объектами библиотек города. Вокруг каждой библиотеки построена буферная зона с радиусов в 3 км. Каждая библиотека имеет свою обеспеченность библиотечным фондом (количество томов). Необходимо посчитать поквартальную обеспеченность библиотечным фондом. Т.е. необходимо узнать сколько буферных зон и от каких библиотек попадают каждый базисный квартал и в зависимости от этого посчитать обеспеченность библиотечным фондом в данном квартале.Таблицы прилагаю. Спасибо.
Re: SQL запрос
Добавлено: 13 сен 2013, 08:34
Пётр Дубоделов
Вам стоит посмотреть в сторону функций AreaOverlap и ProportionOverlap, синтаксис описан справочнике функций Mapbasic
Re: SQL запрос
Добавлено: 13 сен 2013, 08:50
Пётр Дубоделов
Ведь Ваша же тема:
viewtopic.php?f=17&t=11262
по-моему задача похожая
Re: SQL запрос
Добавлено: 13 сен 2013, 08:56
Foxxxy
Петр, спасибо.
Из таблиц: _Кварталы, _Библиотеки
Выбрать колонки: _Кварталы.Номер_БК, _Библиотеки.ОбъемБиблФонда, sum(Areaoverlap(_Кварталы.Obj, _Библиотеки.Obj))
C условием:_Кварталы.obj contains part _Библиотеки.obj
Сгруппировать по колонкам: _Кварталы.Номер_БК,_Библиотеки.ОбъемБиблФонда
Похоже?
Re: SQL запрос
Добавлено: 13 сен 2013, 08:59
Пётр Дубоделов
я бы взял proportionoverlap, вычислил бы процент перекрытия и на эту долю умножил размер фонда. там, где пересечение охватов двух библиотек, по идее получившиеся значения нужно суммировать, но это уже следующий шаг.
Re: SQL запрос
Добавлено: 13 сен 2013, 09:31
Foxxxy
Наверное, нужно где-то в запросе указать, что нам нужна буферная зона?
Re: SQL запрос
Добавлено: 13 сен 2013, 10:01
Пётр Дубоделов
насчет overlap функций я наверно ошибся, по логике ведь квартал обеспечен всем фондом, если попадает в зону влияния? процент перекрытия в данном случае нелогичен. и как быть с теми кварталами, которые попадают лишь частично? допустим только небольшой частью? или в этом случае нужно принимать порог перекрытия: например если больше полквартала - значит обеспечен, а меньше - нет (вот здесь уже нужны те самые функции). поясните задачу в таком контексте.
Re: SQL запрос
Добавлено: 13 сен 2013, 10:32
Foxxxy
уже разобралась. Спасибо
Re: SQL запрос
Добавлено: 13 сен 2013, 10:36
Пётр Дубоделов
во вложении не все файлы.