---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideGeoPoint Developer Guide

# GlideGeoPoint Developer Guide {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 Minuten Lesedauer

Das GlideGeoPoint-Entwicklerhandbuch enthält Informationen zur Berechnung von Entfernungen zwischen Breiten- und Längengradwerten (Geopunkte), zur Rückgabe von Standorten innerhalb der angegebenen Geopunkt- und Radiuswerte und zur Verwendung zusätzlicher Funktionen, die von unterstützten GlideGeoPoint- API-Funktionen bereitgestellt werden.
Mit [Geo point field type](https://www.servicenow.com/docs/access?context=geo-point-field-type&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US) können Sie ein Breiten- und Längengradpaar in einem einzelnen Feld speichern. Geopunkte können jedes Mal nützlich sein, wenn Sie ein geografisches Point of Interest speichern möchten, um zu fragen, wie weit ein Teil zwei Points of Interest voneinander entfernt ist, oder um nach allen Punkten innerhalb einer bestimmten Entfernung von einem anderen Punkt zu suchen. Sie können beispielsweise die Geopunkt-Funktion verwenden, um schnell alle Lieferorte Ihrer Kunden zu bestimmen und dann die Liefergebühren basierend auf der Entfernung zum Geschäft anzupassen.  
Wichtige Aspekte des Geotyp-Datentyps sind:

* Sie besteht aus einem Paar Dezimalzahlen, die Längen- und Breitengrade darstellen.
* Der Bereich für den Längengrad ist (-180, 180\]. Jeder Wert außerhalb dieses Bereichs wird auf den entsprechenden Wert innerhalb dieses Bereichs normalisiert.
* Der Bereich für den Breitengrad ist \[-90, 90\]. Jeder Wert außerhalb dieses Bereichs wird auf den entsprechenden Wert innerhalb dieses Bereichs normalisiert.
* Geopunktwerte werden immer als Eingabe akzeptiert und als kommagetrenntes Paar angezeigt: „Längengrad,Breitengrad". Der Ausdruck kann optional von Klammern umgeben werden.
* Sowohl Längen- als auch Breitengradwerte werden mit einer Genauigkeit von bis zu 6 Dezimalstellen gespeichert.

Weitere Informationen zum Datentyp „Geopunkt" finden Sie unter [Function field](https://www.servicenow.com/docs/access?context=platform-support-functions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).

Die Beispiele in diesem Leitfaden gehen davon aus, dass die anwenderdefinierte Tabelle `u_geopoint`mit den Feldern `u_name` und `u_location`gefüllt ist, wobei `u_name` vom Typ „string" ist und die Namen von Großstädten auflistet und `u_location` vom Typ „geopoint" ist und den Breiten-/Längengrad auflistet Punkte jeder Stadt.

## Erstellen Sie Geopunkte mit der GlideGeoPoint-API {#ariaid-title2}

Verwenden Sie die GlideGeoPoint- API, um neue Datensätze einzufügen und neue Geopunkte zu erstellen.
Mit der [GlideGeoPoint : global](https://servicenow-prod.fluidtopics.net/OUjFiynRQMCpr67IxWAMIw#GlideGeopointGlobalAPI "Mit der GlideGeoPoint- API können Sie Werte des Geopunkt-Datentyps in einer Tabelle abrufen und festlegen.") API können Sie Geopunktwerte festlegen und abrufen. Sie können jedoch zusätzliche Funktionen zum Einfügen neuer Datensätze ausführen, indem Sie Geopunkte direkt in einem Skript mithilfe der Zeichenfolgennotation oder eines GlideGeoPoint-Objekts festlegen.

Einfügen eines neuen Datensatzes in Zeichenfolgenschreibweise.
:   Legen Sie den Wert des Geopunktfelds `„u_location"` mithilfe einer Zeichenfolge fest. Die Zeichenfolge besteht aus einem durch Kommas getrennten Längen- und Breitengradwert. Das folgende Beispiel zeigt, wie ein neuer Geopunkt in der Tabelle `„u_geopoint"` in Zeichenfolgenschreibweise festgelegt wird.  
    Hinweis:  
    GlideGeoPoint- API-Werte werden immer in Längengrad-/Breitengradreihenfolge aufgelistet.

        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();

    {#glidegeopoint_create_geo_points__codeblock_scc_ryq_fyb}

Einfügen eines neuen Datensatzes mit dem GlideGeoPoint-Objekt.
:   Legen Sie den Wert des Geopunktfelds `„u_location"` mithilfe eines GlideGeoPoint-Objekts fest.

        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();

    {#glidegeopoint_create_geo_points__codeblock_tcc_ryq_fyb}
{#glidegeopoint_create_geo_points__dl_qry_xzq_fyb}

## Lesen Sie Geopunktwerte mithilfe der GlideGeoPoint-API {#ariaid-title3}

Verwenden Sie die GlideGeoPoint-API-Funktion getDisplayValue(), um alle Geopunktwerte aus einer bestimmten Tabelle zu lesen.
Mit der standardmäßigen GlideGeoPoint-API können Sie einen Geopunktwert über die Funktion [GlideGeoPoint -- getDisplayValue()](https://servicenow-prod.fluidtopics.net/OUjFiynRQMCpr67IxWAMIw#GlideGeoPoint-getDisplayValue "Gibt den Geopunkt des aktuellen Anwenders in einem anwenderfreundlichen Format zurück.") abrufen. Es ist jedoch möglich, alle in einer gesamten Tabelle definierten Geopunkte zu lesen. Das folgende Beispielskript zeigt, wie mit der Funktion getDisplayValue() alle Datensätze aus der Tabelle „ `u_geopoint` " abgerufen werden, die das Feld „ `u_location` " vom Typ „geopoint" enthält. Sie können dieses Beispielskript verwenden und an Ihren spezifischen Anwendungsfall anpassen.  
Hinweis:  
GlideGeoPoint- API-Werte werden immer in Längengrad-/Breitengradreihenfolge aufgelistet.

    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'));

{#glidegeopoint-read_gp_values__codeblock_agf_nzq_fyb}

Die Ausgabe gibt alle Datensätze in der Tabelle `„u_geopoint"` zurück. Der Anzeigewert eines Geopunkts enthält den Längengrad gefolgt vom Breitengrad, getrennt durch ein Komma und in Klammern eingeschlossen.

    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)

{#glidegeopoint-read_gp_values__codeblock_bgf_nzq_fyb}

## Berechnen Sie die Entfernung zwischen zwei Geopunkten {#ariaid-title4}

Verwenden Sie die Glide-Funktion „ `distance_sphere` ", um die Entfernung zwischen Geopunkten in Zählern zurückzugeben.
Mit der Geopunkt-Glide-Funktion „ `distance_sphere`" können Sie die Entfernung zwischen zwei Geopunkten berechnen. Die Funktion gibt die Entfernung in Zählern zurück. „ `distance_sphere` " kann bei der Definition eines Funktionsfeldelements in einer Tabelle oder über ein Skript verwendet werden. Drei Syntaxen werden unterstützt, und alle Parameter sind erforderlich:

* `glideFunktion:distance_sphere(Geopunkt 1, Geopunkt 2)`
* `glidefunction:distance_sphere(Geopunkt1, Längengrad2, Breitengrad2)`
* `GlideFunktion:Distanz_Kugel(Längengrad1, Breitengrad1, Längengrad2, Breitengrad2)`

{#glidegeopoint-calc_distance_btw_gp__geopoint-dev-guide_ul_yj2_l1y_wxb}

Beachten Sie bei der Verwendung dieser Syntaxen Folgendes:

* geopoint1 und geopoint2 sind Tabellenelemente vom Typ „geopoint".
* Längengrad 1, Längengrad 2, Breitengrad 1, Breitengrad 2 sind numerische Tabellenelemente oder Konstanten
* In allen Fällen ist der Rückgabewert dieser Funktion eine Dezimalzahl, die die Entfernung zwischen zwei Geopunkten in Zählern darstellt
{#glidegeopoint-calc_distance_btw_gp__ul_inn_33p_fyb}  
Das folgende Beispielskript definiert die Funktion „ `distance_sphere` ", um die Entfernung zwischen allen im Feld `„u_location"` der Tabelle „ `u_geopoint"` gespeicherten Geopunkten und dem Punkt `-0,189937` Längengrad, `51,473584` Breitengrad (entspricht ungefähr dem Standort London) zu berechnen. Die Funktion wird der GlideRecord-Abfrage hinzugefügt, um Ergebnisse zu liefern.

    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));

{#glidegeopoint-calc_distance_btw_gp__codeblock_hqw_pxw_fyb}

Die Ausgabe listet die Entfernung zwischen London und Orten im Feld `u_location` in Meter auf.

    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 

{#glidegeopoint-calc_distance_btw_gp__codeblock_iqw_pxw_fyb}

## Filtert die Entfernung zwischen zwei Geopunkten {#ariaid-title5}

Verwenden Sie die `Abfragebedingung` DISTANCE_SPHERE_WITHIN, um nach Datensätzen zu filtern, die einen Geopunktwert im Radius eines definierten Breiten- und Längengrads haben.
`DISTANCE_SPHERE_WITHIN` muss der Syntax `-GeopointDISTANCE_SPHERE_WITHIN-Längengrad,Breitengrad entsprechen` \<radius wobei:

* `Geopunkt` ist ein Geopunktfeld
* `Längengrad` und `Breitengrad` sind Dezimalkonstanten
* `Radius` ist eine Dezimalkonstante (in Zählern)

{#glidegeopoint-filter_dist_btw_gp__ul_wl2_qy5_2yb}  
Hinweis:  
Das Kleiner-als-Symbol (\<) in diesem Ausdruck ist erforderlich und wird nur als Trennzeichen verwendet. Alle anderen Vergleichsoperatoren sind ungültig.

`DISTANCE_SPHERE_WITHIN` akzeptiert Kilometer- oder Meterwerte in der Anforderung, gibt den Ausgabewert jedoch immer in Zählern zurück.  
Das folgende Beispielskript zeigt, wie eine codierte Abfrage erstellt wird, die nur Datensätze zurückgibt, deren `u_location` weniger als 1.000.000 Kilometer vom Punkt `-0,189937` Längengrad, `51,473584` Breitengrad (entspricht ungefähr dem Standort London) entfernt liegt. Wenn sie ausgeführt wird, werden drei Datensätze zurückgegeben, die Städte innerhalb des angegebenen Radius von London darstellen.

    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"));

{#glidegeopoint-filter_dist_btw_gp__codeblock_cgn_wxw_fyb}

Ausgabe:

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

{#glidegeopoint-filter_dist_btw_gp__codeblock_dgn_wxw_fyb}  
Das folgende Beispielskript entspricht dem ersten, verwendet jedoch eine alternative Syntax für 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"));

{#glidegeopoint-filter_dist_btw_gp__codeblock_egn_wxw_fyb}

Ausgabe:

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

{#glidegeopoint-filter_dist_btw_gp__codeblock_fgn_wxw_fyb}

