特定地域向け IoT SIM
特定地域向け IoT 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、および plan-K2 の IoT SIM を挿入したデバイスが 4G で通信している場合は SIM のセッションデータからも取得できます。この場合は以下のような取得方法があります。
-
soracom-cli の subscribers コマンド
soracom subscribers get --imsi <IMSI> - Subscriber:getSubscriber API
- IoT 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 などを利用すると、デバイスのおおよその位置情報を取得できます。特定地域向け IoT SIM の MCC と MNC は以下のとおりです
- plan-D、plan-DU: MCC 440 /MNC 10
- plan-K、plan-K2: MCC 440 /MNC 51
上記の MNC は将来的に出荷される SIM で予告なく変更・追加される可能性がありますので、セッション情報から取得することを推奨します。
なお、本機能は位置情報を必ず取得できることを約束するものではありません。ご利用の場所によってはデータ通信は問題なく利用できていても、基地局から得られる情報が不足してるケースや上記のような基地局情報から位置情報に変換してくれる Web サービス側のデータベースで基地局の情報が登録されていない場合などがあります。
より確実に、精度の高い位置情報の取得したいユースケースの場合はデバイス側に GPS を組み込むことを推奨します。
なお、plan-KM1 においては デバイスの簡易的な位置情報 (簡易位置測位機能) を SORACOM Beam / Funnel / Funk / Harvest Data に送信できます。
SORACOM IoT SIM
SORACOM IoT SIM では現地の通信事業者ごとのネットワーク機能に依存いたしますので、利用を想定されている環境で実際にテストを実施ください。取得できる環境では上記の特定地域向け IoT SIM と同様の手法をお試しください。
また、いずれの SIM をご利用いただく場合でもデバイスで利用できる AT コマンドはそのデバイス側の実装に依存します。ご利用のデバイスで上記の AT コマンドが正常に動作しない場合は、デバイスの開発元にご相談ください。