Suite

Geoserver WPS Request for jts:buffer (ou autre chose) avec Multipolygon


Je souhaite créer une demande WPS en utilisant le JTS:Buffer (ou tout autre processus). J'utilise le générateur de requêtes WPS intégré de GeoServer.

Mon Multipolygone ressemble à ceci :

52.52735668,12.71762844 52.52633816,12.71518035 52.52467495,12.71354766 52.52293926,12.7136373 [… ] 52.52154308,12.71439548

Je construis la demande avec TEXT et le sous-type text/gml gml:3.1.1. Ma contribution est :

MULTIPOLYGONE(((52.52735668,12.71762844 52.52633816,12.71518035 52.52467495,12.71354766 52.52293926,12.7136373 52.52154308,12.71439548)))

Malheureusement le

Échec du processus lors de l'exécution Impossible de convertir MULTIPOLYGON(((52.52735668,12.71762844 52.52633816,12.71518035 52.52467495,12.71354766 52.52293926,12.7136373 52.52154308,12.71439548))) en type de cible com.vividsolutions.jeos.geom.G

Mais quand j'insère un autre multipolygone à partir de cette réponse

MULTIPOLYGONE(((743238 2967416,743238 2967450,743265 2967450,743265,625 2967416, 743238 2967416)))

Tout fonctionne bien et je reçois le multipolygone mis en mémoire tampon. Quelqu'un peut-il m'expliquer ce que je fais mal?


Cela est dû au fait que les normes WKT et GML utilisent une convention différente pour séparer les paires de points et chaque coordonnée d'un point.

GML utilise une virgule pour séparer les coordonnées et l'espace pour séparer les paires, par exemple,

52.52735668,12.71762844 52.52633816,12.71518035

alors que WKT utilise le contraire, par exemple,

52.52735668 12.71762844, 52.52633816 12.71518035

Vous avez un 2ème problème en ce sens que vous devez vous assurer que le premier point est répété dans votre Multipolyon, c'est-à-dire que la chaîne est fermée.

Pour convertir de GML en WKT, vous pouvez utiliser le pseudo-code suivant :

gml = gml.replace(",", "@") gml = gml.replace(" ", ","); wkt = gml.replace("@", " ");


Voir la vidéo: Web Coverage Service WCS crash course. GeoServer with Leaflet. Tekson (Octobre 2021).