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.
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.
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 a 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).
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.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.