Установка метки
Добавлено: 04 дек 2012, 17:33
Вечер добрый.
Значит по-порядку. Мы интернет-провайдер. Однажды мы решили навести порядок с адресами абонентов, и понеслось. В-общем сейчас есть база данных, в ней есть таблица city (id, ..., title), street (id, city_id, ..., title), city (id, street_id, ..., title). Населенные пункты, улицы и дома могут добавлять "специальные люди". Для мониторинга сети используем zabbix, все устройства нанесены на карту - используем qgis, openstreetmap и postgresql+postgis. Все оборудование хранится в таблице devices. В таблице, помимо геометрии и прочих свойств есть поле house_id, по которому мы явно определяем полный адрес устройства. На данный момент нанесение устройств на карту в qgis'е запретил триггерами. Разработан "склад" - там устройства добавляются, оформляется замена сгоревших устройств (отслеживаем весь жизненный цикл устройств). Так вот, сейчас каждый коммутатор нарисован поверх домов карты openstreetmap (много улиц и домов сами ездили и рисовали, а потом заносили), и мы запросом на вхождение центра геометрии устройства (точки) в геометрию дома определили связи наших домов в таблице house с домами в openstareetmap и также дополнительно храним геометрии домов на случай, если после обновления карт часть домов сдвинется или удалится. Так вот. Адреса, которые есть в нашей базе данных (фактически это только адреса наших абонентов) связаны с геометриями домов. И в большинстве случаев для того, чтобы выставить новый коммутатор из веб-морды склада на карту в нужное место (нужный дом) - достаточно последовательно выбрать населенный пункт, улицу и дом. Но. есть дома, которые добавляются постоянно, а значит надо снова давать доступ к квантум-гису на перетаскивание устройства на нужное место. Итак вопрос, вот есть окно выбора адреса:

как добавить возможность, в случае, если дома нет - поставить метку на нужное здание?
Значит по-порядку. Мы интернет-провайдер. Однажды мы решили навести порядок с адресами абонентов, и понеслось. В-общем сейчас есть база данных, в ней есть таблица city (id, ..., title), street (id, city_id, ..., title), city (id, street_id, ..., title). Населенные пункты, улицы и дома могут добавлять "специальные люди". Для мониторинга сети используем zabbix, все устройства нанесены на карту - используем qgis, openstreetmap и postgresql+postgis. Все оборудование хранится в таблице devices. В таблице, помимо геометрии и прочих свойств есть поле house_id, по которому мы явно определяем полный адрес устройства. На данный момент нанесение устройств на карту в qgis'е запретил триггерами. Разработан "склад" - там устройства добавляются, оформляется замена сгоревших устройств (отслеживаем весь жизненный цикл устройств). Так вот, сейчас каждый коммутатор нарисован поверх домов карты openstreetmap (много улиц и домов сами ездили и рисовали, а потом заносили), и мы запросом на вхождение центра геометрии устройства (точки) в геометрию дома определили связи наших домов в таблице house с домами в openstareetmap и также дополнительно храним геометрии домов на случай, если после обновления карт часть домов сдвинется или удалится. Так вот. Адреса, которые есть в нашей базе данных (фактически это только адреса наших абонентов) связаны с геометриями домов. И в большинстве случаев для того, чтобы выставить новый коммутатор из веб-морды склада на карту в нужное место (нужный дом) - достаточно последовательно выбрать населенный пункт, улицу и дом. Но. есть дома, которые добавляются постоянно, а значит надо снова давать доступ к квантум-гису на перетаскивание устройства на нужное место. Итак вопрос, вот есть окно выбора адреса:

как добавить возможность, в случае, если дома нет - поставить метку на нужное здание?