記事 Megumi Kakechi · 6月 7, 2021 1m read

これは InterSystems FAQ サイトの記事です。

Question:

IRIS Data Platformは大量のトラフィック処理に耐えられますか?

Answer:

IRIS Data Platformは他のデータベースシステムに比較してデータの処理スピードおよび処理能力の面で優れています。

ESGという外部機関が実際に他社データベース製品とのベンチマークテストを実施した結果に関するレポートを公表しています。

またウルシステムズ社による検証結果も公開されています。

ご参考いただければ幸いです。

ESGによるスピードテストの検証結果

ウルシステムズ社ベンチマーク結果レポート
 

1
0 253
記事 Megumi Kakechi · 6月 7, 2021 1m read

これは InterSystems FAQ サイトの記事です。
Question:

 IRISは医療に特化したシステム統合製品ですか?

Answer:

InterSystems IRIS Data Platform(以下IRISと表記)は、金融、物流など様々な業種でお使いいただいています。

また、IRISから派生して医療分野に特化したInterSystems IRIS for Health(以下IRIS4Hと表記)という製品があります。

IRIS4Hでは医療分野で良く使われる情報交換規格 HL7(FHIR,V2,V3,CDA)、DICOM、X12 などへの対応に力を入れています。

医療分野のお客様には、IRIS4Hをご利用いただくようお願いしております。

0
0 179
記事 Mihoko Iijima · 6月 4, 2021 3m read

これは InterSystems FAQ サイトの記事です。

ユーザーが作成したクラス定義は、クラス定義クラスの中に格納されます。

クラス定義一覧をプログラムから取得する方法として、「クラス定義クラス」を利用することができます。

メモ:クラス定義クラスとは、%Dictionary パッケージに含まれるクラス全般のことをさします。

以下サンプルコードでは、%Dictionary.ClassDefinitionQuery クラスSummary クエリを利用してクラス定義一覧を取得しています。

