Todos los productos
Search
Centro de documentos

Tablestore:Consulta geoespacial

Última actualización: Sep 03, 2026

Las consultas geoespaciales se clasifican en los siguientes tipos: consulta de distancia geográfica, consulta de cuadro delimitador geográfico y consulta de polígono geográfico.

Requisitos previos

Consulta de distancia geográfica

La consulta de distancia geográfica permite especificar un área geográfica circular, definida por un punto central y un radio, como condición de filtrado. Tablestore devuelve las filas donde el valor de la columna Geopoint se encuentra dentro de dicha área circular.

  • Parámetros

    Parámetro

    Descripción

    tableName

    Nombre de la tabla de datos.

    indexName

    Nombre del índice de búsqueda.

    query

    Tipo de consulta. Establezca el tipo de consulta en TableStore.QueryType.GEO_DISTANCE_QUERY.

    fieldName

    Nombre del campo. El tipo de los valores del campo es Geopoint.

    centerPoint

    Par de coordenadas del punto central, compuesto por valores de latitud y longitud.

    Este valor debe tener el formato "latitud,longitud". Valores válidos de latitud: [-90,90]. Valores válidos de longitud: [-180,180]. Ejemplo: “35.8,-45.91".

    distance

    Radio del área geográfica circular. El valor de este parámetro es de tipo de datos DOUBLE. Unidad: metro.

  • Ejemplos

    El siguiente código de ejemplo muestra cómo consultar las filas en las que el valor de la columna Col_GeoPoint se encuentra dentro de un área geográfica circular específica.

    client.search({
        tableName: TABLE_NAME,
        indexName: INDEX_NAME,
        searchQuery: {
            offset: 0,
            limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_DISTANCE_QUERY. 
                queryType: TableStore.QueryType.GEO_DISTANCE_QUERY,
                query: {
                    fieldName: "Col_GeoPoint",
                    centerPoint: "1,1", // Specify the coordinate pair for the central point. 
                    distance: 10000 // Set the distance from the central point to a value smaller than or equal to 10,000. Unit: meter. 
                }
            },
            getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
        },
        columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
            returnType: TableStore.ColumnReturnType.RETURN_ALL
        }
    }, function (err, data) {
        if (err) {
            console.log('error:', err);
            return;
        }
        console.log('success:', JSON.stringify(data, null, 2));
    });

Consulta de cuadro delimitador geográfico

La consulta de cuadro delimitador geográfico permite especificar un área geográfica rectangular como condición de filtrado. Tablestore devuelve las filas donde el valor de la columna Geopoint se encuentra dentro de dicha área rectangular.

  • Parámetros

    Parámetro

    Descripción

    tableName

    Nombre de la tabla de datos.

    indexName

    Nombre del índice de búsqueda.

    query

    Tipo de consulta. Establezca el tipo de consulta en TableStore.QueryType.GEO_BOUNDING_BOX_QUERY.

    fieldName

    Nombre del campo. El tipo de los valores del campo es Geopoint.

    topLeft

    Par de coordenadas de la esquina superior izquierda del área geográfica rectangular.

    bottomRight

    Par de coordenadas de la esquina inferior derecha del área geográfica rectangular. Los pares de coordenadas de la esquina superior izquierda y la esquina inferior derecha definen un área geográfica rectangular única.

    Este valor debe tener el formato "latitud,longitud". Valores válidos de latitud: [-90,90]. Valores válidos de longitud: [-180,180]. Ejemplo: “35.8,-45.91".

  • Ejemplos

    El siguiente código de ejemplo muestra cómo consultar las filas en las que el valor de la columna Col_GeoPoint se encuentra dentro de un área geográfica rectangular definida por una esquina superior izquierda con el par de coordenadas "10,0" y una esquina inferior derecha con el par de coordenadas "0,10":

    client.search({
        tableName: TABLE_NAME,
        indexName: INDEX_NAME,
        searchQuery: {
            offset: 0,
            limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_BOUNDING_BOX_QUERY. 
                queryType: TableStore.QueryType.GEO_BOUNDING_BOX_QUERY,
                query: {
                    fieldName: "Col_GeoPoint", // Specify the name of the field. 
                    topLeft: "10,0", // Specify the coordinate pair for the upper-left corner of the rectangular geographical area. 
                    bottomRight: "0,10" // Specify coordinate pair for the lower-right corner of the rectangular geographical area. 
                }
            },
            getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
        },
        columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
            returnType: TableStore.ColumnReturnType.RETURN_ALL
        }
    }, function (err, data) {
        if (err) {
            console.log('error:', err);
            return;
        }
        console.log('success:', JSON.stringify(data, null, 2));
    });

Consulta de polígono geográfico

La consulta de polígono geográfico permite especificar un área geográfica poligonal. Tablestore devuelve las filas donde el valor de la columna Geopoint se encuentra dentro de dicha área poligonal.

  • Parámetros

    Parámetro

    Descripción

    tableName

    Nombre de la tabla de datos.

    indexName

    Nombre del índice de búsqueda.

    query

    Tipo de consulta. Establezca el tipo de consulta en TableStore.QueryType.GEO_POLYGON_QUERY.

    fieldName

    Nombre del campo. El tipo de los valores del campo es Geopoint.

    points

    Pares de coordenadas de los puntos que definen el área geográfica poligonal.

    El par de coordenadas de cada punto debe tener el formato "latitud,longitud". Valores válidos de latitud: [-90,90]. Valores válidos de longitud: [-180,180]. Ejemplo: “35.8,-45.91".

  • Ejemplos

    El siguiente código de ejemplo muestra cómo consultar las filas en las que el valor de la columna Col_GeoPoint se encuentra dentro de un área geográfica poligonal:

    client.search({
        tableName: TABLE_NAME,
        indexName: INDEX_NAME,
        searchQuery: {
            offset: 0,
            limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_POLYGON_QUERY. 
                queryType: TableStore.QueryType.GEO_POLYGON_QUERY,
                query: {
                    fieldName: "Col_GeoPoint",
                    points: ["0,0","5,5","5,0"] // Specify coordinate pairs for vertices of a polygon geographical area. 
                }
            },
            getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
        },
        columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
            returnType: TableStore.ColumnReturnType.RETURN_ALL
        }
    }, function (err, data) {
        if (err) {
            console.log('error:', err);
            return;
        }
        console.log('success:', JSON.stringify(data, null, 2));
    });

Preguntas frecuentes

Referencias

  • Los índices de búsqueda admiten los siguientes tipos de consulta: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query, vector query y exists query. Seleccione un tipo de consulta para recuperar datos según sus requisitos empresariales.

    Si necesita ordenar o paginar las filas que cumplen con las condiciones de consulta, utilice la función de ordenamiento y paginación. Para obtener más información, consulte Sorting and paging.

    Si desea agrupar el conjunto de resultados según una columna específica, utilice la función de colapso (distinct). De este modo, los datos del tipo especificado aparecerán solo una vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).

  • Para analizar datos en una tabla de datos, como obtener valores extremos, sumas o el número total de filas, ejecute operaciones de agregación o sentencias SQL. Para obtener más información, consulte Aggregation y SQL query.

  • Si requiere obtener rápidamente todas las filas que cumplen con las condiciones de consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para usar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.