Funciones
Puede usar funciones de plugin en la cláusula filter para filtrar datos. También puede utilizar funciones que devuelvan un valor numérico en la cláusula sort para ordenar resultados.
Document fields used as function parameters must be created as an index or a property as specified in the function's documentation.
in_polygon: Comprueba si un punto se encuentra dentro de un polígono. Esta función se usa con frecuencia para determinar si una ubicación está dentro de una zona de entrega
Detalles de uso:
in_polygon(polygon_field, user_x_coordinate, user_y_coordinate, has_multi_polygons=”false”)
-
Parámetros:
polygon_field: Nombre del campo que especifica la zona de entrega. Este campo debe ser de tipo DOUBLE_ARRAY. El valor del campo contiene las coordenadas x e y ordenadas de los vértices del polígono, donde la coordenada x precede a la coordenada y. Especifique los vértices en orden, ya sea en sentido horario o antihorario. Si el campo contiene varios polígonos (N), el primer valor debe ser N. Los siguientes N valores deben indicar la cantidad de vértices de cada polígono. Los valores posteriores corresponden a las coordenadas x e y de los vértices de cada polígono. El valor de N debe estar en el rango [1, 50].
user_x_coordinate: Coordenada x de la ubicación del usuario. Este parámetro es de tipo double.
user_y_coordinate: Coordenada y de la ubicación del usuario. Este parámetro es de tipo double.
has_multi_polygons: Especifica si polygon_field contiene varios polígonos separados. El valor predeterminado es false, lo que indica un solo polígono.
Valor de retorno:
Devuelve un número entero. Si el punto se encuentra dentro de un polígono, la función devuelve el índice del polígono coincidente. De lo contrario, devuelve 0.
Escenarios:
Escenario 1: Comprobar si un usuario se encuentra dentro de la zona de entrega de un comerciante. Por ejemplo, suponga que el campo de zona de entrega es coordinates y la ubicación del usuario es (120.307234, 39.294245). Para filtrar los comerciantes que entregan en esta ubicación, escriba la consulta de la siguiente manera:
query=default:'food'&&filter=in_polygon(coordinates, 120.307234, 39.294245)>0
-
Notas:
Los campos usados como parámetros de la función deben crearse como propiedades.
Se admite un máximo de 50 polígonos. Si se supera este límite, la función omite el cálculo para el documento.
No se admiten polígonos con huecos, como los anillos.
No se admiten polígonos compuestos por varias partes separadas.
Si la cantidad de coordenadas es 0, la función devuelve 0.
Si la cantidad de coordenadas es impar, los datos se consideran no válidos y la función devuelve 0.
Si el punto del usuario se encuentra en el borde de un polígono, se considera una coincidencia válida y la función devuelve 1 o el índice del polígono específico.
El plugin de polígonos requiere un uso intensivo de recursos de cómputo y puede afectar el rendimiento de las consultas. Por lo tanto, limite la cantidad de vértices. Ejecute pruebas según su escenario específico para determinar la cantidad óptima.