Soracom

Users

ドキュメント

簡易位置測位機能のデータフォーマット

簡易位置測位機能 は以下のデータフォーマットで位置情報を連携できます。

Unified Endpoint のエンドポイントを利用してください。Beam / Funnel / Funk / Harvest 個別のエンドポイント経由では位置情報が連携されません。LTE-M Button for Enterprise , LTE-M Button Plus をご利用の場合、送信先は Unified Endpoint に固定されているため、特に意識する必要はありません。

Beam 

Beam と連携を行う場合、HTTP(S) ヘッダーに以下のフォーマットで位置情報が連携されます。

x-soracom-geo-position: 緯度;経度
x-soracom-geo-postion-query-result: (success | not-found | error)

Funnel 

Funnel と連携を行う場合、クラウドサービスに送信されるデータは以下のようなフォーマットで位置情報が連携されます。

{
  "operatorid": "ソラコムのアカウントID",
  "timestamp": "funnelがデータを受け取った日時(unix time)",
  "destination": {
    "resourceUrl": "送信先クラウドサービスのURL",
    "service": "(aws-iot|kinesis|firehose|eventhubs|pubsub)",
    "provider": "(aws|azure|google)"
  },
  "credentialId": "ソラコムの認証情報のID",
  "payloads": "送信されたデータ本体",
  "sourceProtocol": "(tcp|udp|http|sigfox|lora|unspecified)",
  "imsi": "送信元のSIMのIMSI",
  "location": {
    "lat": 緯度,
    "lon": 経度
  },
  "locationQueryResult": "(success|error|not-found)"
}

Funk 

Funk と連携を行う場合、クラウドサービスに送信されるデータは以下のようなフォーマットで位置情報が連携されます。

AWS Lambda 

context として以下のデータフォーマットが設定されます。Python ランタイムの場合 Lambda context オブジェクト 内の client_context.custom に以下のような JSON を元にした dict が格納されます。

{
  "custom": {
    "srn": "ソラコムリソースネーム",
    "operatorId": "ソラコムのアカウントID",
    "sourceProtocol": "送信元プロトコル",
    "resourceId": "リソースID",
    "resourceType": "リソースタイプ",
    "imsi": "IMSI",
    "imei": "IMEI",
    "coverage": "(jp|global)",
    "location": {
      "lat": 緯度,
      "lon": 経度
    },
    "locationQueryResult": "(success|error|not-found)"
  }
}

Azure Functions / Google Cloud Functions 

リクエストの x-soracom-token に JWT 形式で書かれたトークン内に位置情報が追加されます。JWT をデコード・展開すると以下のような記載があることを確認できます。

{
  ...
  "location": {
       "lat": "緯度",
       "lon": "経度"
  },
  "locationQueryResult": "(success|error|not-found)"
  ...
}

SORACOM Funk で渡される x-soracom-token トークンの詳細は SORACOM Funk のトークンを検証する をご確認ください。

Harvest 

Harvest と連携を行う場合、[一次処理済みデータ] として以下のようなフォーマットで位置情報が連携されます。

{
  "content": "ユーザーデータ",
  "contentType": "application/json",
  "time": "タイムスタンプ",
  "$metadata": {
    "location": {
        "lat": "緯度",
        "lon": "経度"
    },
    "locationQueryResult": "(success|error|not-found)"
  }
}