Todos os produtos
Search
Central de documentação

Tablestore:Consulta geográfica

Última atualização: Jul 03, 2026

As consultas geográficas dividem-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

    Parâmetro

    Descrição

    field_name

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

    center_point

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

    O formato é latitude,longitude. Valores válidos para latitude: [-90,+90]. Valores válidos para longitude: [-180,+180]. Exemplo: 35.8,-45.91.

    distance

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

    query

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

    table_name

    Nome da tabela de dados.

    index_name

    Nome do índice de pesquisa.

  • Exemplo

    O código de exemplo abaixo demonstra como consultar linhas cujos valores na coluna Col_GeoPoint estejam dentro de uma área geográfica circular com ponto central em '32.5,116.5' e raio de até 300.000 metros:

    query = GeoDistanceQuery('Col_GeoPoint', '32.5,116.5', 300000)
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

Consulta por caixa delimitadora geográfica

Na consulta por caixa delimitadora geográfica, você define uma área retangular informando o canto superior esquerdo e o canto inferior direito. O Tablestore retorna as linhas em que o valor de uma coluna específica se encontra dentro dessa área retangular.

  • Parâmetros

    Parâmetro

    Descrição

    field_name

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

    top_left

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

    bottom_right

    Par de coordenadas do canto inferior direito da área geográfica retangular. Um retângulo pode ser definido pelo canto superior esquerdo e pelo canto inferior direito.

    O formato é latitude,longitude. Valores válidos para latitude: [-90,+90]. Valores válidos para longitude: [-180,+180]. Exemplo: 35.8,-45.91.

    query

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

    table_name

    Nome da tabela de dados.

    index_name

    Nome do índice de pesquisa.

  • Exemplo

    O trecho de código a seguir ilustra como buscar linhas onde os valores da coluna Col_GeoPoint estejam contidos em uma área retangular cujo canto superior esquerdo é '30.9,112.0' e o canto inferior direito é '30.2,119.0':

    query = GeoBoundingBoxQuery('Col_GeoPoint', '30.9,112.0', '30.2,119.0')
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',  
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

Consulta por polígono geográfico

Para realizar uma consulta por polígono geográfico, defina uma área poligonal utilizando pares de coordenadas de múltiplos pontos. O Tablestore devolve as linhas cujo valor em uma coluna específica esteja situado dentro dessa área poligonal.

  • Parâmetros

    Parâmetro

    Descrição

    field_name

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

    points

    Pares de coordenadas dos pontos que formam o polígono. É possível definir um polígono usando vários pares de coordenadas.

    O formato é latitude,longitude. Valores válidos para latitude: [-90,+90]. Valores válidos para longitude: [-180,+180]. Exemplo: 35.8,-45.91.

    query

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

    table_name

    Nome da tabela de dados.

    index_name

    Nome do índice de pesquisa.

  • Exemplo

    Veja no código abaixo como consultar linhas com valores na coluna Col_Geopoint que estejam dentro de uma área poligonal formada pelas coordenadas '30.9,112.0', '30.5,115.0', '30.3, 117.0' e '30.2,119.0':

    query = GeoPolygonQuery('Col_GeoPoint', ['30.9,112.0', '30.5,115.0', '30.3, 117.0', '30.2,119.0'])
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

Perguntas frequentes

Referências