|
|
|
|
- Acceso a datos espaciales: uso de índices espaciales
GeometryDistance (Función) Calcula la distancia entre dos geometrías. Para las geometrías distintas de los puntos, esta distancia se calcula a partir de los vértices más cercanos entre las dos geometrías.
Athens is PointGeo
Athens.Latitude = 37.971536
Athens.Longitude = 23.725750
Brussels is PointGeo
Brussels.Latitude = 50.8119483
Brussels.Longitude = 4.3826169
let dist = GeometryDistance(Athens, Brussels)
Trace("GeometryDistance(Athens, Brussels) = " + dist)
Sintaxis
<Result> = GeometryDistance(<Geometry A> , <Geometry B>)
<Result>: Real Distancia entre los vértices más cercanos de la geometría A y la geometría B. - Para geometrías basadas en un sistema de coordenadas 2D, esta distancia se calcula aplicando el Teorema de Pitágoras (distancia euclidiana). La distancia se devuelve en las mismas unidades que las coordenadas del punto.
- Para las geometrías basadas en un sistema de coordenadas geográficas, esta distancia se calcula utilizando el sistema de coordenadas WGS84, que tiene en cuenta la curvatura de la Tierra. La distancia se devuelve en metros.
<Geometry A>: Variable que contiene datos espaciales Primera geometría utilizada. Esta geometría puede corresponder a uno de los siguientes tipos de variables: <Geometry B>: Variable que contiene datos espaciales Segunda geometría utilizada. Esta geometría puede corresponder a uno de los siguientes tipos de variables: Observaciones Acceso a datos espaciales: uso de í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 GeometryDistance. 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 GeometryDistance.
- 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.
Observación: 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: no se utilizan índices espaciales. FOR EACH File IF WLanguage_function(File.Spatial_item, Spatial_variable) = True THEN ... END END Ejemplo:
polyGeo is PolygonGeo
polyGeo.Outline.AddPoint(0n48.8187479172765, 0n1.9550104465229536)
polyGeo.Outline.AddPoint(0n48.685649220185574, 0n2.023674998054354)
polyGeo.Outline.AddPoint(0n48.82612543243871, 0n2.2106580854197566)
polyGeo = GeometryCorrect(polyGeo)
NumberOfRecords is int
FOR EACH MunicipalityData where GeometryDistance(MunicipalityData.geometry, polyGeo) <= 10000
Trace(MunicipalityData.MunicipalityName)
END
Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|