---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideGeoPoint 開発者ガイド

# GlideGeoPoint 開発者ガイド {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：11分

GlideGeoPoint 開発者ガイドには、緯度と経度の値 (ジオポイント) 間の距離を計算する方法、指定されたジオポイントと半径の値内の位置を返す方法、サポートされている GlideGeoPoint API 関数によって提供される追加機能を使用する方法に関する情報が含まれています。
[Geo point field type](https://www.servicenow.com/docs/access?context=geo-point-field-type&version=australia&pubname=australia-platform-administration&ft:locale=en-US)を使用すると、緯度と経度のペアを単一のフィールドに格納できます。ジオポイントは、地理的な対象ポイントを格納したり、パート 2 の対象ポイントが互いにどれくらい離れているかを尋ねたり、別のポイントから特定の距離内にあるすべてのポイントを検索したりする場合に役立ちます。たとえば、ジオポイント機能を使用して、顧客のすべての配送場所をすばやく決定し、店舗からの距離に基づいて配送料を調整できます。  
ジオタイプ データ タイプの主な側面は次のとおりです。

* これは、経度と緯度の値を表す 10 進数のペアで構成されます。
* 経度の範囲は (-180, 180) です。この範囲外の値は、この範囲内の同等の値に正規化されます。
* 緯度の範囲は \[-90, 90\] です。この範囲外の値は、この範囲内の同等の値に正規化されます。
* ジオポイント値は常に入力として受け入れられ、カンマ区切りのペアとして表示されます (「longitude,latitude」)。オプションで式を括弧で囲むこともできます。
* 経度と緯度の両方の値は、小数点以下 6 桁までの精度で格納されます。

ジオポイント データ タイプの詳細については、「 [Function field](https://www.servicenow.com/docs/access?context=platform-support-functions&version=australia&pubname=australia-platform-administration&ft:locale=en-US)」を参照してください。

このガイドの例では、カスタムテーブル `u_geopoint` に `u_name` と `u_location` のフィールドが入力されることを前提としています。 `u_name` は「文字列」型で主要都市の名前をリストし、 `u_location` は「ジオポイント」タイプで各都市の緯度/経度ポイントをそれぞれリストします。

## GlideGeoPoint API を使用したジオポイントの作成 {#ariaid-title2}

GlideGeoPoint API を使用して、新しいレコードを挿入し、新しいジオポイントを作成します。
[GlideGeoPoint - グローバル](https://servicenow-prod.fluidtopics.net/wpFd~PYW0~pcvhsXPhFN0g#GlideGeopointGlobalAPI "GlideGeoPoint API を使用すると、テーブル内のジオポイントデータタイプ値を取得して設定できます。") API を使用すると、ジオポイント値を設定および取得できます。ただし、文字列表記または GlideGeoPoint オブジェクトを使用してスクリプトでジオポイントを直接設定することで、新しいレコードを挿入する追加機能を実行できます。

文字列表記を使用した新しいレコードの挿入。
:   文字列を使用してジオポイントフィールド `u_location` の値を設定します。文字列は、経度と緯度の値のコンマ区切りのペアで構成されます。次の例は、文字列表記を使用して `u_geopoint` テーブルに新しいジオポイントを設定する方法を示しています。  
    注:  
    GlideGeoPoint API 値は常に経度と緯度の順にリストされます。

        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}

GlideGeoPoint オブジェクトを使用した新しいレコードの挿入。
:   GlideGeoPoint オブジェクトを使用して `u_location` ジオポイントフィールドの値を設定します。

        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}

## GlideGeoPoint API を使用したジオポイント値の読み取り {#ariaid-title3}

getDisplayValue() GlideGeoPoint API 関数を使用して、特定のテーブルからすべてのジオポイント値を読み取ります。
標準の GlideGeoPoint API では、 [GlideGeoPoint - getDisplayValue()](https://servicenow-prod.fluidtopics.net/wpFd~PYW0~pcvhsXPhFN0g#GlideGeoPoint-getDisplayValue "現在のユーザーの位置情報を分かりやすい形式で返します。") 関数を使用してジオポイント値を取得できます。ただし、テーブル全体で定義されているすべてのジオポイントを読み込むことは可能です。次のスクリプト例は、getDisplayValue() 関数を使用して、タイプ「geopoint」の `u_location` フィールドを含む `u_geopoint` テーブルからすべてのレコードを取得する方法を示しています。このサンプルスクリプトを使用して、独自の特定のユースケースに合わせて調整できます。  
注:  
GlideGeoPoint API 値は常に経度と緯度の順にリストされます。

    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}

出力は、 `u_geopoint` テーブル内のすべてのレコードを返します。ジオポイントの表示値には、経度、その後に緯度が続き、カンマで区切られ、括弧で囲まれます。

    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}

