1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redbook : IBM i 7.6 Features and Functions を読む Chapter.2-2 地理空間分析サマリー

Last updated at Posted at 2025-07-13

Chapter.2-1の続きです。

AI Ready and Integrated

サマリーではIBM i 7.4 TR7~提供されている、Db2 for i 地理空間分析と、今後機能拡張予定のWatsonを活用した機能拡張、が挙げられています。

Db2 for i 地理空間分析のメリット

Db2 for i 地理空間分析については、データ移送無用・データ発生源(Db2 for i)で完結などのセキュリティ、追加ライセンス費用無し、標準的なSQLによる操作が可能、などをメリットとして挙げています。

ユースケース例

最寄りのサービス拠点の検索 : 現在のGPS位置情報に基づいて最寄りのコーヒーショップの検索

ルートと距離の追跡 : 車での移動距離の測定

サービス拠点の更新 :
・移転した店舗の新しい住所の検索
・顧客と店舗の関係分析
・店舗と顧客の所在地を特定し、それらの地理的関係を分析します。

敷地計画とリスク評価
・施設または倉庫の候補地(例:半径30マイル以内)周辺の過去の気象パターンと傾向を分析します。

資産追跡と物流の最適化
・トラック、船舶、コンテナ、その他の移動資産のリアルタイムの位置を監視し、目的地を追跡します。

##サンプルSQL1 : 複数の目的地との距離を計算する。

自分自身の位置と、遠方の4つの拠点間のそれぞれの距離を計算する

Example 2-1 データ準備ステップ

実行結果例は以下です。ロチェスター市から別な4都市(ミネアポリス、ポケプシー、オースチン、IBM Watson West研究所)までの距離を計算しています。
image.png

サンプルコードはこちら

/*----------------------------------------------------------*/
/* Example 1: */
/* Find the distance between two different locations. */
/* For this example, we will find the distance between */
/* IBM Rochester and other IBM locations */
/*-----------------------------------------------------------*/
create schema coolstuff;
set schema coolstuff;
set path coolstuff, system path;
-- Create a table that contains IBM US Locations using the ST_POINT data type
CREATE TABLE IBM_US_LOCATIONS(LOCATION_NAME VARCHAR(50),
STREET VARCHAR(50),
CITY VARCHAR(25),
STATE CHAR(2),
ZIP VARCHAR(10),
COORDINATE QSYS2.ST_POINT);
-- Insert into the table using the ST_POINT function
INSERT INTO IBM_US_LOCATIONS VALUES
('IBM Rochester','2800 37th Street
NW','Rochester','MN','55901-4441',ST_POINT('point(-92.48151 44.06161)')),
('IBM Minneapolis','650 3rd Ave
S','Minneapolis','MN','55402',ST_POINT('point(-93.26778 44.97561)')),
('IBM Poughkeepsie','2455 South
Rd','Poughkeepsie','NY','12601-5400',ST_POINT('point(-73.93139 41.65904)')),
('IBM Austin','11400 Burnet
Rd','Austin','TX','78758-3493',ST_POINT('point(-97.71889 30.39975)')),
('IBM Watson West','505 Howard Street','San
Francisco','CA','94111',ST_POINT('point(-122.39623 37.7884)'));

・スキーマ coolstuff は任意のライブラリー名
・IBM_US_LOCATIONSというテーブル(PF)を作成
・上記のカラムは下記
 LOCATION_NAME VARCHAR(50),
 STREET VARCHAR(50),
 CITY VARCHAR(25),
 STATE CHAR(2),
 ZIP VARCHAR(10),
 COORDINATE QSYS2.ST_POINT)
・上記のカラムで、ST_POINT は地理空間データのある地点のポイント(点)を示すデータ型です。
・INSERT INTO IBM_US_LOCATIONS VALUESステートメントで、上記5つの地点のポイントをセットしています。

私の環境では coolstaffG というライブラリー(スキーマ)を作って実行してみました。
image.png

Example 2-2 ST_POINT変数に基点となるポイントの座標をセット

ST_POINTのグローバル変数を作成し、ST_POINT関数を使用して基準となる地点(今回はロチェスターの位置情報)のポイントを設定します。

CREATE VARIABLE ROCHESTER_LOCATION QSYS2.ST_POINT;
SET ROCHESTER_LOCATION = ST_POINT(-92.48151, 44.06161);

image.png

Example 2-3 

以上でロチェスターからの直線距離を算出する準備が出来たので、SQLを実行してみます。

-- Determine the distance from IBM Rochester to other IBM locations as the crow
flies in miles
SELECT ROUND(ST_DISTANCE(COORDINATE, ROCHESTER_LOCATION)/1609.34, 2) AS
DISTANCE_MILES,
LOCATION_NAME
FROM IBM_US_LOCATIONS;

実行結果が冒頭の通り返されます。
image.png

このチャプターにはこの他に、より実践的なサンプルが2つ記載されていますのでご確認ください~。

Db2 地理空間分析の分かりやすい参考情報

記事はDb2 LUWを想定して書かれていますが、インフラ的な記載を除けば、地理空間分析機能の説明、サンプルコードはDb2 for i でもそのまま参照できると思います。
サンプルが国内の地図を使用している等、こちらのサンプルの方が分かりやすいかもしれません。

Db2地理空間分析: Db2の地理空間分析機能

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?