SQL запрос
-
- Участник
- Сообщения: 95
- Зарегистрирован: 01 авг 2012, 09:15
- Репутация: 1
- Откуда: г. Санкт-Петербург
SQL запрос
Здравствуйте. Есть задачка: имеется слой с базисными кварталами в границах города и слой с точечными объектами библиотек города. Вокруг каждой библиотеки построена буферная зона с радиусов в 3 км. Каждая библиотека имеет свою обеспеченность библиотечным фондом (количество томов). Необходимо посчитать поквартальную обеспеченность библиотечным фондом. Т.е. необходимо узнать сколько буферных зон и от каких библиотек попадают каждый базисный квартал и в зависимости от этого посчитать обеспеченность библиотечным фондом в данном квартале.Таблицы прилагаю. Спасибо.
- Вложения
-
тома.rar
- (240.92 КБ) 298 скачиваний
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: SQL запрос
Вам стоит посмотреть в сторону функций AreaOverlap и ProportionOverlap, синтаксис описан справочнике функций Mapbasic
"Если карта не соответствует местности, доверяй местности."
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: SQL запрос
"Если карта не соответствует местности, доверяй местности."
-
- Участник
- Сообщения: 95
- Зарегистрирован: 01 авг 2012, 09:15
- Репутация: 1
- Откуда: г. Санкт-Петербург
Re: SQL запрос
Петр, спасибо.
Из таблиц: _Кварталы, _Библиотеки
Выбрать колонки: _Кварталы.Номер_БК, _Библиотеки.ОбъемБиблФонда, sum(Areaoverlap(_Кварталы.Obj, _Библиотеки.Obj))
C условием:_Кварталы.obj contains part _Библиотеки.obj
Сгруппировать по колонкам: _Кварталы.Номер_БК,_Библиотеки.ОбъемБиблФонда
Похоже?
Из таблиц: _Кварталы, _Библиотеки
Выбрать колонки: _Кварталы.Номер_БК, _Библиотеки.ОбъемБиблФонда, sum(Areaoverlap(_Кварталы.Obj, _Библиотеки.Obj))
C условием:_Кварталы.obj contains part _Библиотеки.obj
Сгруппировать по колонкам: _Кварталы.Номер_БК,_Библиотеки.ОбъемБиблФонда
Похоже?
Последний раз редактировалось Foxxxy 13 сен 2013, 09:16, всего редактировалось 2 раза.
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: SQL запрос
я бы взял proportionoverlap, вычислил бы процент перекрытия и на эту долю умножил размер фонда. там, где пересечение охватов двух библиотек, по идее получившиеся значения нужно суммировать, но это уже следующий шаг.
"Если карта не соответствует местности, доверяй местности."
-
- Участник
- Сообщения: 95
- Зарегистрирован: 01 авг 2012, 09:15
- Репутация: 1
- Откуда: г. Санкт-Петербург
Re: SQL запрос
Наверное, нужно где-то в запросе указать, что нам нужна буферная зона?
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: SQL запрос
насчет overlap функций я наверно ошибся, по логике ведь квартал обеспечен всем фондом, если попадает в зону влияния? процент перекрытия в данном случае нелогичен. и как быть с теми кварталами, которые попадают лишь частично? допустим только небольшой частью? или в этом случае нужно принимать порог перекрытия: например если больше полквартала - значит обеспечен, а меньше - нет (вот здесь уже нужны те самые функции). поясните задачу в таком контексте.
"Если карта не соответствует местности, доверяй местности."
-
- Участник
- Сообщения: 95
- Зарегистрирован: 01 авг 2012, 09:15
- Репутация: 1
- Откуда: г. Санкт-Петербург
Re: SQL запрос
уже разобралась. Спасибо
Последний раз редактировалось Foxxxy 13 сен 2013, 10:38, всего редактировалось 1 раз.
- Пётр Дубоделов
- Завсегдатай
- Сообщения: 271
- Зарегистрирован: 21 апр 2009, 13:58
- Репутация: 12
- Откуда: Бурашево
- Контактная информация:
Re: SQL запрос
во вложении не все файлы.
"Если карта не соответствует местности, доверяй местности."
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя