polygon (POLYGON) está optimizado para consultas de punto en polígono, es decir, búsquedas de “geocodificación inversa”.
Dada una coordenada (latitud/longitud), encuentra de forma eficiente qué polígono o región (de entre un conjunto de muchos polígonos, como fronteras de países o regiones) contiene ese punto.
Es especialmente adecuado para asignar coordenadas geográficas a la región que las contiene.
- DDL
- Archivo de configuración
Al configurar el diccionario de polígonos, la clave debe tener uno de estos dos tipos:
- Un polígono simple. Es un array de puntos.
- MultiPolygon. Es un array de polígonos. Cada polígono es un array bidimensional de puntos. El primer elemento de este array es el límite exterior del polígono, y los elementos posteriores especifican las áreas que deben excluirse de él.
| Layout | Descripción |
|---|---|
POLYGON_SIMPLE | Implementación ingenua. Se realiza un recorrido lineal por todos los polígonos para cada consulta, comprobando la pertenencia sin índices adicionales. |
POLYGON_INDEX_EACH | Se construye un índice independiente para cada polígono, lo que permite comprobaciones rápidas de pertenencia en la mayoría de los casos (optimizado para regiones geográficas). Se superpone una cuadrícula sobre el área, dividiendo recursivamente las celdas en 16 partes iguales. La división se detiene cuando la profundidad de la recursión alcanza MAX_DEPTH o una celda cruza como máximo MIN_INTERSECTIONS polígonos. |
POLYGON_INDEX_CELL | También crea la cuadrícula descrita anteriormente con las mismas opciones. Para cada celda hoja, se construye un índice sobre todas las partes del polígono que caen en ella, lo que permite responder rápidamente a las consultas. |
POLYGON | Sinónimo de POLYGON_INDEX_CELL. |
store_polygon_key_column = 1 en la configuración del diccionario o en la consulta DDL correspondiente.
Query
Response