Soporte para la agregación espacial

El análisis visual de datos de gran tamaño es compatible con las tablas de puntos del servidor SQL. Puede realizar este análisis en las columnas XY (en las que los valores de longitud y latitud o XY se almacenan como valores escalares individuales) y en las columnas de geometría (en las que las geometrías de punto se almacenan a través del uso de los tipos de datos de geometría o geografía del servidor SQL). En Spectrum Spatial se admite la agregación de unidades espaciales (también conocida como agrupación en clústeres espaciales) a través del uso de la ID de hash geográfico para crear tablas que se ajustan a la escala, lo que brinda una mejor visualización de grandes cantidades de datos. Por ejemplo, esto le permite agregar la suma de ventas o la cantidad total de puntos que desea representar en un mapa. Dado que el cliente accede a los datos de puntos en clúster como datos vectoriales (en formato GeoJSON), la aplicación del cliente puede aplicarles varios estilos (como símbolos graduados y diversas gamas de colores) y presentarlos como mapas de calor de cliente.

Permita que la opción Activar agregación espacial se active solo cuando la agregación espacial corresponda. En el caso de las tablas XY, la opción Agregación de unidades espaciales se habilita solo cuando se selecciona una conexión de base de datos, y las columnas X e Y ya se encuentran definidas en el catálogo de mapas.

Nota: En caso de modificar las tablas XY, la opción Activar agregación espacial permanece desactivada cuando se pasa a otra tabla mientras se realizan modificaciones. Esto es válido en el caso de las tablas XY solamente. En el caso de las tablas basadas en SQL, la opción Activar agregación espacial permanece activada incluso cuando se pasa a otra tabla basada en puntos.

Qué es Geohash

Geohash es una técnica de cuadrículas con la que se divide todo el mundo de manera recursiva en celdas de cuadrícula a las que se les asigna un valor de ID única. Existen 12 longitudes de geohash. La primera longitud divide el mundo en 32 celdas de cuadrícula (celdas de 8 x 4). La siguiente longitud divide las celdas de cuadrícula en otras 32 celdas (celdas de 4 x 8); en consecuencia, 1024 celdas cubren el mundo y así sucesivamente.

Qué es una escala

Cuando una tabla se ajusta a la escala, a cada punto de la tabla se le asigna una ID de hash geográfico, lo cual permite que se agregue a celdas de longitud mayor. Cuando las aplicaciones de un cliente realizan solicitudes de características para una tabla que se ajusta a la escala, se espera que pasen a la escala que desean usar como parte de la expresión MI SQL que se envía. El valor de la escala se envía como valor de “metros por píxel”, el cual también se denomina resolución en las bibliotecas de creación de mapas, como OpenLayers. La resolución es un valor que normalmente es de fácil acceso para las bibliotecas de creación de mapas del cliente.

En cuanto al servidor, Spectrum Spatial luego seleccionará la longitud geohash adecuada para agregar los datos. La siguiente tabla muestra la forma en que se eligió la longitud geohash según el valor de los metros por píxel de entrada.
La longitud de hash geográfico elegida para la agregación Ubicación de metros por píxeles
2 >= 19000
3 >= 2400 y < 19000
4 >= 600 y < 2400
5 >= 80 y < 600
6 >= 10 y < 80
7 >= 2 y < 10
8 >= 0,3 y < 2
9 >= 0,06 y < 0,3
10 < 0,06

Por ejemplo, si la resolución del mapa del cliente es 600 metros por píxel o mayor (y menor que 2400), entonces se selecciona la longitud 4 de geohash como la longitud de agregación para los datos. Con esta relación se garantiza que se devuelva una cantidad adecuada de características agregadas para permitir que se genere un mapa suficientemente detallado para el cliente como capa vectorial. La cantidad exacta de características agregadas obtenidas variará según el tamaño del mapa en el dispositivo del cliente y la densidad y la distribución de las características del mapa que se están agregando.

Límite de característica

La mayoría de las consultas que se ajustan a la escala en un mapa de cliente común de 1024 píxeles de ancho por 780 píxeles de alto, la respuesta obtenida será de menos de 1000 características. Sin embargo, la consulta puede arrojar más de 1000 características para algunas resoluciones. Si el tamaño de su mapa de cliente supera los 1024 píxeles, la posibilidad de obtener más de 1000 características es mayor. Se recomienda aumentar el límite de funciones de Spatial Manager en Servicios > Funcionesa un valor entre 5000 y 10 000 aproximadamente para garantizar que las respuestas que superen las 1000 funciones se entreguen sin errores.

Adición de una ID de hash geográfico a una tabla