Class ISJ.Utils
{
ClassMethod ClassInfo()
{
    #dim ex As %Exception.AbstractException
    try {
        set currentNS=$NAMESPACE
        while (1) {
            read "ネームスペースを指定してください : ",x
            if x'=""  quit
        }
        set $NAMESPACE=x // ネームスペースの移動
        write !
0
0 296
記事 Megumi Kakechi · 6月 3, 2021 5m read

これは InterSystems FAQ サイトの記事です。


Java のプログラムで $List 構造のデータを扱うには、InterSystems 製品が提供する IRISList クラスを使用することが可能です。

こちらは、IRIS Native と同様に JDBCドライバの拡張機能の一部として提供しております。

Native API for Java Quick Reference(英語のみ)
 

こちらでは、InterSystems 製品上に $List 構造を扱うクラスメソッドを作成し、それをストアドプロシージャとして公開し Java から呼び出すサンプルをご紹介します。


【使用可能バージョン】

IRIS 2020.1 以降に同梱されている JDBC ドライババージョン 3.1.0 以降。
ただし、JDBCで使用する場合は 3.2.0以降(IRIS2021.1以降)。

<IRISインストールディレクトリ>\dev\java\lib\JDK(Ver.)\intersystems-jdbc-3.1.0.jar


【手順】

1. IRISサーバの任意のネームスペースに以下のようなクラスを用意します。
 SqlProc キーワード を指定し、メソッドを SQL ストアドプロシージャとして呼び出せるようにします。

0
0 1673
記事 Toshihiko Minamoto · 6月 3, 2021 4m read

コンテナ

InterSystems IRIS Data Platformの公開により、Dockerコンテナでも製品を提供しています。 コンテナとは一体何でしょうか。

基本的なコンテナの定義は、プロセスのサンドボックスの定義です。  

コンテナは、たとえば実行できるという点において、仮想マシン(VM)に似た部分を持つソフトウェア定義パッケージです。 

コンテナは、完全なOSエミュレーションを使わずに分離することができるため、 VMよりもはるかに軽量です。 

本質的に、コンテナは、どのようにアプリケーションをシステムから別のシステムに確実に移動し、それが動作することを保証できるのかという問題に対する答えと言えます。 アプリケーションのすべての依存関係をコンテナにカプセル化し、プロセス分離領域を作成することにより、アプリケーションソリューションがプラットフォーム間で移動した場合でも動作するという高い保証を得ることができます。  

プロセスは、オペレーティングシステムによって実行が可能です。 これらのプロセスはアドレス領域、ネームスペース、cgroupなどを共有し、通常、OSの環境全体にアクセスすることができます。それらのスケジュールと管理は、OSが行います。

0
0 441
記事 Mihoko Iijima · 6月 1, 2021 6m read

これは InterSystems FAQ サイトの記事です。

InterSystems 製品を利用した REST/JSON の操作方法を、簡単なサンプルを利用して解説します。

サンプルでは、REST クライアント、HTML、ターミナルからデータ(JSON)を送信し、サーバ(InterSystems製品)で JSON 形式のデータを返す REST ディスパッチクラスを使った簡単な流れになっています。

サンプルは、https://github.com/Intersystems-jp/FAQ-REST-SimpleSample からダウンロードいただけます。

サンプルの利用手順

RESTディスパッチクラスとサンプルHTMLファイルが含まれています


(1) サンプルファイル(XML)のインポート

管理ポータルからインポートします(スタジオを利用されている場合は、スタジオでもインポートできます)。

管理ポータルは http://localhost:52773/csp/sys/UtilHome.csp でアクセスできます。

※ ポート番号はお使いの環境に合わせて変更してください。

管理ポータルにアクセスできたら以下メニューでインポートを行ってください。

0
0 7822
記事 Makiko Kokubun · 6月 1, 2021 1m read

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

IRIS の ObjectScript を使えば、ビジネスロジックの記述からキーバリュー形式のデータ操作まで様々な処理が記述できます。
ですが、残念ながら Python のように豊富なライブラリを利用し、機械学習をはじめとする Python が得意とすることまでは単独では行えません。
「ObjectScript から Python を呼べたら?」を実現するための計画中機能も含め、IRIS がサポートする Python の利用方法をご紹介します。

この動画の講演資料(PDF)もご用意しました。
動画の中でご紹介している技術資料へのURLは、こちらの資料をご活用ください。

0
0 163
記事 Megumi Kakechi · 6月 1, 2021 1m read

これは InterSystems FAQ サイトの記事です。
 

OSのコマンド実行する場合、$ZF(-100) を使用します。

do $ZF(-100,"",program,args) // Windows コマンドを【同期】実行します。
do $ZF(-100,"/ASYNC",program,args) // Windows コマンドを【非同期】実行します。


mkdir, copy などのOSシェルコマンドを実行する場合は、/SHELL もあわせて指定します。

do $zf(-100,"/shell /async","mkdir","c:\temp\x")

詳細は以下のドキュメントを参照してください。

$ZF(-100) について【IRIS】
$ZF(-100) について
 

0
0 354
記事 Toshihiko Minamoto · 5月 31, 2021 3m read

以下の記事では、DeepSee のより柔軟なアーキテクチャ設計の概要を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定、および同期グローバル用の個別のデータベースが含まれています。 この例では、DeepSee インデックスを保存するための新しいデータベースを紹介します。 DeepSee インデックスがファクトテーブルや次元テーブルとともにマッピングされないように、グローバルマッピングを再定義します。

0
0 181
記事 Mihoko Iijima · 5月 28, 2021 8m read

開発者の皆さん、こんにちは🌂 今年は早い梅雨入りでした ☔

さて、新しい✨ 実行/開発環境テンプレートを作成しました。 Docker 🐳、docker-compose 、git がインストールされていれば、すぐにお試しいただけます。ぜひご利用ください!

今回は、ご存知の方が多いと思われる(?)某アニメの登場人物を使った人物相関図をテーマに【キーバリュー形式で IRIS に登録してグラフ構造で表示してみた】を体験できるテンプレートです(テンプレートは、Python/Node.js/Java からお試しいただける環境をご用意しています)。

人物相関図のイメージ 

以下、今回のテーマについて、ビデオと文字でご紹介しています。最後までお付き合いいただければ幸いです!(ビデオは全体で 7 分 20 秒)

人物相関図と言えば、グラフデータベースをイメージされると思います。

IRIS はグラフデータベースではないのですが、IRIS ネイティブのデータの「グローバル」を利用することで、グラフデータベースと似たような構造を表現することができます。

IRIS の高パフォーマンスを支える グローバル は 40 年以上前(= InterSystems 創業)から InterSystems のコア技術であるデータベースとして提供されてきました。

0
0 497
記事 Mihoko Iijima · 5月 27, 2021 2m read

これは InterSystems FAQ サイトの記事です。

HL7 メッセージの送受信を行うプロダクションでは、以下3個のグローバルが非常に大きくなることがあります。

グローバルの大きさを確認する場合は、^%GSIZEユーティリティを利用します。詳細は関連トピック/記事をご参照ください。

^EnsHL7.Segment
^EnsLib.H.MessageD
^EnsLib.H.MessageI

HL7メッセージは EnsLib.HL7.Message.cls で定義されます。
^EnsLib.H.MessageD はデータを保存するグローバル、^EnsLib.H.MessageI はインデックスを保存するグローバルです。

また、HL7メッセージは多数のセグメントで構成されており、メッセージデータを含むそれらのセグメントは ^EnsHL7.Segment に保存されます。

^EnsLib.H.MessageD グローバルの値は、^EnsHL7.Segment グローバルの添え字にリンクしています。

これらメッセージ関連のグローバルの削除については、任意の保持日数を指定して手動および定期的に削除することができます。
パージ(Purge)用ユーティリティについては、以下のドキュメントをご参照ください。

0
0 221
記事 Megumi Kakechi · 5月 27, 2021 1m read

これは InterSystems FAQ サイトの記事です。

InterSystems Data Platformは、データベースキャッシュやルーチンキャッシュなどの共有メモリを、起動時に割り当てます。

バージョン2007.1以降をWindows上で動作させる際、Windows特有の共有メモリに関する問題が生じることが判明しています。

詳細については、以下の技術資料をご参照ください。

Windows上での共有メモリの割り当てについて

また、以下の記事もあわせてご覧ください。

コンソールログに "Failed to allocate xxxMB shared memory using large pages..." のエラーメッセージが出ているとき

IRISが使用するワーキングセット(メモリ)について

0
0 581
記事 Toshihiko Minamoto · 5月 27, 2021 5m read

以下の記事では、DeepSee の中程度の複雑さのアーキテクチャ設計を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定用の個別のデータベースが含まれています。 この記事では、同期に必要なグローバルの保存用と、ファクトテーブルとインデックスの保存用に、2 つの新しいデータベースを紹介します。

0
0 258
記事 Tomoko Furuzono · 5月 26, 2021 2m read

これは、InterSystems FAQサイトの記事です。


iris
 コマンドを使用して、InterSystems IRIS のインスタンスを制御できます。
iris コマンドは多くの機能をサポートします。以下の構文を使用します。

iris <ファンクション名> <インスタンス名> [引数]


irisコマンドの詳細は下記ドキュメントをご参照ください。
InterSystems IRIS インスタンスの制御
このirisコマンドのrunw というファンクションを使用して、同期実行や戻り値を取得することができます。
コマンド実行例は以下の通りです。

iris runw インスタンス名 tag^routine([parameter-list]) ネームスペース名
iris runw インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名


バッチスクリプトへの戻り値の指定は、ルーチンやメソッド終了時に指定する QUIT や RETURN コマンドに引数を指定する方法ではなく、IRIS 内の処理終了時に %SYSTEM.Process クラスの Terminate() メソッドを使用して errorlevel 変数に値を返す方法を使用します。
値は、0~255 を指定できます。
ルーチンサンプルは以下の通りです。

// ルーチン名をTest.
1
0 623
記事 Tomoko Furuzono · 5月 26, 2021 2m read

これは、InterSystems FAQサイトの記事です。
 

オンラインバックアップの API である BACKUP^DBACK ルーチンを使用して実行できます。
フルバックアップを実行する例は以下の通りです。

set status=$$BACKUP^DBACK("","F","full backup","c:\backup\full.cbk","Y","c:\backup\full-log.log","NOINPUT","Y","Y","","")


バックアップ成功時は戻り値に 1 が返り、失敗時は 0 が返ります。
失敗時の詳細は、ログファイルをご参照ください。

また、第2引数の TYPE に C を指定すると累積バックアップ、I を指定すると差分バックアップを指定できます。
ルーチン例は以下の通りです。

 FULL() public {
    set cbk="c:\kit\InterSystemsFull"_$ZDATE($Horolog,8)_".cbk"
    set log="c:\kit\InterSystemsFullLog"_$ZDATE($Horolog,8)_".
0
0 411
記事 Makiko Kokubun · 5月 25, 2021 1m read

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

この動画では、クラウド環境下で利用可能な InterSystems 製品の様々なバックアップオプションと戦略、そしてサードパーティのバックアップ代替オプションについて紹介します。

今現在、クラウド環境をご利用でない方にも役立てて頂ける情報も紹介します。ぜひご覧ください。

関連動画として、こちらも公開しています。宜しければご覧下さい。
「クラウドストレージ戦略」(字幕付き動画)

0
0 102
記事 Toshihiko Minamoto · 5月 24, 2021 3m read

以下の記事は、DeepSee の基本的なアーキテクチャを実装するためのガイドです。 この実装には、DeepSee キャッシュ用のデータベースと DeepSee 実装と設定用のデータベースが含まれています。

0
0 273
記事 Mihoko Iijima · 5月 23, 2021 2m read

これは InterSystems FAQ サイトの記事です。

仮想ドキュメント(以降VDOC)とは複雑な構造のドキュメント(メッセージ)を効率良く高速に処理するために考えられたメッセージ処理の仕組みです。

HL7に代表される EDI 標準は電子データ交換のための汎用的なかなり複雑なメッセージ形式を含んでいます。

また、メッセージの種類を増やすと運用が複雑になってしまうため、1 つのメッセージに様々なデータを詰め込む傾向があります。

その結果 1 つのメッセージは複雑かつデータ量が多いものになりがちです。

一方、実際のメッセージ交換では、メッセージの全てのデータを処理することはまれで一部のデータのみが必要となるケースがほとんどです。

複雑なメッセージ構造から必要な項目を抽出して処理する際、メッセージを InterSystems IRIS data platform のオプジェクト指向フレームワークに基づき一度オブジェクトとしてインスタンス化することで処理を簡潔に記述できます。

しかし、データ量の多いメッセージを解析しオブジェクトにインスタンス化する処理は非常に負荷のかかる処理で、しかも大量のメッセージを処理しなければならない場合は求められるスループットを満たせない状況になりがちです。

しかも必要なデータは「全体の中のほんの少し」という状況の場合、無駄の多い処理となります。

0
0 1123
記事 Mihoko Iijima · 5月 23, 2021 2m read

これは InterSystems FAQ サイトの記事です。

%Net.FtpSession クラスを使用して FTP サーバから、アップロード/ダウンロードする方法をご紹介します。

1. FTPサーバにイメージファイルをアップロードする

 set tmpfile="c:\temp\test.jpg"
 set ftp=##class(%Net.FtpSession).%New() 
 // ftp サーバへ接続する
 do ftp.Connect("<サーバ名>","<ユーザ名>","<パスワード>")
 // 転送モードをBINARYに設定
 do ftp.Binary()
 // アップロードするディレクトリに移動
 do ftp.SetDirectory("/temp/upload")
 // アップロードするファイルのストリームを用意   
 set file=##class(%File).%New(tmpfile)
 do file.Open("UK\BIN\")
 // ファイルをアップロード
 // 第1引数: アップロード先に作成するファイル名
 // 第2引数: アップロードするファイル・ストリーム
 do ftp.Store("test.jpg",file)
 // ftp サーバからログアウト
 do ftp.
0
0 371
記事 Makiko Kokubun · 5月 18, 2021 1m read

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。
 

InterSystems IRISではシャドウイングは非推奨の為、Caché/Ensembleからのマイグレーションに伴い、シャドウイングをご使用頂いているお客様はミラーリングへ移行する必要があります。

この動画では、ミラーリングの概要およびミラーリングの構成例、シャドウイングとの運用上の違いや注意点についてご説明します。

シャドウイングから移行される場合のミラーリングの構成としては、DR非同期またはレポーティング非同期になります。 ミラーリングとシャドウイングでは、データベースファイルやジャーナルファイルの取り扱いが異なります。
この点につきまして、動画の後半に紹介しておりますのでご参考下さい。

マイグレーションについては、こちらの動画も合わせてご覧ください。
(動画)InterSystems IRIS へのマイグレーション

0
0 279
記事 Tomohiro Iwamoto · 5月 18, 2021 18m read

目的

Japan Virtual Summit 2021で、Kubernetesに関するセッションを実施させていただいたのですが、AzureのアカウントやIRIS評価用ライセンスキーをお持ちの方が対象になっていました。もう少し手軽に試してみたいとお考えの開発者の方もおられると思いますので、本記事では仮想環境でも利用可能なk8sの軽量実装であるmirok8sで、IRIS Community Editionを稼働させる手順をご紹介いたします。

2022/1/7 若干の加筆・修正しました

マルチノード化する手順はこちらに記載しています。

0
0 4843
記事 Toshihiko Minamoto · 5月 18, 2021 12m read

第2部: インデックス処理

 

クラスにどのようなインデックスが必要であるのか、それをどのように定義するのかについて理解できたので、 次に、どのように処理するのかについて確認しましょう。

 

クエリプラン

 

注意: クラスに変更を適用する場合と同様に、ライブシステムにインデックスを追加する場合にもリスクが伴います。インデックスが入力されているときに、ユーザーがデータにアクセスしたり更新したりすると、クエリ結果が空になったり誤った結果が生じることがあります。また、構築中のインデックスが破損する場合もあります。 ライブシステムでインデックスを定義したり使用したりするには追加の手順があり、それについてはこのセクションで触れていますが、詳細はドキュメントに記載されています。)

新しいインデックスの準備ができたら、SQLオプティマイザが、クエリを実行する上で最も効率的に読み取れるインデックスであると判断するかどうかを確認できます。 プランを確認するために実際にクエリを実行する必要はありません。 クエリがあれば、プランをプログラムで確認することができます。

            Set query = 1

     Set query(1) = “SELECT SSN,Name FROM Sample.

0
0 407
記事 Megumi Kakechi · 5月 13, 2021 1m read

これは InterSystems FAQ サイトの記事です。

システムクラス SYS.Lock のメソッド GetLockSpaceInfo() にてロックテーブルの空きサイズ、使用サイズが取得可能です。

%SYS>w ##class(SYS.Lock).GetLockSpaceInfo()
4717392,4712512,1200


戻り値は、“AvailableSpace, UsableSpace, UsedSpace” になり、それぞれByte単位の値を表しています。

AvailableSpace:ロックテーブルサイズから使用サイズ(UsedSpace)を引いたサイズ

UsableSpace:AvailableSpaceよりロック管理のための内部データを引いたサイズ
→これがユーザの使用できるロックテーブル空き容量になります。

UsedSpace:使用サイズ
 

詳細は、クラスリファレンス をご覧ください。

0
1 314
記事 Megumi Kakechi · 5月 13, 2021 1m read

これは InterSystems FAQ サイトの記事です。

Webアプリケーションの開発・運用には、高性能・高スケーラビリティ・開発生産性の良さが求められます。

IRIS Data Platformには、高性能で軽量なデータベースエンジンとそのエンジンの性能を最大限活用するアプリケーションサーバ機能、および、Webアプリケーションを迅速に開発するためのREST/JSON対応、API管理機能が用意されています。

さらに、マルチコア・マルチCPUシステムに最適化したアーキテクチャや、複数サーバでのスケールアウト手法による高スケーラビリティを提供するECP、シャーディングと呼ばれる技術を提供します。

0
0 166
記事 Toshihiko Minamoto · 5月 12, 2021 12m read

これは、SQLインデックスに関する2部構成の記事の前半です。

第1部 - インデックスを理解する

 

インデックスとは?

 

最後に図書館に行った時のことを思い出してください。 通常そこには、分野別(そして作者順と題名順)に整理された本が並び、それぞれの棚には、本の分野を説明したコードが記載された本立てがあります。 特定の分野の本を収集する場合、すべての通路を歩いて一冊ずつ本の表紙を読む代わりに、目的の分野の本棚に直接向かって選ぶことができるでしょう。

SQLインデックスにもこれと同じ機能があります。テーブルの各行にフィールドの値へのクイック参照を提供することで、パフォーマンスを向上させています。

インデックスの設定は、最適なSQLパフォーマンスを得られるようにクラスを準備する際の主なステップの1つです。

この記事では、次のことについて説明します。

  1. インデックスとは何か。いつ、なぜそれを使用するか。
  2. どのようなインデックスが存在するか、どのようなシナリオに適しているのか。
  3. インデックスの例
  4. 作成方法
  5. インデックスが存在する場合、どのように扱うのか。

この記事では、Sampleスキーマのクラスを参照します。 このスキーマは以下に示すGitHubリポジトリにあります。

0
0 632
記事 Mihoko Iijima · 5月 12, 2021 2m read

これは InterSystems FAQ サイトの記事です。

InterSystems IRISでは、サンプル定義の一部は、GitHub上に公開しています。

本FAQ内で登場する Sample.Person のクラス定義とサンプルデータについては、こちら からダウンロードいただけます。
手順は以下の通りです。

  1. Zipとしてダウンロード
  2. 1を展開
  3. 展開フォルダ内 以下階層のクラス定義をターミナルを利用してIRISへインポートし、インポート後 Build()メソッドを実行します。

Samples-Data-master\buildsample\Build.DataSample.cls をフルパスで指定してインポートします(Sample-Data-masterフォルダを c:\kit へコピーした状態での例です)。

do $system.OBJ.Load("C:\kit\Samples-Data-master\buildsample\Build.DataSample.cls","ck")  

データ生成のBuild() メソッド実行例は以下の通りです。

do ##class(Build.DataSample).Build() 

実行例(全体):

USER>do $system.OBJ.Load("C:\kit\Samples-Data-master\buildsample\Build.
0
0 314
記事 Makiko Kokubun · 5月 11, 2021 1m read

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

国や地域のニーズに合わせて何のデータをどこにどのように格納するのかを定める共通ルールである FHIR プロファイルは、FHIR による標準化において、非常に重要な要素です。

この動画では、InterSystems IRIS for Health における FHIR リポジトリの構築・設定~ FHIR プロファイルの追加の方法を、最新バージョンおよび今後のバージョンでのサポート内容を含めてご紹介いたします。

この開発者コミュニティでは他にも IRIS の FHIR 機能に関連した多くの記事を公開しています。 FHIR にご興味ある方はぜひご覧ください。

0
0 360
記事 Toshihiko Minamoto · 5月 11, 2021 9m read

  1. ブロックチェーン

この記事を書いている時点(2019年2月)で、ビットコインの価値はそれが絶頂期だったころの 5 分の 1 未満に下落しています。 そのため、ブロックチェーンの私の体験について誰かに話すときに最初に耳にするのは、「今頃ブロックチェーンを欲しがる人がいるのか」という偽りなく懐疑的な言葉です。

その通り。ブロックチェーンの盛り上がりは衰退しています。 ところが、それが基づいているテクノロジーはここにとどまり、特定の分野で使用され続けるでしょう。一般的にインターネットではこのテクノロジーの使用方法が記述された資料でいっぱいです。 

0
0 263
記事 Mihoko Iijima · 5月 7, 2021 9m read

開発者の皆さん、こんにちは!

この記事では、Java から IRIS へ接続する方法の中から XEP(ゼップ)を利用して、GPS (GPX)データを高速に取り込むサンプルをご紹介します。

Java の実行環境や IRIS がお手元になくても大丈夫です!コンテナ 🐳 のビルド+開始で体験できる「実行環境テンプレート」をご用意しました。

ソースコードは コミュニティの Git で公開 していますので、docker、docker-compose 、git がインストールされた環境であれば、すぐにお試しいただけます(Javaの実行環境はコンテナでご提供するので準備不要です)。

操作方法は、Gitの README に記載しています。ぜひお試しください。

この記事の中では、コード解説を追加しています。ぜひ、最後までお付き合いください!


1)処理概要

GPX データを IRIS へ渡す迄の流れにリアクティブプログラミングが行える RxJava2 のライブラリを使用しています。

メモ:サンプルコードの中では、GPS データを直接受信するのではなく、Google マイマップやサンプル GPS データから GPX ファイルに変換したデータを入力に使用しています。

実行時、複数(数十~千)の GPS データが含まれる GPX ファイルを引数に指定し情報を入力します。

0
0 277