AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV, WEBDEV y WINDEV Mobile 2024!
Ayuda / WLanguage / Administrar bases de datos / HFSQL / 
  • Ejemplos
  • Parcours des données spatiales : utilisation des index spatiaux
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Determina si un polígono 2D cruza otra geometría.
Se puede considerar que dos geometrías se cruzan si:
  • Los interiores de la geometría A y la geometría B tienen al menos un punto en común.
  • El interior de la geometría A no tiene todos sus puntos en el interior de la geometría B, y viceversa: la geometría A no debe contener la geometría B y la geometría B no debe contener la geometría A.
  • La intersección de los interiores debe tener una dimensión inferior a la dimensión máxima de las geometrías de entrada.
Ejemplo
o2DPolygon_1 is Polygon2D
o2DPolygon_1.Outline.AddPoint(-2.00, 1.00)
o2DPolygon_1.Outline.AddPoint(2.00, 1.00)
o2DPolygon_1.Outline.AddPoint(2.00, -1.00)
o2DPolygon_1.Outline.AddPoint(-2.00, -1.00)
// Add last point (same as first)
o2DPolygon_1.Outline.AddPoint(-2.00, 1.00)
// Corrects the new geometry
o2DPolygon_1 = o2DPolygon_1.Correct()

oLinestring is Linestring2D
oLinestring.AddPoint(0.00, 2.00)
oLinestring.AddPoint(-2.00, -2.00)
// Corrects the new geometry
oLinestring = oLinestring.Correct()

// The linestring crosses the first polygon
Trace(oLinestring.Cross(o2DPolygon_1))
Sintaxis
<Result> = <Geometry A>.Cross(<Geometry B>)
<Result>: Booleano
  • True si la geometría A cruza la geometría B,
  • False en caso contrario.
Si se produce un error, la variable ErrorOccurred se establece en True. Para obtener más información sobre el error, utilice la función ErrorInfo con la constante errMessage.
<Geometry A>: Variable de tipo Polygon2D
Nombre de la variable de tipo Polygon2D que se utilizará.
<Geometry B>: Variable que contiene datos espaciales
Variable que corresponde a la segunda geometría. Esta geometría puede corresponder a uno de los siguientes tipos de variables:
Observaciones

Ejemplos

Ejemplo 1: Cruce de dos polígonos:
Dos polígonos (con una dimensión de 2) cuyos interiores tienen puntos en común no se cruzan. En este caso, su intersección es también un polígono, cuya dimensión es igual a la dimensión de las dos geometrías (2). Sin embargo, estos polígonos se superponen y se intersectan.
En ese caso:
  • la función <Variable Polygon2D>.Cross devuelve False.
  • se produce un error no fatal si se pasan dos polígonos a la función <Variable Polygon2D>.Cross.
Ejemplo 2: Polilínea y polígono:
Una polilínea que pasa a través de un polígono y tiene puntos fuera del polígono, cruza el polígono. La intersección entre las dos geometrías es una polilínea, cuya dimensión es menor que la del polígono.

Parcours des données spatiales : utilisation des index spatiaux

Il est possible d'effectuer un parcours sur un fichier de données avec un filtre concernant des données spatiales. Par exemple, le filtre utilisé peut être basé sur le résultat de la fonction <Variable Polygon2D>.Cross.
Pour optimiser ce filtre sur des données spatiales, il est recommandé d'utiliser les index spatiaux via la syntaxe suivante :
POUR TOUT Fichier AVEC Fonction_WLangage(Fichier.RubriqueSpatiale, variable_spatiale)

où :
  • Fonction_WLangage correspond à la fonction <Variable Polygon2D>.Cross.
  • Rubrique_spatiale correspond à une rubrique spatiale du fichier de données. Cette rubrique doit :
    • être de type "Données géographiques" ou de type "Données géométriques".
    • être définie comme une "Clé spatiale".
  • Variable_spatiale correspond à une variable spatiale donnée, utilisée pour la comparaison avec la rubrique spatiale. Cette variable est par exemple, une variable de type PolygoneGéo, Polygone2D, etc.
Remarque : Bien que disponible, la syntaxe "POUR TOUT Fichier" n'est pas recommandée car cette syntaxe n'utilisant pas les index spatiaux, ses performances ne sont pas optimisées. Effet, dans ce cas, tout le fichier de données est parcouru : les index spatiaux ne sont pas utilisés.
POUR TOUT Fichier
SI Fonction_WLangage(Fichier.Rubrique_spatiale, Variable_spatiale) = Vrai ALORS
   ...
   FIN
FIN
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 2024
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 24/05/2024

Señalar un error o enviar una sugerencia | Ayuda local