Se debe agregar una ID de hash geográfico de forma manual a una tabla existente para que se pueda ajustar a la escala y esté disponible para la agregación de unidades espaciales. Para obtener instrucciones detalladas, consulte Adición de un índice de hash geográfico a una tabla.

Habilitación de tablas para la agregación de unidades espaciales

Se puede activar la agregación de unidades espaciales utilizando Spatial Manager durante la creación o la modificación de una tabla con nombre asignado (para obtener más información, consulte Crear una tabla y Crear una tabla XY). Revise la página de detalles de la tabla en Spatial Manager para saber si una tabla tiene activada la agregación de unidades espaciales. En la pestaña Información del recurso, se mostrará la columna de hash geográfico y el nivel de precisión; por otra parte, en la pestaña Columnas, se mostrará la columna de hash geográfico junto con sus atributos (como su tipo y si es indexada, de solo lectura o si acepta valores nulos).

Importante: Si la agregación de unidades espacial está activada en una tabla, se debería aumentar la cantidad máxima de características del valor predeterminado de 1000 registros a 10 000 registros. Esto se debe a que, en algunos casos, es posible que se obtengan más de 1000 características agregadas según el nivel de acercamiento, la extensión espacial del mapa en el cliente y la distribución espacial de las características que se están agregando (pese a esto, comúnmente, no se obtienen más de 2500 registros en aquellos casos en los que el mapa del cliente es de 1024 x 780 píxeles). Utilice Spatial Manager para ajustar la configuración MaximumFeatures del Servicio Feature (consulte Administración de la configuración de Feature Service).

Solicitud de característica de una tabla que se ajusta a la escala

Utilice MI SQL en una aplicación de cliente para solicitar características de una tabla que se ajusta a la escala. La agrupación en clústeres en el servidor está disponible a través del uso de la versión REST de la solicitud de búsqueda por SQL en el Servicio Feature. El cliente puede realizar la consulta a través del uso de los métodos de agregación de MI SQL y la cláusula SCALE.
Nota: La función MI_Transform no es compatible con las consultas agregadas en la columna de geometría. La proyección de la tabla de datos en Spectrum Spatial debe coincidir con la del mapa del cliente para poder agregar datos de gran tamaño en el mapa. Como alternativa, proyecte la respuesta de GeoJSON en el cliente antes de agregarla a una capa vectorial.
Para obtener más información acerca de la cláusula SCALE (incluidas consultas de muestra) y los métodos de agregación, como MI_AggregateCentroid, consulte la sección Referencias de lenguaje SQL de MapInfo de la Guía de Spectrum Spatial.

Ejemplos de consultas que se ajustan a la escala

http://152.144.226.251:8080/rest/Spatial/FeatureService/tables/features.json?
q=SELECT MI_AggregateCentroid(SP_GEOMETRY), Count(*) as feature_count FROM "/LargePoints" 
WHERE MI_EnvelopesIntersect(FromWKT('POLYGON((-8627389.58 4756566.36,-8627389.58 5196843.64,-7844674.42 5196843.64,
-7844674.42 4756566.36,-8627389.58 4756566.36 ))','EPSG:3857'), SP_GEOMETRY) SCALE 611.49622628141

Consideraciones de rendimiento

Tenga en cuenta los siguientes puntos para optimizar el rendimiento:

  • Spectrum Spatial se diseñó para delegar la mayor parte del trabajo de procesamiento a DBMS durante el tiempo de ejecución. Tenga en consideración el diseño de su sistema. El rendimiento y la escalabilidad dependerán en gran medida de la potencia de procesamiento y memoria disponible para el servidor de la base de datos.
  • Recomendamos utilizar herramientas de optimización de consultas de base de datos (por ejemplo, el Asistente para la optimización del servido SQL) para un ajuste del rendimiento. Consulte a su administrador de base de datos para determinar la mejor manera de ejecutar pequeñas pruebas y ajustar los índices de la base de datos.
  • Se puede lograr un mejor rendimiento si se utilizan las columnas XY en lugar de usar las columnas de geometría (en las que las geometrías de punto se almacenan a través del uso de los tipos de datos de geometría o geografía del servidor SQL). Siempre que sea posible para las tablas con datos de gran tamaño, recomendamos utilizar las tablas XY con los siguientes índices: LONGITUD, LATITUD (o X e Y), la columna de clave principal (un índice en clúster), la columna HASH GEOGRÁFICO y cualquier otra columna de agregación que se haya utilizado en la consulta. Es posible que su administrador de base de datos o un asistente para la optimización recomienden índices adicionales para una combinación de estas columnas.