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

Изменение семантики объекта через REST API (wfs:Update)

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebService
Страницы: 1
RSS
Изменение семантики объекта через REST API (wfs:Update)
 
Подскажите, в правильном ли XML-формате я отправляю запрос к серверу для изменения семантики объекта?
В документации работу с "wfs:Update" нашел только из примера.

Отправляю следующий POST-запрос на адрес /giswebservice/service.php?SERVICE=WFS&REQUEST=Transaction&LAYER_ID=MO

<?xml version="1.0" ?>
<wfs:Transaction version="2.0.0" service="WFS" handle="Transaction 01" xmlns:bsd="http://www.gisinfo.net/bsd"; xmlns:wfs="http://www.opengis.net/wfs/2.0"; xmlns:fes="http://www.opengis.net/fes/2.0"; xmlns:gml="http://www.opengis.net/gml/3.2"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://www.gisinfo.net/bsd http://www.gisinfo.net/bsd/topomap.xsd http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0.0/wfs.xsd http://www.opengis.net/gml/3.2 http://www.opengis.net/gml/3.2.1/gml.xsd">;
   <wfs:Update typeName="bsd:UAV">
       <wfs:Property>
           <wfs:ValueReference>bsd:State</wfs:ValueReference>
           <wfs:Value>1</wfs:Value>
       </wfs:Property>
       <fes:Filter>
           <fes:ResourceId rid="MO:16" />
       </fes:Filter>
   </wfs:Update>
</wfs:Transaction>

Где:
UAV - ключ слоя (в классификаторе)
State - ключ семантики (в классификаторе)
MO:16 - имя карты (то, что возвращает giswebservice/service.php?SERVICE=WFS&REQUEST=GETLAYERS) и код объекта (номер объекта из свойств в браузере)
При сохранении схемы XSD указан префикс имен "bsd".

В ответ о результатах приходят нули:

<?xml version="1.0" encoding="utf-8"?>
<wfs:TransactionResponse version="2.0.0" xmlns:bsd="http://www.gisinfo.net/bsd"; xmlns:wfs="http://www.opengis.net/wfs/2.0"; xmlns:fes="http://www.opengis.net/fes/2.0";  xmlns:gml="http://www.opengis.net/gml/3.2.1"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.gisinfo.net/bsd http://localhost/giswebservice/service.php?service=wfs&amp;request=describefeaturetype&a... http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0.0/wfs.xsd http://www.opengis.net/gml/3.2 http://www.opengis.net/gml/3.2.1/gml.xsd">
   <wfs:TransactionSummary>
       <wfs:totalInserted>0</wfs:totalInserted>
       <wfs:totalReplaced>0</wfs:totalReplaced>
       <wfs:totalUpdated>0</wfs:totalUpdated>
   </wfs:TransactionSummary>
</wfs:TransactionResponse>

Через браузер значение семантики изменяется, но запрос выполняется через wfs:Replace.
Для карты включены протоколы: WMS, WMTS, WFST.

Нужно ли указывать путь к своей схема в xsi:schemaLocation?
 
Команда Update не поддерживается. Все изменения необходимо слать через wfs:Replace. При транзакции для нашего сервиса указывать schemaLocation необязательно.
Страницы: 1
Читают тему (гостей: 1)



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

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