Todos os produtos
Search
Central de documentação

Tablestore:Consulta geográfica

Última atualização: Jul 03, 2026

As consultas geográficas classificam-se nos seguintes tipos: consulta por distância geográfica, consulta por caixa delimitadora geográfica e consulta por polígono geográfico.

Pré-requisitos

Consulta por distância geográfica

Para executar uma consulta por distância geográfica, especifique uma área geográfica circular definindo um ponto central e um raio. O Tablestore retorna as linhas em que o valor de uma coluna específica está dentro dessa área circular.

  • Parâmetros

    Parameter

    Description

    fieldName

    Nome da coluna a consultar. O valor deste parâmetro deve ser do tipo de dados GEOPOINT.

    centerPoint

    Par de coordenadas do ponto central, composto por valores de latitude e longitude.

    O valor deve seguir o formato latitude,longitude. Valores válidos de latitude: [-90,+90]. Valores válidos de longitude: [-180,+180]. Exemplo: 35,8,-45,91.

    distanceInMeter

    Raio da área geográfica circular. O valor é do tipo de dados DOUBLE. Unidade: metros.

    getTotalCount

    Define se o número total de linhas correspondentes aos critérios da consulta será retornado. O valor padrão é false, indicando que a contagem total não é retornada.

    Definir este parâmetro como true pode comprometer o desempenho da consulta.

    query

    Instrução de consulta para o índice de busca. Defina este parâmetro como GeoDistanceQuery.

    tableName

    Nome da tabela de dados.

    indexName

    Nome do índice de busca.

    columnsToGet

    Indica se todas as colunas de cada linha correspondente devem ser retornadas. Configure os campos returnAll e columns neste parâmetro.

    Por padrão, o campo returnAll é false, ou seja, nem todas as colunas são retornadas. Nesse caso, utilize o campo columns para especificar quais colunas deseja obter. Sem essa especificação, apenas as colunas de chave primária serão devolvidas.

    Se o campo returnAll for definido como true, todas as colunas serão retornadas.

  • Exemplos

    O código de exemplo abaixo demonstra como consultar linhas onde o valor da coluna Col_GeoPoint está dentro de uma distância específica do ponto central.

    public static void geoDistanceQuery(SyncClient client) {
        SearchQuery searchQuery = new SearchQuery();
        GeoDistanceQuery geoDistanceQuery = new GeoDistanceQuery();  // Use GeoDistanceQuery. 
        geoDistanceQuery.setFieldName("Col_GeoPoint");
        geoDistanceQuery.setCenterPoint("5,5"); // Specify the coordinates of the central point. 
        geoDistanceQuery.setDistanceInMeter(10000); // Set the distance from the central point to a value greater than or equal to 10,000. Unit: meter. 
        searchQuery.setQuery(geoDistanceQuery);
        //searchQuery.setGetTotalCount(true); // Set the GetTotalCount parameter to true to return the total number of rows that meet the query conditions. 
    
        SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
        // You can use the columnsToGet parameter to specify the columns that you want to return or specify that all columns are returned. If you do not specify this parameter, only the primary key columns are returned. 
        //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
        //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
        //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
        //searchRequest.setColumnsToGet(columnsToGet);
    
        SearchResponse resp = client.search(searchRequest);
        //System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of rows that meet the query conditions instead of the number of rows that are returned. 
        System.out.println("Row: " + resp.getRows());
    }

Consulta por caixa delimitadora geográfica

