На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Внешняя функция

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebServer
Страницы: 1
RSS
Внешняя функция
 
Добрый день!
Возник вопрос с написанием внешней функции, нужно из семантик (атрибутов) объекта вывести рисунок (документ в формате IMG или PDF) в виде:


Имеется атрибут с прикрепленным графическим фалом к объекту через файловое хранилище ГИС Сервера и атрибут с описанием объекта:


Как правильно написать внешнюю функцию?
 
Цитата
Александр Канивец написал:
Как правильно написать внешнюю функцию?
Как пример, см. здесь - http://www.panorama.kharkov.ua/lessons/rlessons.htm?page=web01
 
Vitaliy Belenkov, В этом примере идет вывод из таблицы БД, а мне нужно из семантики...
 
Общий принцип работы следующий. В качестве аргумента внешняя функция получает json-объект вида {gid:.., layerid:..., containerid:..}. Используя эти данные можно добраться до любой информации об объекте.
Семантики можно получить из объекта в карте по идентификатору gid:

Код
mapObject = map.selectedObjects.findobjectsByGid(gid);
mapObject.semantic.semantics; // все семантики объекта,
mapObject.semantic.semantics[i].shortname; // имя i-той семантики
mapObject.semantic.semantics[i]['textvalue']; // значение i-той семантики

А можно выполнить запрос к сервису и получить их оттуда в формате xml через запрос GetFeatureInfo или GetFeature. Более подробно о запросах к сервису смотрите в его документации: http://gistoolkit.ru/download/doc/giswebservicesedoc.pdf

Далее получаем сам файл, указанный в семантике:

Код
// получаем файл с ГИС Сервера в кэш сервиса:
server = "http://localhost/giswebservicese/service.php";
url = server  + "?SERVICE=WFS&RESTMETHOD=GETFILEFROMSEMANTIC&LAYER=" + layerid + "&ALIAS=" + encodeURIComponent(semvalue);
...
// сформировать URL на файл из кэша сервиса
url = server + "?SERVICE=WFS&Method=GetFile&FilePath=" + encodeURIComponent(filename) + "&RENAME=" + semfilename;
...


Далее надо сформировать html и вывести его в контейнер с идентификатором containerid. Например:

Код
var elem = $('#'+containerid).html('');
var inner = "<img src=url/><span>text</span>";
elem.html(inner);

В каком виде будет сформирован html зависит только от Вашей фантазии.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности