最近のアクセス:
Geography データタイプ

Geography データタイプを使用して地理的なエンティティを形式的に表すことができます。これは、データベースごとに異なり、各データベース管理システムでサポートされている特定のデータタイプを使用して地理情報が保存されます。
Geography データタイプには、GeoPoint タイプ、GeoLine タイプ、GeoPolygon タイプという特殊なバリアントがあります。これらは、Geography データタイプから派生したものです。

使用例


- 近接ポイント

たとえば、観光名所を保存する必要があるとすると、次のような Transaction オブジェクトを定義します:
Place
{
  PlaceId*
  PlaceName --> Character data type
  PlaceGeo --> Geography data type
}
その後、あるポイントと距離 (メートル単位) を渡すと、そのポイントを中心に指定した半径内にあるすべての観光名所を表示する Web Panel オブジェクトを定義します。
&MyPoint --> Geography data type
&Distance --> Numeric data type
 
Event Load
 For each Place
  where PlaceGeo.Distance(&MyPoint) < &Distance
   &PlaceName=PlaceName 
   load
 endfor 
EndEvent
イメージ:32413.png


多角形内のポイント

次の Transaction オブジェクトがあるとします:
Neighborhood  
{
  NeighborhoodId*
  NeighborhoodName --> Character data type
  NeighborhoodPlace --> Geography data type
}

特定の観光名所を渡すと (エンドユーザーがマップ上でポイントを指示)、その名所がある場所の近くまたはゾーンを示す Web Panel オブジェクトを定義するとします:
&MyPoint --> Geography data type
&NeighborhoodPlace --> Geography data type

Event 'Get_Neighborhood'
 For each Neighborhood
    Where NeighborhoodPlace.Intersect(&Mypoint)
      &NeighborhoodPlace = NeighborhoodPlace
 endfor
Endevent
イメージ:32412.png

データ入力

次の Transaction オブジェクトがあるとします:
Place
{
  PlaceId* 
  PlaceName --> Character data type
  PlaceGeo --> Geography data type
}
トランザクションを実行し、レイアウト上に存在する PlaceGeo 項目属性に関連付けられたマップをダブルクリックすることができます。保存すると、場所レコードの Geography データが保存されます。 
また、FromWkt メソッドと FromGeoJson メソッドを使用して、Geography データタイプに基づく項目属性にデータをロードできます。
FromWkt メソッドは、 "POINT(経度 緯度)" 構文で、経度座標と緯度座標を (この順序で) 受け取ります。
FromGeoJson メソッドは、GeoJSON 形式のファイルを受け取ります。
FromString メソッドも使用できますが、使用すべきメソッドは FromWkt です。

New 
   PlaceId = 1 
   PlaceName = "Palacio Legislativo" 
   PlaceGeo = GeoPoint.New(-34.8910275746741, -56.18720064473088)
endNew

New
   PlaceId = 2
   PlaceName = "Golf Club"
   PlaceGeo.FromWkt("POINT(-56.163740158081055 -34.92478600243492)")
endNew

New
   PlaceId = 3
   PlaceName = "Ramirez Beach"
   PlaceGeo.FromGeoJson('{"type":"Point","coordinates": [ -56.1701774597168,-34.91676309400329 ] }')
endnew

New PlaceId = 4   
   PlaceName = "Constituyente, Avenue"
   PlaceGeo.FromGeoJson('{ "type": "LineString", "coordinates":  [   [  -56.18528366088867, -34.90571271703311  ] ,  [  -56.17850303649902, -34.90641660705113  ] ,  [  -56.15318298339844, -34.9140182347531  ] ,  [  -56.14863395690918, -34.91521472314688  ]   ]  }')
endnew

