日本向けAir SIM
日本向けAir SIMでは Cell ID と Location Area Code はデバイスから AT コマンド "AT+CGREG=2" と "AT+CGREG?" を実行することにより、無線設備のネットワーク機能として取得できる場合があります。
AT+CGREG=2
OK
AT+CGREG? +CGREG: 0, 1, "0021", "0404404F", 4
上記の場合では "0021" が Location Area Code、 "0404404F" を 16 進数から 10 進数に変換した値が Cell ID です。
plan-D および plan-K の Air SIM を挿入したデバイスが LTE で通信している場合は SIM のセッションデータから取得することもできます。この場合は以下のような取得方法があります。
- soracom-cli の subscribers コマンド
soracom subscribers get --imsi <IMSI> - SORACOM API, getSubscriber
- Air SIM を挿入したデバイスからメタデータサービスにアクセスする
http://metadata.soracom.io/v1/subscriber
上記の手段から取得できる以下のような JSON 形式のデータの中から "sessionStatus" にある "tac" と "eci" を参照してください。
"sessionStatus": {
"lastUpdatedAt": 1543371378381,
"imei": "xxxxxxxxxxxxxxx",
"location": null,
"cell": {
"radioType": "lte",
"mcc": 440,
"mnc": 10,
"tac": 0021,
"eci": 0404404F
},
これらの情報に SIM の MCC と MNC を加えて Google 社から提供されている Google Maps Geolocation API や、Unwired Labs 社が管理している opencellid.org などを利用すると、デバイスのおおよその位置情報を取得できます。日本国内向けの Air SIM の MCC と MNC は以下のとおりです
- plan-D: MCC 440 /MNC 10
- plan-K: MCC 440 /MNC 51
上記の MNC は将来的に出荷される SIM で予告なく変更・追加される可能性がありますので、セッション情報から取得することを推奨します。
なお、本機能は位置情報を必ず取得できることを約束するものではありません。ご利用の場所によってはデータ通信は問題なく利用できていても、基地局から得られる情報が不足してるケースや上記のような基地局情報から位置情報に変換してくれる Web サービス側のデータベースで基地局の情報が登録されていない場合などがあります。
より確実に、精度の高い位置情報の取得したいユースケースの場合はデバイス側に GPS を組み込むことを推奨します。
また現時点では plan-KM1 では基地局情報を元にした位置情報の取得はできません。
グローバル向けAir SIM
グローバル向けAir SIMでは現地の通信事業者ごとのネットワーク機能に依存いたしますので、利用を想定されている環境で実際にテストを実施ください。取得できる環境では上記の日本向け Air SIM と同様の手法をお試しください。
また、いずれの SIM をご利用いただく場合でもデバイスで利用できる AT コマンドはそのデバイス側の実装に依存します。ご利用のデバイスで上記の AT コマンドが正常に動作しない場合は、デバイスの開発元にご相談ください。