## 2 つのジオポイント間の距離を計算します {#ariaid-title4}

`distance_sphere` glide 関数を使用して、ジオポイント間の距離をメートル単位で返します。
ジオポイント グライド関数 `distance_sphere` を使用すると、2 つのジオポイント間の距離を計算できます。この関数は距離をメートル単位で返します。 `distance_sphere` は、テーブルの機能フィールド要素の定義に、またはスクリプトを介して使用できます。3 つの構文がサポートされており、すべてのパラメーターが必要です。

* `glidefunction:distance_sphere(geopoint1, geopoint2)`
* `glidefunction:distance_sphere(geopoint1, longitude2, latitude2)`
* `glidefunction:distance_sphere(longitude1, latitude1, longitude2, latitude2)`

{#glidegeopoint-calc_distance_btw_gp__geopoint-dev-guide_ul_yj2_l1y_wxb}

これらの構文を使用する場合は、次の点に注意してください。

* geopoint1 と geopoint2 は、タイプ「geopoint」のテーブル要素です
* 経度 1、経度 2、緯度 1、緯度 2 は、数値テーブル要素または定数です
* いずれの場合も、この関数の戻り値は、2 つのジオポイント間の距離 (メートル) を表す小数です
{#glidegeopoint-calc_distance_btw_gp__ul_inn_33p_fyb}  
次のスクリプト例では、`u_geopoint` テーブルの `u_location` フィールドに格納されているすべてのジオポイントと、経度 `-0.189937`、緯度 `51.473584` (ロンドンのおおよその位置) との間の距離を計算する `distance_sphere` 関数を定義しています。関数が GlideRecord クエリに追加され、結果が生成されます。

    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}

出力には、 `u_location` フィールドのロンドンと都市間の距離がメートル単位でリストされます。

    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}

## 2 つのジオポイント間の距離のフィルタリング {#ariaid-title5}

`DISTANCE_SPHERE_WITHIN`クエリ条件を使用して、定義された緯度経度ポイントの半径内にジオポイント値を持つレコードをフィルタリングします。
`DISTANCE_SPHERE_WITHIN` 構文 `geopointDISTANCE_SPHERE_WITHINlongitude,latitude<radius` に従う必要があります。

* `ジオポイント` はジオポイントフィールドです
* `経度` と `緯度` は 10 進定数です
* `半径` は 10 進定数 (メートル単位) です

{#glidegeopoint-filter_dist_btw_gp__ul_wl2_qy5_2yb}  
注:  
この式の小なり記号 (\<) は必須であり、区切り文字としてのみ使用されます。他の比較演算子は無効です。

`DISTANCE_SPHERE_WITHIN` は要求でキロメートルまたはメートルの値を受け入れますが、常にメートル単位の出力値を返します。  
次のスクリプト例は、経度 `-0.189937`、緯度 `51.473584` (おおよそロンドンの位置) から`u_location`が 1,000,000 キロメートル未満のレコードのみを返すエンコードされたクエリをビルドする方法を示しています。実行されると、ロンドンの指定された半径内の都市を表す 3 つのレコードが返されます。

    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}

出力:

    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}  
次のスクリプト例は最初のスクリプトと同等ですが、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}

出力:

    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}

