Suite

BBOX sélectionner la précision


J'ai une application OpenLayers 3. Lorsque vous utilisez une boîte pour sélectionner des entités de la couche GeoServer WFS (request=GetFeature), j'obtiens des résultats inexacts, voir l'image ci-dessous. La couche est servie à partir d'une base de données PostGIS. Cependant, j'ai les mêmes données dans un fichier de formes servi via le même GeoServer et lorsque je passe à cette couche, je n'obtiens qu'une seule entité sélectionnée dans le même exemple, comme l'image ci-dessous.

Toute aide ici serait bonne car je ne sais pas où est le problème, il me semble que le problème est dans PostGIS mais pas sûr. N'importe quelle idée, même comment résoudre ce problème, aiderait.

D'AILLEURS. Cela se produit de manière aléatoire dans de nombreux endroits, ce n'est pas le seul problème. Et cela semble se produire davantage à mesure que je zoome de plus près.

La requête transmise à PostGIS ressemble à ceci :

O "the_geom" && ST_GeomFromText('POLYGONE (

L'image ci-dessous montre que la requête ne fait pas une intersection (ce qui est ce à quoi je m'attends) mais plutôt une intersection avec l'étendue des entités. La BBOX verte a sélectionné ces trois lignes jaunes au-dessus d'elle.

Comment puis-je modifier/réparer cela ?

Comment faire en sorte que GeoServer utilise la fonction ST_Intersects ?


Ils semblent faire partie d'un CHAÎNE MULTILIGNE.

Vérifiez les types de géométrie dans vos colonnes geom en :

SELECT distinct ST_GeometryType(geom) des routes

Et modifier si nécessaire - en supposant que c'était le problème.

ÉDITER:

Pour éliminer cette erreur de fin de base de données, essayez de sélectionner les fonctionnalités en utilisant la même BBOX directement à partir de la base de données :

sélectionnez count(geom) dans la table latérale où geom && ST_MakeEnvelope(lrx, lry, urx,ury, 3857);

Si vous obtenez le nombre de résultats en retrait, vous pouvez en déduire que l'erreur n'est pas dans la base de données.


Voir la vidéo: Réinitialiser votre modem b-box 3V+ (Octobre 2021).