|
|
|
|
|
- Acceso a datos espaciales mediante índices espaciales
GeometryContain (Función) Determina si la geometría A contiene a la geometría B.
Observaciones: - Si la geometría A "contiene" a la geometría B, significa que la geometría B se encuentra completamente dentro de la geometría A. En este caso:
- Ningún punto de la geometría B se encuentra fuera de la geometría A. Todos los puntos de la geometría B están en el interior o en el anillo exterior de la geometría A.
- Los interiores de las geometrías A y B tienen al menos un punto en común.
- Diferencia con la función GeometryCover: Con la función GeometryCover, los interiores de ambas geometrías no tienen que tener un punto en común. Un polígono cubre su contorno, pero no lo contiene.
o2DPolygon_1 is Polygon2D
Linestring2DAddPoint(o2DPolygon_1.Outline, -4.00, -4.00)
Linestring2DAddPoint(o2DPolygon_1.Outline, -4.00, 2.00)
Linestring2DAddPoint(o2DPolygon_1.Outline, 5.00, 2.00)
Linestring2DAddPoint(o2DPolygon_1.Outline, 5.00, -4.00)
Linestring2DAddPoint(o2DPolygon_1.Outline, -4.00, -4.00)
o2DPolygon_2 is Polygon2D
Linestring2DAddPoint(o2DPolygon_2.Outline, -1.00, -2.00)
Linestring2DAddPoint(o2DPolygon_2.Outline, 2.00, 0.00)
Linestring2DAddPoint(o2DPolygon_2.Outline, 2.00, -2.00)
Linestring2DAddPoint(o2DPolygon_2.Outline, -1.00, -2.00)
let p2_in_p1 = GeometryContain(o2DPolygon_1, o2DPolygon_2)
GeometryWithin(o2DPolygon_2, o2DPolygon_1)
Sintaxis
<Result> = GeometryContain(<Geometry A> , <Geometry B>)
<Result>: Booleano - True si la geometría A contiene a 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 que contiene datos espaciales Variable que corresponde a la geometría para la que queremos determinar si contiene la geometría B. Esta geometría puede corresponder a uno de los siguientes tipos de variables: <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 Acceso a datos espaciales mediante índices espaciales Puede recorrer un archivo de datos aplicando un filtro sobre los datos espaciales. Por ejemplo, el filtro puede basarse en el resultado de la función GeometryContain. Le recomendamos utilizar la siguiente sintaxis para aplicar un filtro a los datos espaciales: FOR EACH File WHERE WLanguage_function(File.Spatial_item, Spatial_variable) donde: - WLanguage_function corresponde a la función GeometryContain.
- Spatial_item corresponde a un campo espacial en el archivo de datos. Este campo debe:
- ser de tipo "Datos geográficos" o "Datos geométricos".
- definirse como "clave espacial".
- Spatial_variable corresponde a una variable espacial dada, utilizada para la comparación con el campo espacial. Esta variable puede ser de tipo PolygonGeo, Polygon2D, etc.
Nota: La sintaxis "FOR EACH File" está disponible pero no se recomienda, dado que no utiliza índices espaciales y, por lo tanto, no está optimizada. En este caso, se recorre todo el archivo de datos y no se utilizan índices espaciales. FOR EACH File IF WLanguage_function(File.Spatial_item, Spatial_variable) = True THEN ... END END Ejemplo:
polyGeo is PolygonGeo
LinestringGeoAddPoint(polyGeo.Outline, 0n48.8187479172765, 0n1.9550104465229536)
LinestringGeoAddPoint(polyGeo.Outline, 0n48.685649220185574, 0n2.023674998054354)
LinestringGeoAddPoint(polyGeo.Outline, 0n48.82612543243871, 0n2.2106580854197566)
polyGeo = GeometryCorrect(polyGeo)
NumberOfRecords is int
FOR EACH MunicipalityData where GeometryContain(MunicipalityData.geometry, polyGeo)
Trace(MunicipalityData.MunicipalityName)
END
Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|