new
  PlaceId = 5
  PlaceName = "Punta Carretas, Neighborhood" 
    &geojsonbarrio = '{ "type": "Polygon",  "coordinates":  [   [   [ -56.148808,-34.918453 ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.154835,-34.917061' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.156059,-34.916466' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.156250,-34.914318' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.162754,-34.914791' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.162003,-34.921761' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.165714,-34.919930' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.165737,-34.919930' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.168247,-34.919525' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.169598,-34.918205' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.171421,-34.919209' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.172668,-34.919685' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.172558,-34.920406' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.171207,-34.921566' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.171852,-34.924698' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.171249,-34.925278' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.169662,-34.925438' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.165329,-34.927372' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.161766,-34.929379' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.159920,-34.930645' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.157967,-34.927776' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.156445,-34.927177' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.153141,-34.925507' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.151508,-34.924644' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.151489,-34.923008' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.149151,-34.921497' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.148506,-34.921585' + ' ] ,  [ '
    &geojsonbarrio = &geojsonbarrio + '-56.148808,-34.918453' + ' ]   ]   ]  }'
  PlaceGeo.FromGeoJson(&geojsonbarrio)
endnew

New
  PlaceId = 6
  PlaceName = "Bulevar Artigas, Boulevard"
  PlaceGeo.FromString("LINESTRING(-56.16090774536133 -34.928797162523516, -56.1650276184082 -34.89494244739731)") 
endnew

new   
   PlaceId = 7
   PlaceName = "Cerro, Neighborhood"
   PlaceGeo.FromString('POLYGON ((-56.248367 -34.873821, -56.266563 -34.876427, -56.263733 -34.890366, -56.268799 -34.893394, -56.26897 -34.900291, -56.264851 -34.902615, -56.253605 -34.895645, -56.247597 -34.895153, -56.246052 -34.889523, -56.248367 -34.873821, -56.248367 -34.873821))') 
endnew

ナレッジベースのサンプル

Geography データタイプのサンプル

要件

- API キー

フォームに地理的な変数や項目属性を表示するには、次の 1 つのプロバイダーのみを使用します: GoogleMaps。そのためには、API キーを設定する必要があります。
Android アプリケーションの場合は、[ Android Maps API Key ] プロパティを設定する必要があります。
Web パネルの場合は、次に示すように、フォーム内のコントロールごとに API キーを設定する必要があります:
イメージ:32411.png
JavaScript 用の API キーを取得するには、こちらをクリックしてください。
正しく動作させるためには、このキーに対して複数の API を有効にする必要があります: 例: Maps JavaScript API、Maps Static API、Geocoding API、Geolocation API の使用が一般的です。

- データベース管理システム

SQL Server: バージョン 2008 以降が必要です。
                      SQL Server 2014 以降では、SQL Server 2012 Feature Pack を Web サーバーにインストールする必要があります。
MySQL/MariaDB: バージョン 5.7.5 以降が必要です。
                                現時点ではバージョン 8.0 をサポートしていません。
Oracle: Oracle Locator または Oracle Spatial をインストールする必要があります。Oracle 11.g 以降では、既定で事前にインストールされています。
PostgreSQL: PostgreSQL から拡張 PostGIS をインストールする必要があります。データベースの作成時に、 [ Postgre SQL Extensions ] プロパティに postgis を設定する必要があります (再編成の実行前)。

制限事項

DBMS: GeneXus 15 の場合、DB2 と Informix ではこの機能はサポートされていません。

互換性

以前のバージョンでは、次のような機能を使用して地理情報を表していました:
- Geolocation ドメイン (非推奨)。
- Web パネルでの Map ユーザーコントロール (利用可能)
- パネルで [ Control Type ] プロパティが Maps に設定されたグリッド (利用可能)
- Geolocation 外部オブジェクト (利用可能)

Geography データタイプおよびその派生データタイプのプロパティ

Geography    
Srid int Spatial Reference System Identifier (SRID)。表示された Geographic オブジェクトの参照システムを識別します。
https://en.wikipedia.org/wiki/SRID を参照してください。
FeatureType char 表示された Geographic オブジェクトのタイプ名を示す文字列。
POINT、LINE、POLYGON などのタイプがサポートされていますが、将来のリリースではその他のタイプのサポートも追加される予定です。
空の文字列は、null またはサポート対象外のオブジェクトを表します。
GeoPoint    
Srid int Spatial Reference System Identifier (SRID)。表示された Geographic オブジェクトの参照システムを識別します。https://en.wikipedia.org/wiki/SRID を参照してください。
Longitude int(12,8) ポイントの経度 (水平) 座標の値。
Latitude int(12,8) ポイントの緯度 (垂直) 座標の値。
GeoLine    
Srid int Spatial Reference System Identifier (SRID)。表示された Geographic オブジェクトの参照システムを識別します。https://en.wikipedia.org/wiki/SRID を参照してください。
GeoPolygon    
Srid int Spatial Reference System Identifier (SRID)。表示された Geographic オブジェクトの参照システムを識別します。https://en.wikipedia.org/wiki/SRID を参照してください。

Geography データタイプおよびその派生データタイプのメソッド

Geography    
FromWkt(WKT の文字) Geography WKT テキスト (https://en.wikipedia.org/wiki/Well-known_text) で表された Geography オブジェクトをロードします。
例: &GeographyVariable.FromWkt("POINT(-56.163740158081055 -34.92478600243492)") 
FromString(文字列) Geography FromWKT メソッドに似ています。FromWKT メソッドを使用してください。 
FromGeoJson(文字列) Geography GeoJSON テキスト (GeoJSON 形式の仕様: http://geojson.org/geojson-spec.html) で表された Geography オブジェクトをロードします。
ToGeoJson() Char オブジェクトを GeoJSON 表現にシリアライズします。
ToWkt() Char オブジェクトを WKT (Well Known Text) 形式にシリアライズします。
Distance(Geography オブジェクト) Int 現在のオブジェクトとパラメーターの間の距離 (メートル単位) を計算します (両方の Geography オブジェクトが GeoPoint か、GeoPoint を含む Geography である必要があります)。
Intersect(Geography オブジェクト) Boolean パラメーターで指定した Geographic オブジェクトが交差するか、インスタンスオブジェクトに含まれている場合は True を返します。
ToGeoPoint(Geography オブジェクト) GeoPoint Geography を GeoPoint タイプに変換します (キャスト)。
ToGeoLine(Geography オブジェクト) GeoLine Geography を GeoLine タイプに変換します (キャスト)。
ToGeoPolygon(Geography オブジェクト) GeoPolygon Geography を GeoPolygon タイプに変換します (キャスト)。
GeoPoint    
    Geography のすべてのメソッドが適用されます。
FromString(文字列) GeoPoint FromWKT メソッドに似ています。FromWKT メソッド (入力パラメーターとして Wkt フォーマットを受け取る) の使用に加えて、FromString メソッドを GeoPoint データタイプ (入力パラメーターとして Geolocation ドメインに基づく文字列を受け取ります) に適用することもできます。これは Android のみで使用できます。
例:
&GeoPointVariable.FromString("-34.92478600243492, -56.163740158081055")
ToGeography(GeoPoint オブジェクト) Geography GeoPoint を Geography タイプに変換します (キャスト)。
GeoLine    
    Geography のすべてのメソッド (Distance を除く) が適用されます。
ToGeography(GeoLine オブジェクト) Geography GeoLine を Geography タイプに変換します (キャスト)。
GeoPolygon    
FromWkt()...Intersect(GeoPolygon)    
ToGeography(GeoPolygon オブジェクト) Geography GeoPolygon を Geography タイプに変換します (キャスト)。
これらのメソッドには静的バージョンもあります。
: FromString メソッドと ToString メソッドは、互換性のためだけに Geography データタイプで有効になっています。代わりに FromWkt および ToWkt を使用してください。

適用範囲

DBMS: SQL Server、Oracle、MySQL、SAP HANA、および PostgreSQL。
ジェネレーター: .NET.NET FrameworkJavaAndroidApple 


サブページ
Created: 18/10/29 01:05 by Admin Last update: 24/04/07 19:09 by Admin
カテゴリ
Powered by GXwiki 3.0