GlideGeoPoint Developer Guide

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 6 min. de leitura
  • O guia do desenvolvedor GlideGeoPoint contém informações sobre como calcular distâncias entre valores de latitude e longitude (geopoints), retornar locais dentro de determinados valores de geopoint e raio e usar funcionalidades adicionais fornecidas pelo compatíveis GlideGeoPoint Funções de API.

    . Geo point field type permite armazenar um par de latitude e longitude em um único campo. Geopoints podem ser úteis sempre que você quiser armazenar um ponto geográfico de interesse, para perguntar a que distância uma parte dois pontos de interesse estão um do outro ou para pesquisar todos os pontos dentro de uma determinada distância de outro ponto. Por exemplo, você pode usar a funcionalidade de ponto geográfico para determinar rapidamente todos os locais de entrega do cliente e ajustar as taxas de entrega com base na distância da loja.

    Os principais aspectos do tipo de dados geotípicos são:
    • Consiste em um par de números decimais que representam valores de longitude e latitude.
    • O intervalo de longitude é (-180, 180]. Qualquer valor fora desse intervalo é normalizado para o valor equivalente dentro desse intervalo.
    • O intervalo de latitude é [-90, 90]. Qualquer valor fora desse intervalo é normalizado para o valor equivalente dentro desse intervalo.
    • Os valores de pontos geográficos são sempre aceitos como entrada e exibidos como um par separado por vírgulas: "Longitude,latitude". Parênteses podem, opcionalmente, cercar a expressão.
    • Os valores de longitude e latitude são armazenados com até 6 casas decimais de precisão.

    Para obter mais informações sobre o tipo de dados de ponto geográfico, consulte Function field.

    Os exemplos neste guia presumem que uma tabela personalizada, u_geopoint é preenchido com campos u_name e. u_location , em que u_name é do tipo "cadeia" e lista os nomes das principais cidades e. u_location é do tipo "geopoint" e lista os pontos de latitude/longitude de cada cidade, respectivamente.

    Crie pontos geográficos usando a API GlideGeoPoint

    Use GlideGeoPoint API para inserir novos registros e criar novos pontos geográficos.

    . GlideGeoPoint - Global A API permite que você defina e recupere valores de pontos geográficos. No entanto, você pode executar funcionalidades adicionais para inserir novos registros definindo geopoints diretamente em um script usando notação de cadeia de caracteres ou um objeto GlideGeoPoint.

    Inserir um novo registro usando notação de cadeia de caracteres.
    Defina o valor do campo Geopoint u_location usando uma cadeia de caracteres. A cadeia de caracteres consiste em um par delimitado por vírgulas de valores de longitude e latitude. O exemplo a seguir mostra como definir um novo ponto geográfico no u_geopoint tabela usando notação de cadeia de caracteres.
    Nota:
    GlideGeoPoint Os valores de API são sempre listados em longitude, ordem de latitude.
    const longitude = "-87.628018"; 
    const latitude = "41.885778"; 
    const geopoint = longitude + "," + latitude; 
     
    const myGeoPoint = new GlideRecord("u_geopoint"); 
    myGeoPoint.initialize(); 
    myGeoPoint.setValue("u_name", "Chicago"); 
    myGeoPoint.setValue("u_location", geopoint); 
    myGeoPoint.insert();
    Inserir um novo registro usando o objeto GlideGeoPoint.
    Defina o valor do campo Geopoint u_location Usando um objeto GlideGeoPoint.
    const longitude = -87.628018; 
    const latitude = 41.885778; 
    const geopoint = new GlideGeoPoint(longitude, latitude); 
     
    const myGeoPoint = new GlideRecord("u_geopoint"); 
    myGeoPoint.initialize(); 
    myGeoPoint.setValue("u_name", "Chicago"); 
    myGeoPoint.setValue("u_location", geopoint); 
    myGeoPoint.insert();

    Leia valores de pontos geográficos usando a API GlideGeoPoint

    Use ObtDisplayValue() Função da API GlideGeoPoint para ler todos os valores de geopoint de uma tabela específica.

    A API GlideGeoPoint padrão permite recuperar um valor de geopoint por meio do GlideGeoPoint - getDisplayValue() função. No entanto, é possível ler todos os geopoints definidos em uma tabela inteira. O script de exemplo a seguir demonstra como usar o. ObtDisplayValue() função para recuperar todos os registros do u_geopoint tabela, que inclui o. u_location campo do tipo "geopoint". Este script de exemplo pode ser ajustado para seu próprio caso de uso específico.

    Nota:
    GlideGeoPoint Os valores de API são sempre listados em longitude, ordem de latitude.
    const myGeoPoint = new GlideRecord("u_geopoint"); 
    myGeoPoint.query(); 
     
    while (gr.next()) 
      gs.info("Name: {0}  Location: {1}",  
        myGeoPoint.getDisplayValue('u_name'),  
        myGeoPoint.getDisplayValue('u_location'));

    A saída retorna todos os registros no u_geopoint tabela. O valor de exibição de um ponto geográfico inclui a longitude seguida pela latitude, separada por uma vírgula e entre parênteses.

    Name: London  Location: (-0.189937, 51.473584) 
    Name: Puerto Rico  Location: (-66.561301, 18.291136) 
    Name: Glasgow  Location: (-4.223964, 55.867846) 
    Name: Chicago  Location: (-87.628018, 41.885778) 
    Name: Tasmania  Location: (146.757677, -42.173578) 
    Name: Bermuda  Location: (-64.761595, 32.315798) 
    Name: Miami  Location: (-80.206458, 25.767242) 
    Name: Sydney  Location: (151.205230, -33.890115) 
    Name: Perth  Location: (115.871253, -31.971583) 
    Name: Dublin  Location: (-6.304994, 53.348317)

    Calcule a distância entre dois pontos geográficos

    Use distance_sphere função glide para retornar a distância entre geopontos em metros.

    A função glide de ponto geográfico, distance_sphere , permite calcular a distância entre dois pontos geográficos. A função retorna a distância em metros. distance_sphere pode ser usado na definição de um elemento de campo de função em uma tabela ou por meio de um script. Três sintaxes são compatíveis e todos os parâmetros são necessários:

    • glidefunction:distance_sphere(geopoint1, geopoint2)
    • glidefunction:distance_sphere(geopoint1, longitudinde2, latitude2)
    • função:distance_sphere(lengito1, latitude1, lengito2, latitude2)

    Ao usar essas sintaxes, observe que:

    • geopoint1 e geopoint2 são elementos de tabela do tipo "geopoint"
    • longitude 1, longitude 2, latitude 1, latitude 2 são elementos de tabela numérica ou constantes
    • Em todos os casos, o valor de retorno desta função é um decimal que representa a distância entre dois geopontos em metros

    O script de exemplo a seguir define um distance_sphere função para calcular a distância entre todos os pontos geográficos armazenados no u_location . u_geopoint e o ponto -0,189937 longitude, 51,473584 latitude (que é aproximadamente a localização de Londres). A função é adicionada à consulta GlideRecord para produzir resultados.

    const distToLondon =  
    "glidefunction:distance_sphere(u_location, '-0.189937', '51.473584')"; 
     
    const myGeoPoint = new GlideRecord('u_geopoint'); 
    gr.addFunction(distToLondon); 
    gr.query(); 
     
    while(myGeoPoint.next()) 
      gs.info("Name: {0}  Dist to London(m): {1}",  
        myGeoPoint.u_name, gr.getValue(distToLondon));

    A saída lista a distância entre Londres e as cidades no u_location campo em metros.

    Name: London  Dist to London(m): 0 
    Name: Glasgow  Dist to London(m): 555985.58456358 
    Name: Dublin  Dist to London(m): 464000.328892816 
    Name: Miami  Dist to London(m): 7123803.25406323 
    Name: Bermuda  Dist to London(m): 5547607.95564083 
    Name: Puerto Rico  Dist to London(m): 6799201.00905107 
    Name: Perth  Dist to London(m): 14485217.5596414 
    Name: Sydney  Dist to London(m): 17001034.4875494 
    Name: Tasmania  Dist to London(m): 17324634.4559516 

    Filtre a distância entre dois pontos geográficos

    Use DISTANCE_SPHERE_WITHIN condição de consulta para filtrar registros com um valor de ponto geográfico dentro do raio de uma latitude e ponto de longitude definidos.  

    DISTANCE_SPHERE_WITHIN deve seguir a sintaxe GeopointDISTANCE_SPHERE_WITHINlongitude, latitude > raio em que:

    • geopoint é um campo de ponto geográfico ​
    • longitude e. latitude são constantes decimais​s.
    • raio é uma constante decimal (em metros)
    Nota:
    O símbolo menor que (") nesta expressão é necessário e usado somente como delimitador. Qualquer outro operador de comparação é inválido.

    . DISTANCE_SPHERE_WITHIN aceita valores de quilômetros ou medidores na solicitação, mas sempre retorna o valor de saída em metros.

    O script de exemplo a seguir mostra como criar uma consulta codificada que retorna somente registros com um u_location a menos de 1,000,000 quilômetros de distância do ponto -0,189937 longitude, 51,473584 latitude (que é aproximadamente a localização de Londres). Quando executado, ele retorna três registros que representam cidades dentro do raio especificado de Londres.

    const myGeoPoint = new GlideRecord("u_geopoint");  
    myGeoPoint.addEncodedQuery("u_locationDISTANCE_SPHERE_WITHIN-0.189937,51.473584<1000000");  
    myGeoPoint.query(); 
     
    while(gr.next()) 
        gs.info("Name:" + myGeoPoint.getDisplayValue("u_name")   
             + " Location:" + myGeoPoint.getDisplayValue("u_location"));

    Saída:

    Name:London Location:(-0.189937, 51.473584) 
    Name:Dublin Location:(-6.304994, 53.348317) 
    Name:Glasgow Location:(-4.223964, 55.867846)

    O script de exemplo a seguir é equivalente ao primeiro, mas usa uma sintaxe alternativa para GlideRecord.

    const myGeoPoint = new GlideRecord("u_geopoint");  
    myGeoPoint.addQuery("u_location", "DISTANCE_SPHERE_WITHIN", "-0.189937,51.473584<1000000");  
    myGeoPoint.query(); 
     
    while(myGeoPoint.next()) 
        gs.info("Name:" + myGeoPoint.getDisplayValue("u_name")   
             + " Location:" + myGeoPoint.getDisplayValue("u_location"));

    Saída:

    Name:London Location:(-0.189937, 51.473584) 
    Name:Dublin Location:(-6.304994, 53.348317) 
    Name:Glasgow Location:(-4.223964, 55.867846)