背景
仕事で利用しているSIM7600というLTEモジュールで取得できる位置情報がgoogle mapに値を渡しても位置表示してくれない形式で困ったので、方式名と変換方法を備忘録として記事に残します。CGPSINFOの緯度経度はDMM形式
SIM7600のATコマンドマニュアルに緯度経度(latitude、longitude)が「dddmm.mmmmmm」形式であると表記されていました。SIM7600 AT command manual V3.00
17.2.2 AT+CGPSINFO Get GPS fixed position information 参照
その形式で検索したとこと下記のページの解説でDMM形式と分かりました。
緯度・軽度 Supportメンテナンス
DMM形式(度分.分)を度分秒に変換するには、分の小数点に60をかけて秒に変換
DMM形式を紹介していたページに変換方法も解説されていました。緯度・軽度 Supportメンテナンス
具体的としてDMM形式の下記の経度を度分秒に変換します。
13917.575255
小数点の左側2桁が分で、それより左の桁が度です。
13917.575255
^^^^^
DDDMM
度の小数点に60をかけると秒を算出できます。
13917.575255
^^^^^^
0.575255 * 60 = 34.5153
よってDMM形式の「13917.575255」は「139度17分34.52秒」です。
DMM形式を小数点形式に変換するには、分を60で割って度に加算
google mapの座標として渡しやすい小数点形式は、DMM形式の分から度の小数点以下の値を算出すれば良かったです。13917.575255
^^^^^^^^^
139 + 17.575255 / 60 = 139.292920917
小数点形式ならgoogle mapへの受け渡しが容易
SIM7600がら取得した下記の緯度経度をgoogle mapに変換するには、小数点形式に変換した値をsearchのパスに渡すと位置を地図上に表示できます。+CGPSINFO: 3610.559870,N,13917.575255,E,230824,220202.0,48.7,0.0,253.0
緯度
3610.559870経度
36 + 10.559870 / 60 = 36.175997833
13917.575255
139 + 17.575255 / 60 = 139.292920917
小数点形式の緯度経度情報は「36.175997833,139.292920917」なので、それをgoogle mapのsearchパスに渡すと位置情報を表示できます。
https://www.google.com/maps/search/36.17606245,139.292920917
おわり
SIMCOMのSIM7600で取得できる位置情報がDMM形式と把握してそれを小数点形式に変換してgoogle mapに渡すことで、会社の駐車場に置いている装置の位置を期待通りに表示できました。この記事を書くまで意味が分からなかった位置情報の度より下の分や秒を小数点形式に変換する方法は、時間と同様の考えの四則演算で可能と分かりました。
理解も深まり、期待通りに図示できて良かったです。
参考
SIM7600 AT command manual V3.00緯度・軽度 Supportメンテナンス
0 件のコメント :
コメントを投稿