Overview
本ドキュメントは、プローブデータ収集SDKの使用方法を説明します。
パイオニア株式会社 © Pioneer Corporation. All Rights Reserved.
About ProbeData SDK and around
プローブデータ収集SDKと周辺の概要について説明します。
ProbeData SDK
プローブデータ収集SDKは、モバイル端末のモバイルOS(Android/iOS)のユーザーアプリケーションに組み込まれて利用します。
プローブデータ収集SDKは、ユーザーアプリケーションからのナビ情報や、モバイル端末からの位置情報などを収集します。 収集データは、配信データとして、配信先のクラウドサーバへ配信します。
プローブデータ収集SDKの利用OSは、Android/iOSを対象としています。
User Application
ユーザーアプリケーションは、プローブデータ収集SDK APIを介して、プローブデータ収集SDKの開始・終了を制御したり、ナビ情報などを受け渡したりすることができます。 ユーザーアプリケーションの利用OSも、Android/iOSを対象としています。
Cloud Server
クラウド環境におけるクラウドサーバは、本ドキュメントの対象外です。
クラウド環境のクラウドサーバは、プローブデータ収集SDKからの配信データを受け取ります。 プローブデータ収集SDKでは、配信データの識別のために認証パラメータを付帯しています。
Architecture
はじめに
プローブデータ収集SDKは、ユーザーアプリケーションからプローブデータ収集SDK API経由で、 制御情報と外部データを受け取ります。
更にプローブデータ収集SDKは、モバイル端末の位置情報などを内部データとして収集します。
プローブデータ収集SDKは、収集した外部データと内部データを、配信データとしてクラウドサーバに配信します。
配信データには、認証パラメータなどの付帯データを付けます。
ProbeData SDK API
ユーザーアプリケーションから、プローブデータ収集SDKを制御するにはプローブデータ収集SDK APIを用います。 このAPIには、制御用のAPIとデータ収集用のAPIがあります。
-
制御用のAPIで、プローブデータ収集SDKの開始・終了、認証用パラメータ等の制御を行います。詳細はcontrolを参照してください。
-
データ収集用のAPIで、ナビ情報などの外部データを、プローブデータ収集SDKへ渡すことができます。詳細はdata_collectを参照してください。
Get Start
本章では、初めてSDKを触る人向けに、SDKの使い方を解説します。
Get Your Credentials
プローブデータ収集SDKでは、クラウドサーバへ配信するデータに認証パラメータを付帯しています。 この付帯された認証パラメータを用いて、クラウドサーバにおいて配信データを識別します。 認証パラメータが渡されなければ、プローブデータ収集SDKは配信動作を行いません。 認証パラメータは、ユーザーアプリケーションにて入手し、プローブデータ収集SDKに渡してください。
認証パラメータ
認証パラメータは、認証キー種別、と、認証キー、から構成されます。
認証キー種別は、APIキー方式です。
認証キーは、APIキーの値、です。
具体的なAPIキー(文字列)については営業窓口までお問い合わせください。
認証パラメータの実際の利用方法については、後述のAPI(activate/updateKey)を参照してください。
認証パラメータ | 値 |
---|---|
認証キー種別 | 1 (APIキーによる認証) |
認証キー | キーの値 |
APIキーによる認証
ユーザーアプリケーションにて、配信先のクラウドサーバが発行するAPIキーを入手します。 このAPIキーを、API経由でプローブデータ収集SDKに受け渡します。
具体的なAPIキー(文字列)については営業窓口までお問い合わせください。
APIキーと共に、ユーザー識別情報も付帯します。 これにより、クラウドサーバではユーザーを識別します。
Create a New Project
新しくプローブデータ収集SDKを使うプロジェクトを立ち上げる方法を説明します。
Androidの場合
※本ドキュメントのAndroid開発にはKotlinを前提に記述しています。
以下を参考にして、Kotlinベースでのサンプルプログラムを立ち上げてください。
iOSの場合
※本ドキュメントのiOS開発にはSwiftを前提に記述しています。
以下を参考にして、Swiftベースのサンプルプロジェクトを立ち上げてください。
Integrate Pioneer ProbeData SDK
本章では、ユーザーアプリケーションにプローブデータ収集SDKを組み込む方法を説明します。
Androidの場合
Installation
- ユーザのサンプルプログラムのプロジェクト内でライブラリを格納するフォルダ(例:libs)にプローブデータ収集SDKのライブラリ形式のバイナリファイル(例:predictivesdk.aar)をコピーします。
- アプリのbuild.gradleにプローブデータ収集SDKのライブラリとその他のライブラリを追加します。
dependencies { implementation fileTree( dir:'libs', include:['*.jar','*.aar']) implementation "io.insert-koin:koin-android:3.3.0" def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-ktx:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation 'com.squareup.okhttp3:okhttp:4.9.0' implementation 'com.google.android.gms:play-services-location:21.0.1' }
Usage
-
SDKのDIライブラリにKoinを使用しています。Koinの初期化をします。
- android.app.Applicationを継承したクラス内で初期化します。
override fun onCreate() { super.onCreate() startKoin {} }
- android.app.Applicationを継承したクラス内で初期化します。
-
ユーザーアプリケーション側でユーザーのランタイム権限を取得してください。
必要な権限は次の通りです。
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACTIVITY_RECOGNITION
-
プローブデータ収集SDK(PredictiveSdk())をインポートします。
import predictiveSdk
-
SDKインスタンスを作成し、コンテキストを譲渡します。
val sdk = PredictiveSdk() sdk.context(context)
-
以降はSDK内部動作の有効化~停止(Android/iOS共通)、を参照してください。
Option
Debugビルド時の内部動作のロギング設定です。
- Logcat出力
Name | Value | |
---|---|---|
predictiveSdk | verbose, debug, info, warn, error | ログレベル |
CheckPredSdk | verbose, debug, info, warn, error | ログレベル |
iOSの場合
Installation
Swift Package Manager
- Xcodeでxcodeprojを開き、対象のTARGETS → General → Frameworks, Libraries, and Embedded Content からプローブデータ収集SDKのバイナリファイル(.xcframework)を選択し追加します。
※[XcodeGenを使う場合] project.ymlにプローブデータ収集SDKを追加し xcodegen generate を実行します。targets: TARGET名: dependencies: + - framework: PredictiveSDK.xcframework
Usage
※各IFの詳細については別途IF仕様書をご参照いただくか、DocCで生成した仕様書をご覧ください。
- Xcode上からはProduct -> Build Documentation
Preparation
- アプリプロジェクトの
Info.plist
にキーを設定してください。
Key | 用途 |
---|---|
NSLocationWhenInUseUsageDescription | 位置情報 |
NSLocationAlwaysAndWhenInUseUsageDescription | 位置情報 |
NSMotionUsageDescription | モーションアクティビティ |
UIBackgroundModes | バックグラウンドでの位置情報 |
- プローブデータ収集SDK(PredictiveSdk())をインポートします。
import PredictiveSdk
- エントリポイントとなるsdkインスタンスを作成します。
let sdk = PredictiveSdk()
APIs
-
データ使用権限を取得します。
-
位置情報の権限取得
sdkResult = await sdk.requestLocationPermission()
-
モーションアクティビティの権限取得します。
sdkResult = await sdk.requestActivityPermission()
-
sdk.startBackgroundPositioning()
-
-
以降はSDK内部動作の有効化~停止(Android/iOS共通)、を参照してください。
Option
Debugビルド時の内部動作ロギング設定変更です。
- プロジェクトSchemeのArguments -> Environment Variables
Name | Value | |
---|---|---|
predLogLevel | verbose, debug, info[default], warn, error | ログレベル |
doRecPredLogs | true, false[default] | 標準出力から~/Library/Logs/PredictiveSDK/へのファイル出力変更 |
SDK内部動作の有効化~停止(Android/iOS共通)
-
SDKの内部動作を有効化します
この時点から、SDK内部でのセンサ・GNSSデータの収集、定期配信のタイマーを開始します。
具体的な動作は、activateを参照してください。
Android/iOS:activate
sdk.activate(SdkUploadRequest(...))
-
ユーザーアプリケーション側からプローブデータ収集SDKへ各種データを入力します
-
ナビ情報を入力します
具体的な動作は、addNaviInfoを参照してください。
Android/iOS:addNaviInfo
sdk.addNaviInfo(AppNaviInfo(...))
-
ルートアクションログを入力します
具体的な動作は、addRouteActionLogを参照してください。
Android/iOS:addRouteActionLog
sdk.addRouteActionLog(RouteActionLog(...))
-
車両情報を入力します
具体的な動作は、setVehicleInfoを参照してください。
Android/iOS:setVehicleInfo
sdk.setVehicleInfo(VehicleInfo(...))
-
認証パラメータを入力します
具体的な動作は、updateKeyを参照してください。
Android/iOS:updateKey
sdk.updateKey("newKey")
-
車両IDを入力します
activate時には、車両ID取得が未設定だった場合を想定しています。
具体的な動作は、setVehicleIdを参照してください。
Android/iOS:setVehicleId
sdkResult = sdk.setVehicleId("00000000-0...")
-
-
SDKの稼働状態を確認します
具体的な動作は、checkHealthを参照してください。
Android/iOS:checkHealth
val sdkStatus = sdk.checkHealth(needDetails)
-
SDKの内部動作を停止します
ユーザーアプリケーション側のライフサイクルに合わせて、任意のタイミングで呼び出してください。
SDK内部でのセンサ・GNSSデータの収集、定期配信のタイマーを停止します。
具体的な動作は、deactivateを参照してください。
Android/iOS:deactivate
sdk.deactivate()
Handle Permissions
本SDKでは、位置情報とアクティビティ情報を使用します。それぞれ、位置情報権限とアクティビティ権限が必要です。
許可される権限の精度が低いには、可能な範囲でのデータを収集します。
権限自体が無い場合には、権限に対応するデータの収集はできませんが、それ以外のデータ収集は行います。
Android
以下の権限が必要です。
権限名 | 用途 |
---|---|
android.permission.ACCESS_COARSE_LOCATION | 位置情報取得(おおよそ) |
android.permission.ACCESS_FINE_LOCATION | 位置情報取得(詳細) |
android.permission.ACTIVITY_RECOGNITION (Android SDK 29以降向け) | アクティビティ検知結果取得 |
com.google.android.gms.permission.ACTIVITY_RECOGNITION (Android SDK 28以前向け) | アクティビティ検知結果取得 |
-
位置情報取得権限
プローブデータ収集SDKでは、位置情報を収集します。
位置情報取得には、詳細、と、おおよそ、の二種類がありますが、プローブデータ収集SDKの動作には、詳細、が必要です。
位置情報の権限の詳細はこちらを参照してください。Android位置情報権限:精度
-
アクティビティ取得権限
プローブデータ収集SDKでは、アクティビティ情報を収集します。
アクティビティ情報の取得には、Activity Recognition Transition APIを使用します。
この使用にはアクティビティ情報取得権限が必要です。
アクティビティ情報の詳細はこちらを参照してください。Android:ActivityRecognition
iOS
iOSでは、以下の権限が必要です。
- Info.plistに、以下を追加してください。
Key | 用途 |
---|---|
NSLocationWhenInUseUsageDescription | 位置情報 |
NSLocationAlwaysAndWhenInUseUsageDescription | 位置情報 |
NSMotionUsageDescription | モーションアクティビティ |
UIBackgroundModes | 位置情報 |
- アプリケーション起動後、プローブデータ収集SDKのデータ使用権限を取得してください。このAPIを介して以下のメソッドが呼び出されます。
名称 | 設定・動作 |
---|---|
CMMotionActivityManager.queryActivityStarting(from:to:to:withHandler:) | モーションアクティビティ権限取得アラートを表示する |
CLLocationManager.requestAlwaysAuthorization() | 位置情報権限取得アラートを表示する |
CLLocationManager.allowsBackgroundLocationUpdates | trueを設定する。バックグラウンドでの実行中に位置情報を更新する |
foreground and background
プローブデータ収集SDKは、 ユーザーアプリケーションで以下の設定をすることで、 フォアグラウンド、バックグラウンド、画面OFF状態で動作可能です。
OSごとに以下の設定をしてください。
Android
ユーザーアプリケーションで、フォアグランドサービスを利用してプローブデータ収集SDKを起動してください。
iOS
ユーザーアプリケーションで、以下の設定をしてください。
Usecase
Pioneer プローブデータ収集SDKの詳細な動作をを解説します。
Control
制御用のプローブデータ収集SDK APIを以下に示します。
activate
本APIにより、プローブデータ収集SDKは動作を開始します。
本APIの設定パラメータにより、プローブデータ収集SDKの動作状態を設定できます。
本APIにより、プローブデータ収集SDKは以下の動作を開始します。
- OSからの内部データの収集を開始。
- 配信用タイマーの動作を開始。
- 本API以外のプローブデータ収集SDK APIに対する正常動作を開始。
本APIのパラメータにより、以下の、クラウドサーバへの配信条件を設定できます。
-
配信先クラウドサーバのURL
-
配信周期[秒]
-
配信データに付帯する認証用パラメータ(認証用キー種別と、認証用キー)。
※認証用パラメータが未設定の場合、配信動作は行いません。
※本APIにて認証用パラメータが未設定の場合、updateKeyにて、配信動作を開始できます。
-
配信データ種別で指定するデータ種別だけを配信します。
本APIは、プローブデータ収集SDKの動作を開始する前にのみ有効です。
本APIで設定したパラメータを変更する場合は、一度deactivateでプローブデータ収集SDKを終了して、再度activateをしてください。
本APIの設定パラメータと戻り値の詳細は、Table.4.1.1 ~ Table.4.1.7 を参照してください。
Android:activate
fun sendActivate(){
var request = SdkRequest(
SdkAuthKey(
SdkAuthKey.SDK_APIKEY,
"確保したAPIキー"
),
vehicleId="車両ID",
URL="https://example.com/receive/",
uploadInterval=60,
UploadDataType(
SENSOR_INFO,NAVI_INFO,ROUTE_ACTION_LOG
),
)
val result = sdk.activate(request)
}
iOS:activate
result = sdk.activate(request: .init(
authKey: token != "nil" ? SdkAuthKey(type: .API_KEY, value: token) : nil,
vehicleId: vehicleId != "nil" ? vehicleId : nil,
url: url,
uploadInterval: Int(uploadIntervalString)!,
uploadDataTypes: uploadDataTypes
))
deactivate
本APIにより、プローブデータ収集SDKは動作を終了します。
プローブデータ収集SDKの利用を終了する場合は、必ず本APIを呼び出してください。
本APIは、プローブデータ収集SDKが動作している時のみ有効です。
本APIの戻り値の詳細は、Table.4.1.1 ~ Table.4.1.7 を参照してください。
Android:deactivate
fun sendDeactivate(){
val result = sdk.deactivate()
}
iOS:deactivate
sdk.deactivate()
updateKey
本APIの設定パラメータにより、認証用パラメータを更新することができます。
本APIは、プローブデータ収集SDKが動作している時のみ有効です。
activateで認証用パラメータが未設定の場合は、本APIで定期配信が開始されます。
認証用キー種別は、activate、updateKeyで、同一にしてください。
本APIの設定パラメータと戻り値の詳細は、Table.4.1.1 ~ Table.4.1.7 を参照してください。
Android:updateKey
fun sendUpdateKey(){
val key = SdkAuthKey{
keyType=SdkAuthKey.API_KEY,
keyValue="キーの値",
}
val result = sdk.updateKey(key)
}
iOS:updateKey
result = sdk.updateKey(.init(
type: .API_KEY,
value: key
))
checkHealth
本APIは、プローブデータ収集SDKの動作に必須ではありません。
本APIにより、プローブデータ収集SDKの動作状態の確認ができます。
詳細フラグがfalseの場合は、戻り値のstatusCodeだけが有効で、それ以外の引数は無効です。
詳細フラグがtrueの場合は、全ての引数が有効です。
本APIの設定パラメータと戻り値の詳細は、Table.4.1.1 ~ Table.4.1.7 を参照してください。
Android:checkHealth
fun sendCheckHealth(){
val sdkHealthInfo = sdk.checkHealth(needDetails = true)
if( sdkHealthInfo.statusCode == SdkResult.OK){
//OK時の処理
}
else{
//NG時の処理
if( sdkHealthInfo.xxx == false ){
//xxxがfalse時の処理
}
}
}
iOS:checkHealth
healthInfo = sdk.checkHealth(needDetails: needDetails)
setVehicleId
本APIは、プローブデータ収集SDKの動作に必須ではありません。
本APIによりvehicleId(車両を識別するID)が設定できます。
vehicleIdは、配信データに付帯データとして毎回付与されます。
vehicleIdが未指定の場合でも配信されます。
本APIの設定パラメータと戻り値の詳細は、Table.4.1.1 ~ Table.4.1.7 を参照してください。
Android:setVehicleId
fun sendSetVehicleId(){
val vehicleId = "車両ID番号"
val result = sdk.setVehicleId(vehicleId)
}
iOS:setVehicleId
result = sdk.setVehicleId(vehicleId)
setContext[Androidのみ]
本APIによりプローブデータ収集SDKが使用するcontextを設定します。
本APIはactivate前に必ず設定してください。
Android:setContext
fun onCreate(){
val context : Context = android.content.Context
sdk.setContext(context)
}
requestLocationPermission[iOSのみ]
本APIにより位置情報取得に関する権限を要求します。
本APIはactivate前に必ず設定してください。
iOS:requestLocationPermission
await sdk.requestLocationPermission()
requestActivityPermission[iOSのみ]
本APIによりアクティビティ情報取得に関する権限を要求します。
本APIはactivate前に必ず設定してください。
iOS:requestActivityPermission()
await sdk.requestActivityPermission()
startBackgroundPositioning[iOSのみ]
本APIによりバックグラウンド実行時の位置情報更新を有効にします。
iOS:startBackgroundPositioning()
sdk.startBackgroundPositioning()
stopBackgroundPositioning[iOSのみ]
本APIによりバックグラウンド実行時の位置情報更新を無効にします。
iOS:stopBackgroundPositioning()
sdk.stopBackgroundPositioning()
isBackgroundPositioning[iOSのみ]
本APIによりバックグラウンド実行時の位置情報更新の状態を取得します。
iOS:isBackgroundPositioning()
status = sdk.isBackgroundPositioning()
API name | description | parameter | parameter type | return | 必須・任意 | 補足 |
---|---|---|---|---|---|---|
activate | プローブデータ収集SDKの起動処理 | 配信条件 | request:SdkUploadRequest | SdkResult: OK、ERROR、HAS_ACTIVATED、NOT_PERMITTED | 必須 | 認証パラメータ以外の変更には、 一度deactivateが必要 |
deactivate | プローブデータ収集SDKの終了処理 | none | none | SdkResult: OK、ERROR、NOT_ACTIVATED | 必須 | |
updateKey | クラウドアクセス時に使用する 認証Key情報を設定・更新する | 認証情報 | authKey:SdkAuthKey | SdkResult: OK、ERROR、NOT_ACTIVATED | 任意 | 認証パラメータがactivityで未指定の場合、 本APIで認証パラメータを設定する |
checkHealth | プローブデータ収集SDKの生存確認 | 詳細フラグ | needDetails:BOOL | SdkHealthInfo: SdkHealthInfo.statusCode= OK、ERROR、NOT_ACTIVATED | 任意 | needDetail=true時に、 戻り値のSdkHealthInfoの全項目が有効値となる。 false時には、 SdkHealthInfo.statusCodeのみが有効値で、 他はnullとなる。 |
setVehicleId | 配信時に付帯する車両IDを設定する | 車両ID | vehicleId:String | SdkResult: OK、NOT_ACTIVATED、HAS_REGISTERED | 任意 | vehicleIdが既設定時には、 HAS_REGISTEREDを返す |
setContext (Androidのみ) | コンテキストを設定する | context | context : Context | なし | 必須 | プローブデータ収集SDKのインスタンスの生成後、 かつactivateの前に、本API実行が必須。 |
requestLocationPermission (iOSのみ) | 位置情報の権限を取得する | none | none | SdkResult: OK、NOT_PERMITTED | 必須 | |
requestActivityPermission (iOSのみ) | アクティビティの権限を取得する | none | none | SdkResult: OK、NOT_PERMITTED | 必須 | |
startBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を有効にする | none | none | なし | 任意 | バックグラウンドでの位置情報更新を 有効にしたい場合は必須。 |
stopBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を無効にする | none | none | なし | 任意 | |
isBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を確認する | none | none | Boolean: True=有効、 False=無効 | 任意 |
名称:enum SdkResult | 説明:SDK動作結果 | 備考 |
---|---|---|
OK | 正常動作 | 排他的に利用 |
ERROR | 下記以外のエラー動作 | 排他的に利用 |
HAS_ACTIVATED | SDKが既にActivate済み | 排他的に利用 |
NOT_ACTIVATED | SDKがActivateされていない | 排他的に利用 |
NOT_PERMITTED | OSでの権限が不許可 | 排他的に利用 |
HAS_REGISTERED | 値が既に設定済み | 排他的に利用 |
名称:class SdkUploadRequest | 説明:配信条件 | 備考 | 省略可否 |
---|---|---|---|
authKey: SdkAuthKey? = null | 認証方法に用いる文字列など | 省略可 | |
vehicleId: String? = null | 車両ID | 省略可 | |
url: String | 配信先のURL | 省略不可 | |
uploadInterval: Int | 配信周期[秒] | 省略不可 | |
uploadDataType: List<SdkUploadDataType> | 配信するデータ種別のList | 省略不可 |
名称:enum SdkAuthType | 説明:認証方法 | 備考 |
---|---|---|
TOKEN | Tokenによる認証 | トークン方式は未使用 |
API_KEY | API keyによる認証 |
名称:class SdkAuthKey | 説明 | 備考 | 省略可否 |
---|---|---|---|
type: SdkAuthType | 認証に用いるkeyの種別 | "API_KEY"のみ使用 | 省略不可 |
value: String | 認証に用いるkeyの値 | 省略不可 |
名称:enum SdkUploadDataType | 説明:アップロードデータ種別 | 備考 |
---|---|---|
SENSOR_INFO | センサー情報 (下記のa,b,c,d全て) | 重複指定可 |
NAVI_INFO | ナビ情報 | 重複指定可 |
ROUTE_ACTION_LOG | ルートアクションログ情報 | 重複指定可 |
VEHICLE_INFO | 車両情報 | 重複指定可 |
LOCATION_INFO | 補正後の位置情報 (a) | 重複指定可 |
GNSS_INFO | GNSS位置情報・受信状況 (b) | 重複指定可 |
HW_SENSOR_INFO | 加速度・ジャイロ情報 (c) | 重複指定可 |
ACTIVITY_INFO | アクティビティ情報 (d) | 重複指定可 |
名称:class SdkHealthInfo | 説明:SDKの動作状況 | 備考 |
---|---|---|
statusCode : SdkResult | SDK動作結果 | |
uploadInterval : Int? = null | 配信周期[秒] | needDetails=False時には、NULL |
uploadDataType: List<SdkUploadDataType>? = null | 配信するデータ種別のList | needDetails=False時には、NULL |
authKey: SdkAuthKey? = null | 認証に用いるkeyの種別とkeyの値 | needDetails=False時には、NULL |
vehicleId: String? = null | 車両ID | needDetails=False時には、NULL |
url : String? = null | 配信先のURL | needDetails=False時には、NULL |
isUploading : Boolean? = null | 定期配信のON・OFF | needDetails=False時には、NULL |
connectionStatus : Boolean? =null | 直前の配信の成功・失敗 | needDetails=False時には、NULL |
sensorStatus : Boolean? = null | センサ(加速度・ジャイロ)取得部の動作状態 | needDetails=False時には、NULL |
fusionLocationStatus : Boolean? = null | fusionLocation取得部の動作状態 | needDetails=False時には、NULL |
gnssStatus : Boolean? = null | GNSS取得部の動作状態 (Androidのみ有効) | needDetails=False時には、NULL |
Data Collect
プローブデータ収集SDKの外部データ収集と内部データ収集について説明します。
External Data
データ収集用のAPIを使うことにより外部からのデータをプローブデータ収集SDKに渡すことができます。
それぞれのAPIの詳細は以下の通りです。
なお、外部からのデータ追加はこちらのAPIを介してのみ可能となります。
また、扱えるデータも各APIで扱うパラメータのみです。
addNaviInfo
本APIによりナビ情報(ナビ機能で生成した緯度経度、車両向き、速度など)を追加することができます。
このナビ情報の作成には、パイオニア クラウドナビゲーションSDKから得られる情報が必要となります。
本APIは、プローブデータ収集SDKが動作している時のみ有効です。
本APIの設定パラメータと戻り値の詳細は、Table.4.2.1.1 ~ Table.4.2.1.5、 および Table.4.1.2 ~ Table.4.1.7 を参照してください。
Android:addNaviInfo
fun sendAddNaviInfo(){
val appNaviInfo = AppNaviInfo(
mmLat = 緯度の値
mmLon = 経度の値
speed = 速度の値
dir = 方向の値
...
)
val result = sdk.addNaviInfo(appNaviInfo)
}
iOS:addNaviInfo
result = await sdk.addNaviInfo(.init(
mmLat: Double(mmLatString)!,
mmLon: Double(mmLonString)!,
speed: Double(speedString)!,
direction: Double(directionString)!,
...
))
addRouteActionLog
本APIによりルートアクションログ(案内開始、目的地到着などのアクションとその発生日時位置情報など)を追加することができます。
このルートアクションログの作成には、パイオニア クラウドナビゲーションSDKから得られる情報が必要となります。
本APIは、プローブデータ収集SDKが動作している時のみ有効です。
本APIの設定パラメータと戻り値の詳細は、Table.4.2.1.1 ~ Table.4.2.1.5、 および Table.4.1.2 ~ Table.4.1.7 を参照してください。
Android:addRouteActionLog
fun sendAddRouteActionLog(){
val routeActionLog = RouteActionLog(
actionTime = "2023-01-01T10:10:10Z"
actionType = 1
...
)
val result = sdk.addRouteActionLog(routeActionLog)
}
iOS:addRouteActionLog
result = await sdk.addRouteActionLog(.init(
actionTime: actionTime,
actionType: Int(actionTypeString)!,
...
))
setVehicleInfo
本APIは、プローブデータ収集SDKの動作に必須ではありません。
本APIにより車両情報(エンジンタイプ、排気量、車重など)を追加することができます。
本APIの情報は、クラウドサーバでの誘導情報や燃費計算の精度向上に用います。
本APIは、プローブデータ収集SDKが動作している時のみ有効です。
本APIの設定パラメータと戻り値の詳細は、Table.4.2.1.1 ~ Table.4.2.1.5、 および Table.4.1.2 ~ Table.4.1.7 を参照してください。
Android:setVehicleInfo
fun sendSetVehicleInfo(){
val vehicleInfo = VehicleInfo(
engType = 1,
engModel ="TYPE_A",
...
)
val result = sdk.setVehicleInfo(vehicleInfo)
}
iOS:setVehicleInfo
result = await sdk.setVehicleInfo(.init(
engType: Int(engTypeString)!,
engModel: engModel,
...
))
APIのパラメータと戻り値
ID | API name | description | parameter | parameter type | return | 必須・任意 | 補足 |
---|---|---|---|---|---|---|---|
1 | addNaviInfo | 自車位置が更新された時に、 プローブデータ収集SDKに通知する | ナビ情報 | naviInfo: AppNaviInfo | SdkResult: OK、NOT_ACTIVATED | 必須 | |
2 | addRouteActionLog | ナビルート情報が更新された時に、 プローブデータ収集SDKに通知する | ナビルート情報 | routeActionLog: RouteActionLog | SdkResult: OK、NOT_ACTIVATED | 必須 | |
3 | setVehicleInfo | 車両情報を、 プローブデータ収集SDKに通知する | 車両情報 | vehicleInfo: VehicleInfo | SdkResult: OK、NOT_ACTIVATED | 任意 |
APIの引数
下記のパラメータ(AppNaviInfo, RouteActionLog, PointInfo)の詳細については、別資料(naviCoreSdk API Reference)を参照してください。
名称:class AppNaviInfo | 説明:ユーザーアプリケーションから受領するナビ情報 | 省略可否 | 備考 |
---|---|---|---|
mmLat: Double | [degree]マップマッチング緯度。世界測地系 | 省略不可 | |
mmLon: Double | [degree]マップマッチング経度。世界測地系 | 省略不可 | |
speed: Double | [m/s]走行速度 | 省略不可 | |
onRoad: Boolean | 路上フラグ True:自車位置がオンロード False:自車位置がオフロード | 省略不可 | |
dir: Double | 車両向き [degree] | 省略不可 | 北0度 時計回り正 |
linkKind: Int | リンク種別 0:Roundaboutリンク 1:本線(上下線非分離)リンク 2:本線(上下線分離)リンク 3:連結路(本線間の渡り線)リンク、 4:交差点内リンク 5:連結路(ランプ)リンク 6:本線と同一路線の側道 7:SA等測線リンク | 省略不可 | 無効値の場合-1 |
roadKind: Int | 道路種別 0:高速 1:都市高速 2:国道 3:主要地方道 4:県道 5:一般道路(幹線) 6:一般道路(その他) 7:導入路 8:細街路1 9:細街路2 10:フェリー航路 | 省略不可 | 無効値の場合-1 |
insideTunnel: Boolean | トンネルフラグ True:トンネル内 False:トンネル外 | 省略不可 | |
onHighway: Boolean | 高速道路フラグ True:高速道路走行中 False:高速道路以外を走行中 | 省略不可 | |
tollgateDist: Double? = null | [m]現在位置から料金所までの道なり距離 | 省略可 | |
signalDist: Double? = null | [m]現在位置から信号機までの道なり距離 | 省略可 | |
directDist: Double? = null | [m]現在位置から案内地点までの道なり距離 | 省略可 | |
joinPointDist: Double? = null | [m]現在位置から合流地点までの道なり距離 | 省略可 | |
destDist: Double? = null | [m]現在位置から目的地までの道なり距離 | 省略可 | |
mapVer: String | 地図バージョン | 省略不可 | |
setRoute: Boolean | ルート設定中フラグ。 True:ルートあり False:ルートなし | 省略不可 | |
streetName: String | 道路名称 | 省略不可 | |
streetYomi: String | 道路名称ヨミデータ | 省略不可 | |
linkId: Int | 現在走行中の道路のリンクID | 省略不可 | 無効値の場合-1 |
guidePointId: Int? = null | 案内地点ID 直近案内地点のリンクID | 省略可 | |
passPointId: Int | 通過地点ID 直近通過地点のリンクID | 省略不可 | |
debug: String? = null | デバッグ情報 | 省略可 | |
forward: Boolean | リンク順方向走行フラグ True:リンク格納方向と同方向に走行中 False:リンク格納方向と異なる方向に走行中 | 省略不可 | |
distToNode: Double | [m]現在位置から前方ノードまでの道なり距離 | 省略不可 | |
linkLen: Double | [m] リンク全長 | 省略不可 | |
tileId: Int | 自車位置のタイルID | 省略不可 | |
startX: Double | リンクIDの始点ノードのX座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
startY: Double | リンクIDの始点ノードのY座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
endX: Double | リンクIDの終点ノードのX座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
endY: Double | リンクIDの終点ノードのY座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 |
名称:class RouteActionLog | 説明:ユーザーアプリケーションから受領するナビルート情報 | 省略可否 | 備考 |
---|---|---|---|
actionTime: String | アクション発生時刻 UTC時刻(ISO 8601) | 省略不可 | |
actionType: Int | アクション種別 0:不明 1:出発(案内開始) 2:出発(案内再開) 3:到着 4:新規探索 5:再探索 6:オートリルートまたはルートアドバイザーによるリルート 7:ルート削除 8:自宅探索(Androidのみ) | 省略不可 | |
pointInfo: List<PointInfo> | POI情報配列のリスト。PointInfoを参照。 | 省略不可 | |
estToll: Int? = null | 推測される高速料金[円] | 省略可 | |
fMbrToll: Int? = null | 無料会員ルートの高速料金[円] | 省略可 | |
pMbrToll: Int? = null | 有料会員ルートの高速料金[(円] | 省略可 | |
fMbrFuelCons: Double? = null | 無料会員基準ルートでのガソリン消費量 [L]、EVの場合は[kWh] | 省略可 | |
pMbrFuelCons: Double? = null | 有料会員基準ルートでのガソリン消費量 [L]、EVの場合は[kWh] | 省略可 |
名称:class PointInfo | 説明:アプリから受領するナビルート情報に含まれるPOI情報 | 省略可否 | 備考 |
---|---|---|---|
kind: Int | 地点種別 0:目的地 1:立ち寄り地 2:ルート始点 (地点名称・地点ヨミは省略) 3:ルート削除地点 | 省略不可 | |
index: Int | 地点番号 出発地を0とし、立ち寄る順で番号を付与する | 省略不可 | |
name: String? = null | 地点名称 | 省略可 | |
nameVoice: String? = null | 地点ヨミ。地点名の仮名表記 | 省略可 | |
lat: Double | 地点緯度[degree] 世界測地系 | 省略不可 | |
lon: Double | 地点経度[degree] 世界測地系 | 省略不可 |
名称:class VehicleInfo | 説明:アプリから受領する車両情報 | 省略可否 | 備考 |
---|---|---|---|
engType: Int | 0:「選択しない」/「不明」 1:「ガソリン車」 2:「ディーゼル車」 3:「LPG車」 4:「HV」 5:「PHEV」 6:「EV」 7:「FCEV」 | 省略不可 | |
engModel: String | 車検証に記載の型式 | 省略不可 | |
classificationNum: String | 車検証に記載の類別区分番号 | 省略不可 | |
hasIdlingStop: boolean | アイドリングストップ有無 True:有り False:無し | 省略不可 | EV時はFalse |
engDisplacement: Int | 排気量[cc] | 省略不可 | EV時は-1 |
weight: Int | 車両重量[kg] | 省略不可 | |
width: Int | 車幅[cm] | 省略不可 | |
height: Int | 車高[cm] | 省略不可 | |
maxLoadCapacity: Int | 最大積載量[kg] | 省略不可 | |
actualLoadCapacity: Int | 実積載量[kg] | 省略不可 | |
vehicleId: String | 車両ID 未使用の場合はを以下を指定 "00000000-0000-0000-0000-000000000000" | 省略不可 | |
evBatteryCapacity: Double | EV最大電池量[kWh] | 省略不可 | |
fuelCapacity: Double | ガソリンタンク量[L] | 省略不可 | |
wltc: Double | WLTC値[km/L]。EVの場合は [Wh/km] | 省略不可 |
データリスト(外部データ)
ID | 説明 | データ型 | 値[単位] | 必須/任意 |
---|---|---|---|---|
1 | マップマッチング緯度 | double | [degree] | 必須 |
2 | マップマッチング経度 | double | [degree] | 必須 |
3 | 速度 | double | [m/s]走行速度 | 必須 |
4 | 路上フラグ | int | 0: 自車位置がオフロード、1: 自車位置がオンロード | 必須 |
5 | 車両向き | double | [degree] | 必須 |
6 | リンク種別 | int | 0 Roundaboutリンク 1 本線(上下線非分離)リンク 2 本線(上下線分離)リンク 3 連結路(本線間の渡り線)リンク 4 交差点内リンク 5 連結路(ランプ)リンク 6 本線と同一路線の側道 7 SA等測線リンク | 必須 |
7 | 道路種別 | int | 0:高速 1:都市高速 2:国道 3:主要地方道 4:県道 5:一般道路(幹線) 6:一般道路(その他) 7:導入路 8:細街路1 9:細街路2 10:フェリー航路 | 任意 |
8 | トンネルフラグ | int | 0: トンネル外、1: トンネル内 | 必須 |
9 | 高速道路フラグ | int | 0: 高速道路以外を走行中、1: 高速道路走行中 | 必須 |
10 | 料金所までの距離 | double | [m]現在位置から料金所までの道なり距離 | 任意 |
11 | 信号機までの距離 | double | [m]現在位置から信号機までの道なり距離 | 任意 |
12 | 案内地点までの距離 | double | [m]現在位置から案内地点までの道なり距離 | 任意 |
13 | 合流地点までの距離 | double | [m]現在位置から合流地点までの道なり距離 | 任意 |
14 | 目的地までの距離 | double | [m]現在位置から目的地までの道なり距離 | 任意 |
15 | 地図バージョン | string | 必須 | |
16 | ルート設定フラグ | int | 0: ルートなし、1: ルートあり | 必須 |
17 | 道路名称 | string | 必須 | |
18 | 道路名称ヨミデータ | string | 必須 | |
19 | リンクID | int | 現在走行中の道路のリンクID | 必須 |
20 | 案内地点ID | int | 直近案内地点のリンクID | 任意 |
21 | 通過地点ID | int | 直近通過地点のリンクID | 必須 |
22 | デバッグ情報 | string | 任意 | |
23 | 順方向走行フラグ | int | 0:リンク格納方向と異なる方向に走行中 1:リンク格納方向と同方向に走行中 | 必須 |
24 | 前方ノードまでの距離 | double | [m]現在位置から前方ノードまでの道なり距離 | 必須 |
25 | リンク長 | double | [m] リンク全長 | 必須 |
26 | タイルID | int | 自車位置のタイルID | 必須 |
27 | リンクID始点ノードのX座標 | double | タイル内の正規化座標 | 必須 |
28 | リンクID始点ノードのY座標 | double | タイル内の正規化座標 | 必須 |
29 | リンクID終点ノードのX座標 | double | タイル内の正規化座標 | 必須 |
30 | リンクID終点ノードのY座標 | double | タイル内の正規化座標 | 必須 |
31 | 積算走行距離 | double | [m] SDK起動時点からの積算走行距離 | 必須 |
32 | 区間走行距離 | double | [m] ルートありの間の積算走行距離。ルートなしの場合常に0 | 必須 |
33 | 前回レコードからの走行距離 | double | [m] | 必須 |
34 | 乗車中フラグ | int | 0:乗車中ではない、1:乗車中と判定 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | アクション発生時刻 | string | UTC時刻 (ISO8601) | 必須 |
2 | アクション種別 | int | 0:不明 1:出発(案内開始) 2:出発(案内再開) 3:到着 4:新規探索 5:再探索 6:オートリルートまたはルートアドバイザーによるリルート 7:ルート削除 8:自宅探索(Androidのみ) | 必須 |
3 | POI情報配列 | array | 出発地、目的地、立ち寄り地、等の配列(ID4~9を単位) | 必須 |
4 | ├ 地点種別 | int | 0:目的地 1:立ち寄り地 2:ルート始点 (POI情報配列は地点名称・ヨミは無し) 3:ルート削除地点 | 必須 |
5 | ├ 地点番号 | int | 出発地を0とし、立ち寄る順で番号を付与する | 必須 |
6 | ├ 地点名称 | string | 任意 | |
7 | ├ 地点ヨミ | string | 地点名の仮名表記 | 任意 |
8 | ├ 地点緯度 | int | [degree] 世界測地系 | 必須 |
9 | ├ 地点経度 | int | [degree] 世界測地系 | 必須 |
10 | 推測される高速料金 | int | [円] | 任意 |
11 | 無料会員基準ルートでの高速料金 | int | [円] | 任意 |
12 | 有料会員基準ルートでの高速料金 | int | [円] | 任意 |
13 | 無料会員基準ルートでのガソリン消費量 | int | [L]、EVの場合は[kWh] | 任意 |
14 | 有料会員基準ルートでのガソリン消費量 | int | [L]、EVの場合は[kWh] | 任意 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | エンジンタイプ | int | 0:「選択しない」/「不明」 1:「ガソリン車」 2:「ディーゼル車」 3:「LPG車」 4:「HV」 5:「PHEV」 6:「EV」 7:「FCEV」 | 必須 |
2 | 型式 | string | 例:"ABC-AB1" | 必須 |
3 | 類別区分番号 | string | 例:"0001" | 必須 |
4 | アイドリングストップ有無 | int | 0:無し、1:有り、EVの場合は項目自体無し | 任意 |
5 | 排気量 | int | [cc]、EVの場合は項目自体無し | 任意 |
6 | 車両重量 | int | [kg] | 必須 |
7 | 車幅 | int | [cm] | 必須 |
8 | 車高 | int | [cm] | 必須 |
9 | 最大積載量 | int | [kg] | 必須 |
10 | 実積載量 | int | [kg] | 必須 |
11 | 車両ID | string | UUID | 必須 |
12 | EV最大電池量 | double | [kWh] | 必須 |
13 | ガソリンタンク量 | double | [L] | 必須 |
14 | WLTC値 | double | [km/L]、EVの場合は[Wh/km] | 必須 |
Internal Data
OSからの情報を取得し、プローブデータ収集SDKに渡します。
取得できる内部データと詳細は以下の通りです。
OS情報
OSの種類を取得します。
iOS もしくは Android (もしくは 不明)
0: 不明、1: Android、2: iOS、81: iOSシミュレータ
OSバージョン情報
OSが iOS もしくは Android だった場合、OSのバージョンを取得します。
使用ライブラリ
[Android]
[iOS]
ユーザー識別情報
スマートフォンを識別する番号を、ユーザー識別情報として、配信情報に付帯します。
OS毎に取得方法は異なります。
両OSともに64bit数値の16進数表示の文字列です。36文字。
例) 45fd4b50-57ee-4deb-b7cf-05082ce6fe62 (36文字ハイフン含む)
[Android]
[iOS]
位置情報
fusedLocation
補正後の位置情報 (GPS/GNSS、WiFi基地局情報、携帯電話網基地局情報の組合せ)を取得します。
詳細は Table.4.2.2.8 を参照してください。
使用ライブラリ(緯度・経度)
[Android]
location provider = FUSED_PROVIDER
情報 | library |
---|---|
補正後の位置 緯度 | android.location.Location.getLatitude() |
補正後の位置 経度 | android.location.Location.getLongitude() |
補正後の方位 | android.location.Location.getBearing() |
補正後の高度 | android.location.Location.getAltitude() |
補正後の速度 | android.location.Location.getSpeed() |
[iOS]
情報 | library |
---|---|
補正後の位置 緯度 | var latitude: CLLocationDegrees |
補正後の位置 経度 | var longitude: CLLocationDegrees |
補正後の方位 | var course: CLLocationDirection |
補正後の高度 | var ellipsoidalAltitude: CLLocationDistance |
補正後の速度 | var speed: CLLocationSpeed |
GNSS (※Androidのみ)
GNSSによる位置情報・衛星受信状態を取得します。
位置情報と衛星受信状態の両方が受領できたタイミングで、データを取得します。
詳細は Table.4.2.2.7 を参照してください。
使用ライブラリ
[Android]
location provider = GPS_PROVIDER
慣性センサ情報
エッジ端末のセンサ情報(加速度計、ジャイロ計)を取得します。
加速度とジャイロの両方が受領できたタイミングで、データを取得します。
XYZ方向加速度
エッジ端末の加速度を取得します。
詳細は Table.4.2.2.9 を参照してください。
使用ライブラリ
[Android]
android.hardware.SensorManager.getRotationMatrix()
[iOS]
var userAcceleration: CMAcceleration
回転加速度
エッジ端末のジャイロを取得します。
詳細は Table.4.2.2.9 を参照してください。
使用ライブラリ
[Android]
android.hardware.Sensor.TYPE_GYROSCOPE
[iOS]
var rotationRate: CMRotationRate
アクティビティ情報
アクティビティ情報として、次の2つの値を収集します。
また、上記2つの値から、SDK搭載アルゴリズム^2を用いて活動状況を推定した結果を算出します。
算出結果 | 内容 |
---|---|
ActivityStatus | SDK搭載アルゴリズム^2で求めたActivity |
^1: Activity検知結果:OS標準ライブラリで得られたActivity検知結果(Activityと信頼度)
^2: SDK搭載アルゴリズム:OS標準ライブラリで得られたActivity検知結果から、プローブデータ収集SDK内部でばらつき除去・丸め等をする処理。
Activity と Confidence
OS標準ライブラリで得られるActivity検知結果のActivityとConfidence(信頼度)です。
詳細は Table.4.2.2.10 を参照してください。
使用ライブラリ
[Android]
情報 | library |
---|---|
Activity | android.gms.location.ActivityRecognitionResult.getMostProbableActivity() |
Confidence | android.gms.location.ActivityRecognitionResult.getActivityConfidence() |
注意:上記ライブラリでは、Activityが変化した時のみActivityが取得できます。このため、Activityの変化が無ければ、Activity,Confidenceの取得・配信はありません。
[iOS]
ActivityStatus
OS標準ライブラリで得られるActivity検知結果のActivity、Confidenceから、 SDK搭載アルゴリズムで判定したアクティビティ推定値(動作不明、歩行中、乗車中)を取得します。
注意:[Android] Activityの変化が無くActivityが取得できない場合は、本データの取得・配信はありません。
データリスト(内部データ)
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | GNSS位置 緯度 | double | [degree] | 必須 |
2 | GNSS位置 経度 | double | [degree] | 必須 |
3 | GNSS方位 | double | [degree] デバイスが移動している方向 | 必須 |
4 | GNSS高度 | double | [m] | 必須 |
5 | 捕捉衛星数 | int | 必須 | |
6 | 測位使用衛星数 | int | 必須 | |
7 | 電波強度 | double | [dBHz] | 必須 |
8 | GNSS有効 | int | 0:無効、1:有効 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | 補正後の位置 緯度 | double | [degree] | 必須 |
2 | 補正後の位置 経度 | double | [degree] | 必須 |
3 | 補正後の方位 | double | [degree] デバイスが移動している方向 | 必須 |
4 | 補正後の高度 | double | [m] | 必須 |
5 | 補正後の速度 | double | [m/s] | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1~3 | XYZ方向加速度 | double | [m/s^2]、各xyz方向 座標系はOS依存 | 必須 |
4~6 | 回転加速度 | double | [rad/s]、各xyz軸の回転方向 座標系はOS依存 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | ActivityStatus | int | SDKで判定したアクティビティ 0:動作不明 1:歩行中 2:乗車中 | 必須 |
2 | アクティビティ検知結果 (Activity) | int | OS標準APIで取得したアクティビティ 取り得る値はOS依存 | 必須 |
3 | アクティビティ検知結果 (confidence) | int | OS標準APIで取得したアクティビティの信頼度 取り得る値はOS依存 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | OS情報 | int | 0:不明 1:Android 2:iOS 81:iOSシミュレータ | 必須 |
2 | OSバージョン情報 | string | OSバージョン情報 | 必須 |
3 | ユーザー識別情報 | string | Android:ANDROID_ID(OSから取得) iOS:UUID(OSから取得) | 必須 |
Upload
収集したデータをパイオニア管理のクラウドサーバへ配信します。
配信条件
ユーザーアプリケーションでは、activateの引数にて、以下の配信条件のみが設定可能です。
- 配信先URL
- 配信周期
- 配信データ種別 ( 参照:Table.4.3.1 )
配信データ種別→ 配信する収集データ↓ | SENSOR _INFO | NAVI _INFO | ROUTE _ACTION _LOG | VEHICLE _INFO | LOCATION _INFO | GNSS _INFO | HW _SENSOR _INFO | ACTIVITY _INFO |
---|---|---|---|---|---|---|---|---|
naviInfo | 配信する | |||||||
routeActionLog | 配信する | |||||||
vehicleInfo | 配信する | |||||||
Fused Location | 配信する | 配信する | ||||||
Gnss | 配信する | 配信する | ||||||
Sensor (加速度・ジャイロ) | 配信する | 配信する | ||||||
Activity | 配信する | 配信する |
配信データ量
配信するデータと配信サイズの目安を以下に示します。
データ名 | 配信サイズの目安 (Byte/分) | 通信量算出の想定 (配信周期60秒) | 備考 |
---|---|---|---|
GNSS | 12907 | データ発生1秒ごと | Androidのみ |
FusedLocation | 9113 | データ発生1秒ごと | |
Sensor(加速度・ジャイロ) | 10589 | データ発生1秒ごと | |
Activity | 7080 | データ発生1秒ごと | |
NaviInfo | 34072 | データ受領1秒ごと | |
RouteActionLog | 61 | データ受領 10回/日 | ナビルート操作により増減 |
VehicleInfo | 4 | データ受領 2回/日 |
目安 | 通信量 |
---|---|
1分間当たり | 約18.2KByte |
1か月当たり | 約32MByte |
※ 1か月の想定:1日80分間利用。1か月の走行日数22日間。
配信動作
配信周期の設定範囲は、1秒間~10分間です。( デフォルトは60秒間 )
SDK内部の配信動作は以下の設定 ( Table.4.3.4 ) に基づき動作します。
配信時のリトライに関する項目 | 説明、値 |
---|---|
Httpコネクトタイムアウト | 10秒 |
Readタイムアウト | 10秒 |
Writeタイムアウト | 10秒 |
配信成功基準 | レスポンスのステータスコードが200番台である |
配信失敗時リトライ回数 | 2回 |
リトライ超過時の動作 | [iOS] 次回のタイミングで配信する。(ただし、各データの蓄積可能時間内に限る) [Android] データ破棄。 |
※本リトライ処理は、端末動作のためのものであり、クラウドの動作不具合を考慮したものではありません。
配信データの配信先
配信データは、パイオニア管理のクラウドサーバへ配信します。
具体的にはAmazon AWSクラウドで、Amazon S3の任意のフォルダです。以下の例を参照してください。
-
保存先のパス(S3 URI)
s3://pia-stg-situationawareness-lbs-archive/tmp/archive/company_id=PEC/version=0_0_0/year=yyyy/month=mm/day=dd/
※yyyy/mm/dd はそれぞれ 年/月/日
-
保存形式
parquet
-
データ形式
JSON
配信データの一時保存
配信に失敗した際にデータを保証するため、収集したデータを一時的に蓄積しています。
SDK内のデータ蓄積にはRingBuffer構造を用いています。
各データごとの、バッファ個数、サンプリング時間、蓄積可能時間は下記 ( Table.4.3.5 ) を参照してください。
データ | RingBuffer個数 | サンプリング周期 | 蓄積可能時間 |
---|---|---|---|
GNSS (Androidのみ) | 1200 | 1[s] | 1200[s] |
Fused Location | 1200 | 1[s] | 1200[s] |
Sensor (Accelerometer,Gyroscope) | 1200 | 1[s] | 1200[s] |
Activity | 1200 | 1[s]※ | 1200[s] |
NaviInfo | 100 | アプリから受領 | --- |
RouteActionLog | 100 | アプリから受領 | --- |
VehicleInfo | 1 | アプリから受領 | --- |
※ Androidの場合は、Activityが変化した時にのみデータを収集します。このためサンプリング周期は1[s]とはなりません。
Glossary
名称 | 意味 | |
---|---|---|
プローブデータ収集SDK | 本ドキュメントで説明するPioneer製のモバイル端末向けプローブ情報配信用SDK。 ライブラリの名称として"PredictiveSDK"と呼称します | |
ユーザーアプリケーション | ユーザーが開発する、モバイル端末向けアプリケーションプロブラム | |
クラウドサーバ | プローブデータ収集SDKが配信データを配信する際に利用するクラウドサービス | |
プローブデータ収集SDK API | ユーザーアプリケーションが、プローブデータ収集SDKを制御するためのApplication Program Interface | |
プローブデータ | プローブデータ収集SDKが収集してクラウドサーバに配信する情報。 ユーザーアプリケーションから収集する外部データと、モバイル端末から収集する内部データ、の2種類 | |
収集データ | プローブデータ収集SDKが、収集するプローブデータ。 ユーザーアプリケーションからAPI経由で収集。または、モバイル端末から標準ライブラリ経由で収集。 | |
配信データ | プローブデータ収集SDKがクラウドサーバに配信するプローブデータ | |
付帯データ | 配信データに付帯してクラウドサーバへ送信される制御のためのデータ | |
ユーザー識別情報 | ユーザーを識別するための情報。モバイル端末から取得する。 AndroidではANDROID_ID。iOSでは、UUID。 | |
認証用パラメータ | プローブデータ収集SDKが配信データを配信する際に付帯する認証用のデータ | |
認証用キー種別 | プローブデータ収集SDKがプローブデータを配信する際に付帯する認証用パラメータを指定する種別。APIキー方式のみ有効 | |
APIキー方式 | プローブデータ収集SDKがプローブデータを配信する際の認証パラメータにAPIキーを用いる場合の認証キー種別 | |
認証用キー | プローブデータ収集SDKがプローブデータを配信する際の認証用キー。APIキーの値 具体的なAPIキー(文字列)については営業窓口までお問い合わせください。 | |
外部データ | プローブデータ収集SDKが、ユーザーアプリケーションから、APIを介して収集するプローブデータ。 ナビ情報、ルート設定情報、車両情報 | |
ナビ情報 | ユーザーアプリケーションから、APIを介して収集する、ナビゲーションに関するの情報。外部データの一つ | |
ルート設定情報 | ユーザーアプリケーションから、APIを介して収集する、ルート設定に関する情報。外部データの一つ | |
車両情報 | ユーザーアプリケーションから、APIを介して収集する、車両に関する情報。外部データの一つ | |
内部データ | プローブデータ収集SDKが、モバイル端末から収集するプローブデータ。 FusedLocation、GNSS情報、加速度・ジャイロ情報、アクティビティ情報。 | |
FusedLocation | OS標準ライブラリで得られる補正後の位置情報。内部データの一つ | |
GNSS情報 | OS標準ライブラリで得られるGNSSの位置情報、衛星受信状態。内部データの一つ。 Androidのみ。iOSでは無し。 | |
加速度・ジャイロ情報 | OS標準ライブラリで得られるモバイル端末の加速度・ジャイロ情報。内部データの一つ | |
アクティビティ情報 | OS標準ライブラリで得られるアクティビティ情報。内部データの一つ | |
ActivityStatus | アクティビティ情報から、プローブデータ収集SDKの搭載アルゴリズムで判定したアクティビティ情報。内部データを基に生成したデータ | |
制御パラメータ | プローブデータ収集SDKの動作を設定するために制御用APIで設定されるパラメータ | |
UUID | Universally Unique Identifier. | |
クラウドナビゲーションSDK | パイオニア製のクラウド環境と連係動作するナビゲーションシステムのSDK | |
配信データ種別 | 収集データをクラウドサーバへ配信する際に、配信するデータを指定するデータ種別 | |
データリスト | プローブデータ収集SDKが、クラウドサーバに配信するプローブデータのリスト |
API Reference
API name | description | parameter | parameter type | return | 必須・任意 | 補足 |
---|---|---|---|---|---|---|
activate | プローブデータ収集SDKの起動処理 | 配信条件 | request:SdkUploadRequest | SdkResult: OK、ERROR、HAS_ACTIVATED、NOT_PERMITTED | 必須 | 認証パラメータ以外の変更には、 一度deactivateが必要 |
deactivate | プローブデータ収集SDKの終了処理 | none | none | SdkResult: OK、ERROR、NOT_ACTIVATED | 必須 | |
updateKey | クラウドアクセス時に使用する 認証Key情報を設定・更新する | 認証情報 | authKey:SdkAuthKey | SdkResult: OK、ERROR、NOT_ACTIVATED | 任意 | 認証パラメータがactivityで未指定の場合、 本APIで認証パラメータを設定する |
checkHealth | プローブデータ収集SDKの生存確認 | 詳細フラグ | needDetails:BOOL | SdkHealthInfo: SdkHealthInfo.statusCode= OK、ERROR、NOT_ACTIVATED | 任意 | needDetail=true時に、 戻り値のSdkHealthInfoの全項目が有効値となる。 false時には、 SdkHealthInfo.statusCodeのみが有効値で、 他はnullとなる。 |
setVehicleId | 配信時に付帯する車両IDを設定する | 車両ID | vehicleId:String | SdkResult: OK、NOT_ACTIVATED、HAS_REGISTERED | 任意 | vehicleIdが既設定時には、 HAS_REGISTEREDを返す |
setContext (Androidのみ) | コンテキストを設定する | context | context : Context | なし | 必須 | プローブデータ収集SDKのインスタンスの生成後、 かつactivateの前に、本API実行が必須。 |
requestLocationPermission (iOSのみ) | 位置情報の権限を取得する | none | none | SdkResult: OK、NOT_PERMITTED | 必須 | |
requestActivityPermission (iOSのみ) | アクティビティの権限を取得する | none | none | SdkResult: OK、NOT_PERMITTED | 必須 | |
startBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を有効にする | none | none | なし | 任意 | バックグラウンドでの位置情報更新を 有効にしたい場合は必須。 |
stopBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を無効にする | none | none | なし | 任意 | |
isBackgroundPositioning (iOSのみ) | バックグラウンド実行時の 位置情報更新を確認する | none | none | Boolean: True=有効、 False=無効 | 任意 |
ID | API name | description | parameter | parameter type | return | 必須・任意 | 補足 |
---|---|---|---|---|---|---|---|
1 | addNaviInfo | 自車位置が更新された時に、 プローブデータ収集SDKに通知する | ナビ情報 | naviInfo: AppNaviInfo | SdkResult: OK、NOT_ACTIVATED | 必須 | |
2 | addRouteActionLog | ナビルート情報が更新された時に、 プローブデータ収集SDKに通知する | ナビルート情報 | routeActionLog: RouteActionLog | SdkResult: OK、NOT_ACTIVATED | 必須 | |
3 | setVehicleInfo | 車両情報を、 プローブデータ収集SDKに通知する | 車両情報 | vehicleInfo: VehicleInfo | SdkResult: OK、NOT_ACTIVATED | 任意 |
名称:enum SdkResult | 説明:SDK動作結果 | 備考 |
---|---|---|
OK | 正常動作 | 排他的に利用 |
ERROR | 下記以外のエラー動作 | 排他的に利用 |
HAS_ACTIVATED | SDKが既にActivate済み | 排他的に利用 |
NOT_ACTIVATED | SDKがActivateされていない | 排他的に利用 |
NOT_PERMITTED | OSでの権限が不許可 | 排他的に利用 |
HAS_REGISTERED | 値が既に設定済み | 排他的に利用 |
名称:class SdkUploadRequest | 説明:配信条件 | 備考 | 省略可否 |
---|---|---|---|
authKey: SdkAuthKey? = null | 認証方法に用いる文字列など | 省略可 | |
vehicleId: String? = null | 車両ID | 省略可 | |
url: String | 配信先のURL | 省略不可 | |
uploadInterval: Int | 配信周期[秒] | 省略不可 | |
uploadDataType: List<SdkUploadDataType> | 配信するデータ種別のList | 省略不可 |
名称:enum SdkAuthType | 説明:認証方法 | 備考 |
---|---|---|
TOKEN | Tokenによる認証 | トークン方式は未使用 |
API_KEY | API keyによる認証 |
名称:class SdkAuthKey | 説明 | 備考 | 省略可否 |
---|---|---|---|
type: SdkAuthType | 認証に用いるkeyの種別 | "API_KEY"のみ使用 | 省略不可 |
value: String | 認証に用いるkeyの値 | 省略不可 |
名称:enum SdkUploadDataType | 説明:アップロードデータ種別 | 備考 |
---|---|---|
SENSOR_INFO | センサー情報 (下記のa,b,c,d全て) | 重複指定可 |
NAVI_INFO | ナビ情報 | 重複指定可 |
ROUTE_ACTION_LOG | ルートアクションログ情報 | 重複指定可 |
VEHICLE_INFO | 車両情報 | 重複指定可 |
LOCATION_INFO | 補正後の位置情報 (a) | 重複指定可 |
GNSS_INFO | GNSS位置情報・受信状況 (b) | 重複指定可 |
HW_SENSOR_INFO | 加速度・ジャイロ情報 (c) | 重複指定可 |
ACTIVITY_INFO | アクティビティ情報 (d) | 重複指定可 |
名称:class SdkHealthInfo | 説明:SDKの動作状況 | 備考 |
---|---|---|
statusCode : SdkResult | SDK動作結果 | |
uploadInterval : Int? = null | 配信周期[秒] | needDetails=False時には、NULL |
uploadDataType: List<SdkUploadDataType>? = null | 配信するデータ種別のList | needDetails=False時には、NULL |
authKey: SdkAuthKey? = null | 認証に用いるkeyの種別とkeyの値 | needDetails=False時には、NULL |
vehicleId: String? = null | 車両ID | needDetails=False時には、NULL |
url : String? = null | 配信先のURL | needDetails=False時には、NULL |
isUploading : Boolean? = null | 定期配信のON・OFF | needDetails=False時には、NULL |
connectionStatus : Boolean? =null | 直前の配信の成功・失敗 | needDetails=False時には、NULL |
sensorStatus : Boolean? = null | センサ(加速度・ジャイロ)取得部の動作状態 | needDetails=False時には、NULL |
fusionLocationStatus : Boolean? = null | fusionLocation取得部の動作状態 | needDetails=False時には、NULL |
gnssStatus : Boolean? = null | GNSS取得部の動作状態 (Androidのみ有効) | needDetails=False時には、NULL |
名称:class AppNaviInfo | 説明:ユーザーアプリケーションから受領するナビ情報 | 省略可否 | 備考 |
---|---|---|---|
mmLat: Double | [degree]マップマッチング緯度。世界測地系 | 省略不可 | |
mmLon: Double | [degree]マップマッチング経度。世界測地系 | 省略不可 | |
speed: Double | [m/s]走行速度 | 省略不可 | |
onRoad: Boolean | 路上フラグ True:自車位置がオンロード False:自車位置がオフロード | 省略不可 | |
dir: Double | 車両向き [degree] | 省略不可 | 北0度 時計回り正 |
linkKind: Int | リンク種別 0:Roundaboutリンク 1:本線(上下線非分離)リンク 2:本線(上下線分離)リンク 3:連結路(本線間の渡り線)リンク、 4:交差点内リンク 5:連結路(ランプ)リンク 6:本線と同一路線の側道 7:SA等測線リンク | 省略不可 | 無効値の場合-1 |
roadKind: Int | 道路種別 0:高速 1:都市高速 2:国道 3:主要地方道 4:県道 5:一般道路(幹線) 6:一般道路(その他) 7:導入路 8:細街路1 9:細街路2 10:フェリー航路 | 省略不可 | 無効値の場合-1 |
insideTunnel: Boolean | トンネルフラグ True:トンネル内 False:トンネル外 | 省略不可 | |
onHighway: Boolean | 高速道路フラグ True:高速道路走行中 False:高速道路以外を走行中 | 省略不可 | |
tollgateDist: Double? = null | [m]現在位置から料金所までの道なり距離 | 省略可 | |
signalDist: Double? = null | [m]現在位置から信号機までの道なり距離 | 省略可 | |
directDist: Double? = null | [m]現在位置から案内地点までの道なり距離 | 省略可 | |
joinPointDist: Double? = null | [m]現在位置から合流地点までの道なり距離 | 省略可 | |
destDist: Double? = null | [m]現在位置から目的地までの道なり距離 | 省略可 | |
mapVer: String | 地図バージョン | 省略不可 | |
setRoute: Boolean | ルート設定中フラグ。 True:ルートあり False:ルートなし | 省略不可 | |
streetName: String | 道路名称 | 省略不可 | |
streetYomi: String | 道路名称ヨミデータ | 省略不可 | |
linkId: Int | 現在走行中の道路のリンクID | 省略不可 | 無効値の場合-1 |
guidePointId: Int? = null | 案内地点ID 直近案内地点のリンクID | 省略可 | |
passPointId: Int | 通過地点ID 直近通過地点のリンクID | 省略不可 | |
debug: String? = null | デバッグ情報 | 省略可 | |
forward: Boolean | リンク順方向走行フラグ True:リンク格納方向と同方向に走行中 False:リンク格納方向と異なる方向に走行中 | 省略不可 | |
distToNode: Double | [m]現在位置から前方ノードまでの道なり距離 | 省略不可 | |
linkLen: Double | [m] リンク全長 | 省略不可 | |
tileId: Int | 自車位置のタイルID | 省略不可 | |
startX: Double | リンクIDの始点ノードのX座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
startY: Double | リンクIDの始点ノードのY座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
endX: Double | リンクIDの終点ノードのX座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 | |
endY: Double | リンクIDの終点ノードのY座標 (リンクIDの原点に対応した相対値で単位なし、0~1) | 省略不可 |
名称:class RouteActionLog | 説明:ユーザーアプリケーションから受領するナビルート情報 | 省略可否 | 備考 |
---|---|---|---|
actionTime: String | アクション発生時刻 UTC時刻(ISO 8601) | 省略不可 | |
actionType: Int | アクション種別 0:不明 1:出発(案内開始) 2:出発(案内再開) 3:到着 4:新規探索 5:再探索 6:オートリルートまたはルートアドバイザーによるリルート 7:ルート削除 8:自宅探索(Androidのみ) | 省略不可 | |
pointInfo: List<PointInfo> | POI情報配列のリスト。PointInfoを参照。 | 省略不可 | |
estToll: Int? = null | 推測される高速料金[円] | 省略可 | |
fMbrToll: Int? = null | 無料会員ルートの高速料金[円] | 省略可 | |
pMbrToll: Int? = null | 有料会員ルートの高速料金[(円] | 省略可 | |
fMbrFuelCons: Double? = null | 無料会員基準ルートでのガソリン消費量 [L]、EVの場合は[kWh] | 省略可 | |
pMbrFuelCons: Double? = null | 有料会員基準ルートでのガソリン消費量 [L]、EVの場合は[kWh] | 省略可 |
名称:class PointInfo | 説明:アプリから受領するナビルート情報に含まれるPOI情報 | 省略可否 | 備考 |
---|---|---|---|
kind: Int | 地点種別 0:目的地 1:立ち寄り地 2:ルート始点 (地点名称・地点ヨミは省略) 3:ルート削除地点 | 省略不可 | |
index: Int | 地点番号 出発地を0とし、立ち寄る順で番号を付与する | 省略不可 | |
name: String? = null | 地点名称 | 省略可 | |
nameVoice: String? = null | 地点ヨミ。地点名の仮名表記 | 省略可 | |
lat: Double | 地点緯度[degree] 世界測地系 | 省略不可 | |
lon: Double | 地点経度[degree] 世界測地系 | 省略不可 |
名称:class VehicleInfo | 説明:アプリから受領する車両情報 | 省略可否 | 備考 |
---|---|---|---|
engType: Int | 0:「選択しない」/「不明」 1:「ガソリン車」 2:「ディーゼル車」 3:「LPG車」 4:「HV」 5:「PHEV」 6:「EV」 7:「FCEV」 | 省略不可 | |
engModel: String | 車検証に記載の型式 | 省略不可 | |
classificationNum: String | 車検証に記載の類別区分番号 | 省略不可 | |
hasIdlingStop: boolean | アイドリングストップ有無 True:有り False:無し | 省略不可 | EV時はFalse |
engDisplacement: Int | 排気量[cc] | 省略不可 | EV時は-1 |
weight: Int | 車両重量[kg] | 省略不可 | |
width: Int | 車幅[cm] | 省略不可 | |
height: Int | 車高[cm] | 省略不可 | |
maxLoadCapacity: Int | 最大積載量[kg] | 省略不可 | |
actualLoadCapacity: Int | 実積載量[kg] | 省略不可 | |
vehicleId: String | 車両ID 未使用の場合はを以下を指定 "00000000-0000-0000-0000-000000000000" | 省略不可 | |
evBatteryCapacity: Double | EV最大電池量[kWh] | 省略不可 | |
fuelCapacity: Double | ガソリンタンク量[L] | 省略不可 | |
wltc: Double | WLTC値[km/L]。EVの場合は [Wh/km] | 省略不可 |
Data List
ID | 説明 | データ型 | 値[単位] | 必須/任意 |
---|---|---|---|---|
1 | マップマッチング緯度 | double | [degree] | 必須 |
2 | マップマッチング経度 | double | [degree] | 必須 |
3 | 速度 | double | [m/s]走行速度 | 必須 |
4 | 路上フラグ | int | 0: 自車位置がオフロード、1: 自車位置がオンロード | 必須 |
5 | 車両向き | double | [degree] | 必須 |
6 | リンク種別 | int | 0 Roundaboutリンク 1 本線(上下線非分離)リンク 2 本線(上下線分離)リンク 3 連結路(本線間の渡り線)リンク 4 交差点内リンク 5 連結路(ランプ)リンク 6 本線と同一路線の側道 7 SA等測線リンク | 必須 |
7 | 道路種別 | int | 0:高速 1:都市高速 2:国道 3:主要地方道 4:県道 5:一般道路(幹線) 6:一般道路(その他) 7:導入路 8:細街路1 9:細街路2 10:フェリー航路 | 任意 |
8 | トンネルフラグ | int | 0: トンネル外、1: トンネル内 | 必須 |
9 | 高速道路フラグ | int | 0: 高速道路以外を走行中、1: 高速道路走行中 | 必須 |
10 | 料金所までの距離 | double | [m]現在位置から料金所までの道なり距離 | 任意 |
11 | 信号機までの距離 | double | [m]現在位置から信号機までの道なり距離 | 任意 |
12 | 案内地点までの距離 | double | [m]現在位置から案内地点までの道なり距離 | 任意 |
13 | 合流地点までの距離 | double | [m]現在位置から合流地点までの道なり距離 | 任意 |
14 | 目的地までの距離 | double | [m]現在位置から目的地までの道なり距離 | 任意 |
15 | 地図バージョン | string | 必須 | |
16 | ルート設定フラグ | int | 0: ルートなし、1: ルートあり | 必須 |
17 | 道路名称 | string | 必須 | |
18 | 道路名称ヨミデータ | string | 必須 | |
19 | リンクID | int | 現在走行中の道路のリンクID | 必須 |
20 | 案内地点ID | int | 直近案内地点のリンクID | 任意 |
21 | 通過地点ID | int | 直近通過地点のリンクID | 必須 |
22 | デバッグ情報 | string | 任意 | |
23 | 順方向走行フラグ | int | 0:リンク格納方向と異なる方向に走行中 1:リンク格納方向と同方向に走行中 | 必須 |
24 | 前方ノードまでの距離 | double | [m]現在位置から前方ノードまでの道なり距離 | 必須 |
25 | リンク長 | double | [m] リンク全長 | 必須 |
26 | タイルID | int | 自車位置のタイルID | 必須 |
27 | リンクID始点ノードのX座標 | double | タイル内の正規化座標 | 必須 |
28 | リンクID始点ノードのY座標 | double | タイル内の正規化座標 | 必須 |
29 | リンクID終点ノードのX座標 | double | タイル内の正規化座標 | 必須 |
30 | リンクID終点ノードのY座標 | double | タイル内の正規化座標 | 必須 |
31 | 積算走行距離 | double | [m] SDK起動時点からの積算走行距離 | 必須 |
32 | 区間走行距離 | double | [m] ルートありの間の積算走行距離。ルートなしの場合常に0 | 必須 |
33 | 前回レコードからの走行距離 | double | [m] | 必須 |
34 | 乗車中フラグ | int | 0:乗車中ではない、1:乗車中と判定 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | アクション発生時刻 | string | UTC時刻 (ISO8601) | 必須 |
2 | アクション種別 | int | 0:不明 1:出発(案内開始) 2:出発(案内再開) 3:到着 4:新規探索 5:再探索 6:オートリルートまたはルートアドバイザーによるリルート 7:ルート削除 8:自宅探索(Androidのみ) | 必須 |
3 | POI情報配列 | array | 出発地、目的地、立ち寄り地、等の配列(ID4~9を単位) | 必須 |
4 | ├ 地点種別 | int | 0:目的地 1:立ち寄り地 2:ルート始点 (POI情報配列は地点名称・ヨミは無し) 3:ルート削除地点 | 必須 |
5 | ├ 地点番号 | int | 出発地を0とし、立ち寄る順で番号を付与する | 必須 |
6 | ├ 地点名称 | string | 任意 | |
7 | ├ 地点ヨミ | string | 地点名の仮名表記 | 任意 |
8 | ├ 地点緯度 | int | [degree] 世界測地系 | 必須 |
9 | ├ 地点経度 | int | [degree] 世界測地系 | 必須 |
10 | 推測される高速料金 | int | [円] | 任意 |
11 | 無料会員基準ルートでの高速料金 | int | [円] | 任意 |
12 | 有料会員基準ルートでの高速料金 | int | [円] | 任意 |
13 | 無料会員基準ルートでのガソリン消費量 | int | [L]、EVの場合は[kWh] | 任意 |
14 | 有料会員基準ルートでのガソリン消費量 | int | [L]、EVの場合は[kWh] | 任意 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | エンジンタイプ | int | 0:「選択しない」/「不明」 1:「ガソリン車」 2:「ディーゼル車」 3:「LPG車」 4:「HV」 5:「PHEV」 6:「EV」 7:「FCEV」 | 必須 |
2 | 型式 | string | 例:"ABC-AB1" | 必須 |
3 | 類別区分番号 | string | 例:"0001" | 必須 |
4 | アイドリングストップ有無 | int | 0:無し、1:有り、EVの場合は項目自体無し | 任意 |
5 | 排気量 | int | [cc]、EVの場合は項目自体無し | 任意 |
6 | 車両重量 | int | [kg] | 必須 |
7 | 車幅 | int | [cm] | 必須 |
8 | 車高 | int | [cm] | 必須 |
9 | 最大積載量 | int | [kg] | 必須 |
10 | 実積載量 | int | [kg] | 必須 |
11 | 車両ID | string | UUID | 必須 |
12 | EV最大電池量 | double | [kWh] | 必須 |
13 | ガソリンタンク量 | double | [L] | 必須 |
14 | WLTC値 | double | [km/L]、EVの場合は[Wh/km] | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | GNSS位置 緯度 | double | [degree] | 必須 |
2 | GNSS位置 経度 | double | [degree] | 必須 |
3 | GNSS方位 | double | [degree] デバイスが移動している方向 | 必須 |
4 | GNSS高度 | double | [m] | 必須 |
5 | 捕捉衛星数 | int | 必須 | |
6 | 測位使用衛星数 | int | 必須 | |
7 | 電波強度 | double | [dBHz] | 必須 |
8 | GNSS有効 | int | 0:無効、1:有効 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | 補正後の位置 緯度 | double | [degree] | 必須 |
2 | 補正後の位置 経度 | double | [degree] | 必須 |
3 | 補正後の方位 | double | [degree] デバイスが移動している方向 | 必須 |
4 | 補正後の高度 | double | [m] | 必須 |
5 | 補正後の速度 | double | [m/s] | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1~3 | XYZ方向加速度 | double | [m/s^2]、各xyz方向 座標系はOS依存 | 必須 |
4~6 | 回転加速度 | double | [rad/s]、各xyz軸の回転方向 座標系はOS依存 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | ActivityStatus | int | SDKで判定したアクティビティ 0:動作不明 1:歩行中 2:乗車中 | 必須 |
2 | アクティビティ検知結果 (Activity) | int | OS標準APIで取得したアクティビティ 取り得る値はOS依存 | 必須 |
3 | アクティビティ検知結果 (confidence) | int | OS標準APIで取得したアクティビティの信頼度 取り得る値はOS依存 | 必須 |
ID | データ種別 | データ型 | 値 [単位] | 必須/任意 |
---|---|---|---|---|
1 | OS情報 | int | 0:不明 1:Android 2:iOS 81:iOSシミュレータ | 必須 |
2 | OSバージョン情報 | string | OSバージョン情報 | 必須 |
3 | ユーザー識別情報 | string | Android:ANDROID_ID(OSから取得) iOS:UUID(OSから取得) | 必須 |
License
プローブ収集SDKには以下のサードパーティのライブラリが組み込まれています。
[Android] |
---|
Koin |
Room |
Okhttp |
[iOS] |
---|
Swinject |
GzipSwift |
[Android]
Koin
Source: https://github.com/InsertKoinIO/koin
License
Koin:License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2017-2023 Arnaud GIULIANI
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Room
Source: https://github.com/androidx-releases/Room
License
Room:License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Okhttp
Source: https://github.com/square/okhttp
License
Okhttp:License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
[iOS]
Swinject
Source: https://github.com/Swinject/Swinject
License
Swinject:License
The MIT License (MIT)
Copyright (c) 2015 Swinject Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
GzipSwift
Source: https://github.com/1024jp/GzipSwift
License
GzipSwift:License
The MIT License (MIT)
Copyright (c) 2014-2023 1024jp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.