Запросы, задействованные в задаче
Как было показано на схеме выше, основная последовательность действий клиента при работе с MapViewer является следующей: поиск запущенного экземпляра MapViewer, присоединение к нему, отправка картографического XML запроса и обработка результата, полученного от экземпляра MapViewer.
Запрос к сервлету MapViewer имеет следующий формат:
http://hostname[:port]/MapViewer-servlet-path?xml_request=xml-request
где hostname - это сетевой путь к серверу, на котором запущен MapViewer.
port - это порт, на котором сервис MapViewer слушает сеть.
MapViewer_servlet_path - это путь к сервлету MapViewer (например :/mapviewer/omserver)
xml_request - кодированный по правилам URL запрос в формате XML, который отсылается на сервер методами POST или GET. Форма представления запроса в виде XML требуется во всех видах запросов. Содержимое ответа на запрос может варьироваться от данных в виде XML-документа до бинарного объекта, содержащего файл изображения, запрошенного пользователем.
В отправляемом запросе необходимо указать источник данных и один или более необходимых параметров:
- Темы и стили.
- Координаты центральной точки или прямоугольник, задающие отображаемую карту. Также дополнительно могут быть посланы надписи и стили.
- Предопределенную базовую карту, которая может быть многократно использована и частично переопределена в данном конкретном запросе.
- Настроенные темы, содержащие пользовательские точки данных (или другие геометрические объекты) генерируемые динамически и отображаемые непосредственно из доступной базы данных.
- Настроенные объекты (точки, линии, полигоны и пр.), заданные в строках XML запроса для отображения.
- Тематическое картографирование
В нашем конкретном случае, генерируя HTML-страницу, PL/SQL-процедура выполняет непосредственно один запрос к MapViewer вида: 'http://hostserver:8888/mapviewer/omserver? xml_request='<?xml version="1.0" standalone="yes"?> <map_request datasource="ds_demo" basemap="map_demo" width="640" height="480" bgcolor="#FFFFFF" antialiasing="false" format="GIF_URL"> <center size="[size]">
<geoFeature> <geometricProperty> <Point> <coordinates>[x],[y]</coordinates> </Point>
</geometricProperty> </geoFeature> </center> </map_request>
где
hostserver:8888/mapviewer/omserver - сервер MapViewer datasource="ds_demo" - параметр запроса, определяющий источник данных, настроенный ранее для MapViewer basemap="map_demo" - параметр, определяющий имя базовой карты, и включающей в себя все необходимые метаданные, необходимые для формирования и отображения карты. width="640" height="480" - эти параметры задают размеры в пикселах результирующего изображения карты bgcolor="#FFFFFF" - параметр задает RGB-цвет фона изображения карты, поверх которого отрисовывается все остальное. antialiasing="false" - параметр сглаживания ступенчатости на изображении карты. format="GIF_URL" - параметр, указывающий MapViewer, что необходимо сформировать изображение карты и вернуть ссылку на него. <center>...</center> - раздел, определяющий участок карты, котрый нужно отобразить на результирующем изображении. size="[size]" - параметр определяющий размер карты. <geoFeature>...</geoFeature> - раздел указывающий MapViewer, что положение отображаемого участка карты будет задано при помощи пространственного объекта (в нашем случае при помощи точки). <geometricProperty>...</geometricProperty> - подраздел задает геометрические параметры пространственного объекта. <Point>...</Point> - этим подразделом конкретизируется, что в качестве пространтсвеннгшо объекта будет указана точка. <coordinates>[x],[y]</coordinates> - а здесь уже конкретно указываются координаты точки в единицах измерения и системе координат карты
Содержание раздела