| Обзор возможностей Oracle Application Server MapViewer
(Oracle Application Server 10g MapViewer — Feature Overview)
Источник: корпорация Oracle, сентябрь 2005, http://www.oracle.com/technology/products/mapviewer/htdocs/feature_overview/feature_overview.html
Введение
Oracle Application Server MapViewer (или просто MapViewer) предлагает мощные средства визуализации геопространственных данных и службы отчетов. Написанный целиком на Java и работающий в среде J2EE MapViewer предоставляет разработчикам web-приложений разнообразные возможности визуализации и интеграции бизнес-данных с картами. Для управления данными географической картографии MapViewer использует основные возможности Oracle10g, которые поставляются с опциями Oracle Spatial и Locator. MapViewer скрывает от разработчиков приложения сложность запросов к пространственным данным и процесс отображения карт.
Обзор
Этот документ описывает новые возможности, появившиеся в Application Server 10g вместе с MapViewer. Эти возможности перечислены ниже, просто для того, чтобы представить новую обширную функциональность, которая более подробно обсуждается в следующих разделах.
Новые улучшенные возможности, доступные в MapViewer версии 9.0.4, включают в себя:
- Java Client API — новый клиентский Java-интерфейс программирования приложений предоставляет удобный доступ к большинству функций MapViewer из Java-приложений.
- Библиотека JSP-тегов (JSP Tag Library) — набор пользовательских JSP-тегов может быть использован для разработки JSP-приложений, использующих возможности MapViewer.
- Поддержка формата PNG.
- Поддержка условных обозначений карты (Map Legend Support) — можно настраивать содержимое и расположение условных обозначений.
- Возможность запросов с непространственными атрибутами (Query Capabilities with Nonspatial Attributes) – набор методов в Java Client API, запрашивающих непространственные атрибуты, связанные с пространственным расположением.
- Поддержка справочных географических изображений (Basic Support for Georeferenced Images) – определение тем изображений, которые могут быть отображены вместе с обычной векторной темой.
- Поддержка простых флеш-карт — MapViewer теперь может выводить простые флеш-карты, которые можно интерактивно просматривать, используя флеш-клиент.
- Улучшение производительности — MapViewer использует внутреннюю конфигурацию и кэширование изображений для предопределенных тем.
Java-интерфейсы программирования приложений (Java API)
Доступ к возможностям MapViewer можно получить через XML API, который разработчики приложения могут использовать для формулировки картографических XML-запросов к MapViewer и разбора ответов от него. Используя XML API, приложение может:
- Настроить масштаб карты, цвет фона, размер, формат и заголовок изображения и другие характеристики.
- Отобразить карту с предопределенной базовой картой, плюс другие предопределенные темы, не включенные в базовую карту.
- Отобразить карту с динамически определенными темами, при этом данные каждой темы выбираются SQL-запросом, определенным пользователем.
- Отобразить карту с одним или более отдельными объектами, которые приложение может получать из других источников.
- Получить ответ в XML-формате, представляющий собой URL на сгенерированное изображение карты, или реальные бинарные данные самого изображения плюс минимальный ограничивающий прямоугольник для данных, представленных в сгенерированной карте.
В MapViewer, начиная с версии 9.0.4, XML API встроен в Java API, что позволяет разработчикам Java-приложений легко использовать новый API вместо того, чтобы напрямую работать с картографическими XML запросами.
Библиотеки JSP-тегов
Через XML-подобный синтаксис JSP-теги предоставляют ряд важных возможностей MapViewer, таких как: настройка запросов к карте, масштабирование и панорамирование, а также определение непространственных атрибутов объектов, выбранных пользователем с помощью мыши.
Создание JSP-файлов зачастую проще и удобнее, чем использование XML API или API, основанного на JavaBean, хотя последние два подхода предоставляют большую гибкость и возможность управления программной логикой. Все JSP-теги MapViewer в области видимости одной сессии разделяют один MapViewer модуль (bean).
Теги позволяют выполнять различные виды операций с MapViewer:
- Создать MapViewer модуль и разместить его в текущей сессии: тег init, который должен располагаться перед любыми другими тегами MapViewer JSP.
- Настроить параметры для отображения карты и, при необходимости, базовой карты: тег setParam.
- Добавить темы и условные обозначения: теги addPredefinedTheme, addJDBCTheme, importBaseMap, и makeLegend.
- Получить информацию: теги getParam, getMapURL, и identify.
- Передать запрос карты для обработки: тег run.
Таблица, приведенная ниже, предоставляет общую информацию об отдельных тегах и краткий обзор функций каждого из них.
Название тега Объяснение
init Создает MapViewer модуль и размещает его в текущей сессии. Должен находиться перед любыми другими JSP-тегами.
setParam Определяет один или несколько параметров для текущего запроса карты.
addPredefinedTheme Добавляет предопределенную тему к текущему запросу карты.
addJDBCTheme Добавляет динамически определенную тему к текущему запросу карты.
importBaseMap Добавляет предопределенную тему, которая находится в заданной базовой карте текущего запроса карты.
makeLegend Создает условные обозначения (вставку в карту), нарисованные поверх сгенерированной карты.
getParam Получает значение заданного параметра для текущего запроса карты.
getMapURL Получает HTTP URL на текущее доступное изображение карты, сгенерированное службой MapViewer.
identify Получает значение непространственного атрибута (столбца) пространственного объекта, который связан с заданной точкой или прямоугольником на отображаемой карте, и, при необходимости, использует стиль маркера, чтобы определить точка это или прямоугольник.
run Передает для обработки службе MapViewer запрос текущей карты. Обработкой может быть увеличение или уменьшение масштаба, изменение центра карты или выполнение комбинации этих операций.
Условные обозначения карты
Условные обозначения карты – это встроенное изображение, нарисованное поверх карты и описывающее, что означают различные цвета, символы, рисунки и так далее. Условные обозначения представляют собой ключ или индекс, который связывает конкретный смысл карты и ее символы. Появление условных обозначений карты можно настроить следующим образом:
- Настроить цвет фона и стиль границ.
- Указать, иметь ли один или несколько столбцов в условных обозначениях.
- Добавить промежуток, чтобы отделить элементы условных обозначений.
- Структурировать элементы условных обозначений.
- Использовать любой стиль MapViewer, включая дополнительные стили.
Приведенный ниже пример является фрагментом запроса к MapViewer, включающим условные обозначения.
<?xml version=”1.0” standalone=”yes”?>
<map_request
basemap=”density_map”
datasource = “mvdemo”>
<center size=”1.5”>
…
</center>
<legend bgstyle=”fill:#ffffff;fill-opacity:128;stroke:#ff0000”
position=”NORTH_WEST”>
<column>
<entry text=”Map Legend” is_title=”true” />
<entry style=”M.STAR” text=”center point” />
<entry style=”M.CITY HALL 3” text=”cities” />
<entry is_separator=”true” />
<entry style=”C.ROSY BROWN STROKE” text=”state boundary” />
<entry style=”L.PH” text=”interstate highway” />
<entry text=”County population:” />
<entry style=”V.COUNTY_POP_DENSITY” tab=”1” />
</column>
</legend>
<themes>
…
</themes>
</map_request>
Запрос непространственных атрибутов
Часто возникает необходимость запрашивать непространственные атрибуты, связанные с пространственными объектами, отображаемыми в текущей карте. Предположим, например, что необходимо получить изображение карты расположения всех клиентов для заданной страны или почтового индекса. Следующий логический шаг – это получить более подробную информацию о каждом клиенте, отображаемом в результирующей карте. В типичной ситуации пользователь укажет или щелкнет мышью по объекту, изображенному на карте, чтобы узнать больше о нем (получить непространственные атрибуты). Это действие можно реализовать, написав запрос с необходимыми непространственными атрибутами в предложении SELECT и пространственным фильтром в предложении WHERE. Пространственный фильтр – это SQL-оператор Oracle Spatial, который проверяет, есть ли пространственная взаимосвязь между конфигурацией в столбце таблицы (столбец типа SDO_GEOMETRY в таблице клиентов) и заданной целевой конфигурацией (в данном случае точкой, указанной мышью пользователя). Пространственный фильтр в предложении WHERE запроса отбирает и возвращает только непространственные атрибуты, связанные с конфигурацией, указанной пользователем мышью.
Для выполнения фильтрации необходимо вызвать оператор Oracle Spatial, однако, можно использовать интерфейс программирования приложения, основанный на модуле MapViewer, чтобы получить информацию, и предварительно подготовить строку пространственного фильтра, которая будет добавлена в предложение WHERE вашего запроса. Метод идентификации еще больше упрощает задачу.
Поддержка справочных географических изображений
Тема изображения – это специальный вид темы MapViewer, полезный для визуализации географических справочных данных изображения (растровых), таких как удаленный сбор данных и аэрофотография. Данные изображения могут использоваться для сообщения определенной информации, являющейся важной для таких приложений, как управление активами, а также для многих приложений, связанных с перевозками.
В базе данных можно определить динамическую или постоянную (то есть предопределенную) тему изображения. В карте можно использовать темы изображений вместе с векторными темами (темами не изображений). На рисунке, приведенном ниже, показана карта, в которой тема изображения (показанная на аэрофотографии как часть города Бостон) перекрывается темами, показывающими некоторые виды дорог в городе.
Улучшение производительности
Для настройки производительности MapViewer можно изменить кэш памяти и диска, которые MapViewer использует для пространственных геометрических объектов. Это достигается путем использования элемента <spatial_data_cache>. Например:
<spatial_data_cache max_cache_size="64"
max_disk_cache_size="512"
disk_cache_path="/var/tmp"
/>
В качестве атрибутов элемента <spatial_data_cache> можно определить следующую информацию:
- Атрибут max_cache_size определяет максимальное количество мегабайт (MB) кэша памяти.
Значение по умолчанию: 64
- Атрибут max_disk_cache_size определяет максимальное количество мегабайт (MB) дискового кэша
Значение по умолчанию: 512
- Атрибут disk_cache_path определяет путь к временному диску, на котором будет размещаться кэш для подкачки данных.
Значение по умолчанию: значение Java переменной окружения java.io.tmpdir.
Пространственный кэш данных по умолчанию всегда доступен, даже если в конфигурационном файле элемент закомментирован. Чтобы полностью запретить кэширование пространственных данных, необходимо атрибуту max_cache_size присвоить значение 0 (ноль).
Заключение
MapViewer – это инструмент, доступный как компонент Application Server или как расширение среды разработки JDeveloper. MapViewer используется для улучшения передачи сложных географических данных и основной бизнес-информации приложениям и инструментам бизнес-логики. В состав текущей версии MapViewer 9.0.4 входит ряд новых возможностей, которые поддерживают улучшение функциональности (условные обозначения, JSP-теги, поддержка географических изображений и так далее), улучшение производительности и управляемости, спроектированные для облегчения использования этого важного расширения, предназначенного для создания на платформе Oracle карт для инфраструктуры, связанной с расположением.
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
Worldwide Inquiries:
+1.650.506.7000
Fax +1.650.506.7200
http://www.oracle.com/
Copyright ? Oracle Corporation 2005
All Rights Reserved
This document is provided for informational purposes only,
and the information herein is subject to change
without notice. Please report any errors herein to
Oracle Corporation. Oracle Corporation does not provide
any warranties covering and specifically disclaims any
liability in connection with this document.
Oracle is a registered trademark of Oracle Corporation.
All other company and product names mentioned are used
for identification purposes only and may be trademarks of
their respective owners.
|