Na consulta por caixa delimitadora geográfica, defina uma área retangular informando o canto superior esquerdo e o canto inferior direito. O Tablestore retorna as linhas cujo valor na coluna especificada se encontra dentro dessa área retangular.

  • Parâmetros

    Parameter

    Description

    fieldName

    Nome da coluna a consultar. O valor deste parâmetro deve ser do tipo de dados GEOPOINT.

    topLeft

    Par de coordenadas do canto superior esquerdo da área geográfica retangular.

    bottomRight

    Par de coordenadas do canto inferior direito da área geográfica retangular. A definição desses dois pontos (superior esquerdo e inferior direito) delimita o retângulo.

    O formato é latitude,longitude. Valores válidos de latitude: [-90,+90]. Valores válidos de longitude: [-180,+180]. Exemplo: 35,8,-45,91.

    query

    Instrução de consulta para o índice de busca. Defina este parâmetro como GeoBoundingBoxQuery.

    getTotalCount

    Define se o número total de linhas correspondentes aos critérios da consulta será retornado. O valor padrão é false, indicando que a contagem total não é retornada.

    Definir este parâmetro como true pode comprometer o desempenho da consulta.

    tableName

    Nome da tabela de dados.

    indexName

    Nome do índice de busca.

    columnsToGet

    Indica se todas as colunas de cada linha correspondente devem ser retornadas. Configure os campos returnAll e columns neste parâmetro.

    Por padrão, o campo returnAll é false, ou seja, nem todas as colunas são retornadas. Nesse caso, utilize o campo columns para especificar quais colunas deseja obter. Sem essa especificação, apenas as colunas de chave primária serão devolvidas.

    Se o campo returnAll for definido como true, todas as colunas serão retornadas.

  • Exemplos

    O trecho de código a seguir ilustra como buscar linhas onde o valor da coluna Col_GeoPoint está dentro da área retangular definida pelo canto superior esquerdo "10,0" e canto inferior direito "0,10":

    public static void geoBoundingBoxQuery(SyncClient client) {
        SearchQuery searchQuery = new SearchQuery();
        GeoBoundingBoxQuery geoBoundingBoxQuery = new GeoBoundingBoxQuery(); // Use GeoBoundingBoxQuery. 
        geoBoundingBoxQuery.setFieldName("Col_GeoPoint"); // Specify the name of the column that you want to query. 
        geoBoundingBoxQuery.setTopLeft("10,0"); // Specify the coordinates of the upper-left corner of the rectangular geographic area. 
        geoBoundingBoxQuery.setBottomRight("0,10"); // Specify the coordinates of the lower-right corner of the rectangular geographic area. 
        searchQuery.setQuery(geoBoundingBoxQuery);
        //searchQuery.setGetTotalCount(true); // Set the GetTotalCount parameter to true to return the total number of rows that meet the query conditions. 
    
        SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
        // You can use the columnsToGet parameter to specify the columns that you want to return or specify that all columns are returned. If you do not specify this parameter, only the primary key columns are returned. 
        //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
        //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
        //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
        //searchRequest.setColumnsToGet(columnsToGet);
    
        SearchResponse resp = client.search(searchRequest);
        //System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of rows that meet the query conditions instead of the number of rows that are returned. 
        System.out.println("Row: " + resp.getRows());
    }

Consulta por polígono geográfico

Para executar uma consulta por polígono geográfico, defina uma área poligonal fornecendo pares de coordenadas de múltiplos pontos. O Tablestore retorna as linhas em que o valor da coluna indicada está dentro dessa área poligonal.

  • Parâmetros

    Parameter

    Description

    fieldName

    Nome da coluna a consultar. O valor deste parâmetro deve ser do tipo de dados GEOPOINT.

    points

    Pares de coordenadas dos pontos que formam a área geográfica poligonal.

    O valor deve seguir o formato latitude,longitude. Valores válidos de latitude: [-90,+90]. Valores válidos de longitude: [-180,+180]. Exemplo: 35,8,-45,91.

    query

    Instrução de consulta para o índice de busca. Defina este parâmetro como GeoPolygonQuery.

    getTotalCount

    Define se o número total de linhas correspondentes aos critérios da consulta será retornado. O valor padrão é false, indicando que a contagem total não é retornada.

    Definir este parâmetro como true pode comprometer o desempenho da consulta.

    tableName

    Nome da tabela de dados.

    indexName

    Nome do índice de busca.

    columnsToGet

    Indica se todas as colunas de cada linha correspondente devem ser retornadas. Configure os campos returnAll e columns neste parâmetro.

    Por padrão, o campo returnAll é false, ou seja, nem todas as colunas são retornadas. Nesse caso, utilize o campo columns para especificar quais colunas deseja obter. Sem essa especificação, apenas as colunas de chave primária serão devolvidas.

    Se o campo returnAll for definido como true, todas as colunas serão retornadas.

  • Exemplos

    O exemplo de código abaixo mostra como recuperar linhas onde o valor da coluna Col_GeoPoint está contido na área poligonal especificada.

    public static void geoPolygonQuery(SyncClient client) {
        SearchQuery searchQuery = new SearchQuery();
        GeoPolygonQuery geoPolygonQuery = new GeoPolygonQuery();  // Use GeoPolygonQuery. 
        geoPolygonQuery.setFieldName("Col_GeoPoint");
        geoPolygonQuery.setPoints(Arrays.asList("0,0","5,5","5,0")); // Specify the coordinates of the vertices of a polygon geographic area. 
        searchQuery.setQuery(geoPolygonQuery);
        //searchQuery.setGetTotalCount(true); // Set the GetTotalCount parameter to true to return the total number of rows that meet the query conditions. 
    
        SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
        // You can use the columnsToGet parameter to specify the columns that you want to return or specify that all columns are returned. If you do not specify this parameter, only the primary key columns are returned. 
        //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
        //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
        //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
        //searchRequest.setColumnsToGet(columnsToGet);
    
        SearchResponse resp = client.search(searchRequest);
        //System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of rows that meet the query conditions instead of the number of rows that are returned. 
        System.out.println("Row: " + resp.getRows());
    }

FAQ

Referências