Implementando o cliente WPS no OpenLayers 3?

8

É possível (e qual é a maneira recomendada) usar o OpenLayers 3 para fazer o trabalho do OpenLayers.WPSClient?

Conforme mostrado no antigo exemplo de cliente WPS , o OpenLayers 2 pode ser usado para operar o WPS.

Existem exemplos do OpenLayers 3 para usar outros serviços da Web, como WFS e WMS, mas não o WPS (a partir da versão 3.2.1).

Isso é temporário ou por design?

tinlyx
fonte

Respostas:

7

Como parte do projeto WPS-GUI que criei, criei uma "biblioteca" do cliente WPS que modela de perto a interface do OpenLayers 2. Ele usa JSONIX ( http://confluence.highsource.org/display/JSNX/Jsonix ) para todo o processo de marshalling e unshalling de XML do OGC.

Você pode conferir aqui:

https://github.com/boundlessgeo/wps-gui/blob/master/src/wpsclient.js

Bartvde
fonte
Muito obrigado pela sua resposta! Este arquivo js é independente? Isso é um pouco esmagador para minhas habilidades em js. Parece haver referências wpsclient.jsa HTMLelementos e "global"variáveis. Você poderia dar um exemplo de uso mínimo, por exemplo, para ligar gs:AddCoveragesou outro wps no GeoServer / OpenGeo?
tinlyx
Você já viu o exemplo do OpenLayers 2 WPS? A interface usada aqui é muito semelhante.
22615 bartvde
Obrigado, vou dar uma olhada. Comecei com OpenLayers 3 e necessidade de OpenLayers teste 2.
tinlyx
@ Bartvde Você pode me dar um exemplo de buffer usando o serviço wps no openlayer 3.?
Priyanka
3

Também reutilizei o cliente openlayers 2 em um construtor wps . Eu tinha que implementar o DefaultValuee ExecuteResponseobjetos.

Há uma necessidade mais ampla de um cliente wps independente do cliente de mapeamento, como visto nesta discussão sobre como trabalhar com o ows.js (baseado no jsonix, como a implementação do @ bartvde). Desde essa discussão, o trabalho começou . A implementação do WPS ainda não foi iniciada. A idéia do javascript ows.js é modelada após a conveniente biblioteca owslib .

Os principais desafios na implementação de um cliente WPS são:

  • definindo o xml para o mapeamento de objetos. Esse é o papel do jsonix e dos leitores de formato OpenLayers (2) .
  • definindo uma API conveniente para executar solicitações. Se você observar a implementação owslib wps como exemplo, verá que implementar uma API conveniente para os processos WPS não é uma tarefa trivial. A grande variedade de opções (com / sem status, resposta bruta / resposta de referência, etc ...) torna o suporte a todas as entradas e saídas possíveis um grande desafio.
SiggyF
fonte
2

Uma possibilidade é usar o cliente wps do openlayers 2 no seu projeto do openlayers 3. A resposta da solicitação wps está no WKT e você pode formatá-la facilmente para um recurso de openlayers 3 com o formatador incorporado.

http://openlayers.org/en/v3.9.0/apidoc/ol.format.WKT.html

(A resposta dependendo da solicitação wps que você está usando, é claro ..)

Fiz isso em um projeto, pois não tive tempo de implementar meu próprio cliente wps.

antonLundkvist
fonte
2

Você pode fazer um truque como este. O Geoserver possui um WPS Builder que pode gerar solicitação Xml a partir de entradas e saídas. Você pode pegar o xml gerado e passá-lo em uma variável de string em javascript. Substitua valores de entrada xml por variáveis. No meu caso, eu precisava de apenas um processo, mas você pode fazer uma função de chave. Você pode usar uma solicitação xmlPost simples para passar a sequência xml para o servidor geográfico.

Majk Shkurti
fonte