«Как найти этот дом?», «Как туда проехать?» — задумываться об этом время от времени приходиться каждому. Все вопросы, так или иначе связанные с местоположением искомого объекта, имеют непосредственное отношение к адресному плану (адресатору). Есть, конечно, карты населенного пункта и схемы маршрутов общественного транспорта: брошюры либо большие сложенные листы. Купить их можно в любом специализированном магазине, однако все они не слишком удобны для поиска необходимой информации. Например, поиск дома затруднен тем, что на большинстве карт пронумерованы только угловые дома; поиск улицы прост, только если на карте есть индексная информация (в каких квадратах расположена та или иная улица), об оптимальном маршруте и вовсе говорить не приходится. Альтернатива бумажной карте — современные
Некоторые ответы я попытаюсь дать в этой статье. Речь пойдет о пилотном проекте
В основу всего проекта положен
- относительная дешевизна базового комплекта плюс бесплатный компонент для просмотра карт на клиентских местах, платить за который соответственно не надо и пользователю;
- возможность совместной работы с независимыми базами данных, которые могут работать отдельно от графической основы;
- предоставление данных в векторном виде, что дает возможность не только просматривать карту, но и работать с ее объектами;
- возможность создания объектов на месте клиента;
- открытый интерфейс для программирования, что позволяет создавать собственные приложения;
- возможность создания зеркальных серверов и др.
Основой для базы данных стал Microsoft SQL Server 2000, а в качестве клиентских рабочих мест используется базовый Autodesk MapGuide Viewer, хотя для упрощения работы пользователя решено было расширить его некоторыми дополнительными функциями и специально разработанными модулями.
Благодаря появлению в новой версии MapGuide модуля Autodesk MapGuide Dynamic Authoring Toolkit и технологии работы
В результате — несколько очевидных преимуществ перед статическими проектами:
- формирование проекта для конкретного пользователя (IP-адрес, имя и пароль, уникальный номер MapGuide Viewer и др.);
- возможность подключать к проекту только те слои, с которыми клиент имеет право работать;
- возможность создания временных слоев с объектами, удовлетворяющими определенным условиям (имеются в виду
не SQL-фильтры , которые предоставляет MG Viewer,а web-сервис , который выполняется на сервере, создавая временные файлы с последующим их подключением к проекту) (рис. 6−7).
Как уже сказано, базовый компонент для просмотра карт (Autodesk MapGuide Viewer) дополнен рядом модулей и функций для более эффективного поиска объектов и работы с картой. Все написано на языке Visual Basic, что значительно улучшает внешний вид компонентов
Рассмотрим подробнее функциональные возможности модулей, специально разработанных в рамках проекта.
Базовый модуль дополнен следующим:
- панорамирование карты осуществляется средней кнопкой мыши (что очень удобно и понравится пользователям AutoCAD);
- зуммирование в пределы карты так же, как и в AutoCAD, выполняется двойным нажатием средней кнопки мыши;
- осуществляется постоянный контроль пределов (extent) карты, не позволяющий ей «исчезнуть» с экрана. Контролируются максимальный и минимальный масштабы отображения;
- стандартная панель инструментов заменена перемещаемой (плавающей) в окне Internet Explorer, что, по утверждению пользователей, удобнее (рис. 1);
- добавлено некоторое количество функций API, которые ускоряют написание дополнительных компонентов и модулей.
Для работы с адресатором создано две дополнительных формы:
- форма поиска по названию улицы и/или номеру дома, а также поиска по названию места (сады, микрорайоны, парки, исторически сложившиеся названия территорий и др.) (рис. 2);
- форма результатов поиска с функцией поиска улицы или адреса (дома) и места на карте (рис. 3).
Все формы могут перемещаться в окне Internet Explorer, хотя и являются элементами
Теперь непосредственно о работе с адресатором.
При первом обращении к странице появляется запрос об установке (рис. 4) и, если дан положительный ответ, на компьютер пользователя автоматически устанавливаются все необходимые для работы компоненты. После этого загружается карта Ярославля в масштабе М1:200000 (рис. 5).
Создавая используемые слои, мы учитывали, что скорость передачи данных на наших линиях невелика: каждый новый вид, полученный в результате зуммирования, панорамирования или поиска, при загрузке занимает не более 50 Кб, что приемлемо для нормальной работы в сети. Это было сделано за счет разделения каждого слоя на группы по упрощению (генерализации) вектора для разных масштабных диапазонов.
Также было решено исключить из списка слоев, которые появляются при загрузке проекта, слой с объектами застройки. Причин тому несколько:
- соображения секретности: на электронных картах нельзя показывать номера домов, кроме угловых (пережитки прошлых лет, но их никто не отменял);
- финансовые соображения: показ всех домов целесообразно включить в платную услугу и отображать эти дома для конкретных пользователей;
- «облегчение» проекта: подгрузка домов требуется не всегда (сетевая задача
и т.д.).
При поиске адреса пользователь полностью или частично вводит название улицы, а также номер дома (последнее не обязательно). Запрос отправляется
В заключение скажем, что этот проект — первый шаг в создании полноценного