Suite

Le moyen le plus rapide de demander si un multipolygone contient un seul point


J'ai un multipolygone de type géographie (multi_limites) et un point. J'essaie de trouver le moyen le plus rapide de demander si le multipolygone contient le point. Dans ce cas, si le point fait partie de la frontière, il doit toujours retourner vrai.

J'ai essayé CoveredBy :WHERE ST_CoveredBy(ST_SetSRID(ST_MakePoint(:long, :lat), 4326), multi_bounds::geometry)

:longueet:latsont des arguments fournis par yesql.

Et j'ai essayé contient:O ST_Contains(multi_bounds::geometry, ST_SetSRID(ST_MakePoint(:long, :lat), 4326))

Je ne vois pas de différence notable et je me demande quelle est la meilleure pratique ici.

j'ai essayéST_CouvertParsans couléemulti_limitesà la géométrie mais je n'ai pas pu passer une erreur:org.postgresql.util.PSQLException : ERREUR : BOUM ! Impossible de générer le point extérieur !


crédit à Nate Wessel pour la suggestion.

Ajout d'une colonnemulti_bounds_geomde type géométrique et utilisantST_Intersectest plus rapide que tout ce que j'ai essayé d'autre.