してログ

テーブルの定義(データ型、フィールド長、カラムの定義順、デフォルト値、NOT NULLなど)を一括して取得する SQL 文です。 テーブル名は、relname = 'table_name' の部分で指定します。 前の記事の方法より、こちらのほうが簡単で他の情報も取得できます。

select
	*
from
	information_schema.columns
where
	table_catalog = current_database()
		and
	table_name = 'table_name'
order by
	ordinal_position
;

テーブルを構成する、各フィールドのデータ型を取得するSQL文は、下記のようなります。 テーブル名は、relname = 'table_name' の部分で指定します。 プログラム内でこれらを取得することで、入力値の桁数や、データ型のチェックに役立ちます。

select
	at.attname,
	format_type(at.atttypid, at.atttypmod)
from
	pg_attribute as at
		left join pg_type as tp on (at.atttypid = tp.oid)
where
	at.attnum > 0 and
	at.attrelid = (select relfilenode from pg_class where relname = 'table_name')
order by
	at.attnum
;

Android や iOS の GPS アプリで高度(Altitude)が表示されるものがありますが、アプリによって高度の数値が違う場合があります。 実際の海抜より数十メートルほど大きい値を示しているアプリは、GPS の生の高度を表示しています。 GPS が出す高度値は、地球の形を近似した楕円体(WGS84楕円体)からの高さ(楕円体高)を表していて、日本付近では約40mほどずれた値になります。 これを標高に直すには、その地点に応じたジオイド高を減算してあげる必要があります。 このジオイド高は、衛星などによる観測によって得られた値で、その地点ごとに違うことになります。 専門的なアプリで無い限り、このジオイド高による補正が行われていないため、先のようなずれが生じます。

いくつかインストールした限りでは、下記のアプリケーションでジオイド高による補正がされているようです。

  • GPS Test(Android)
    このアプリは、設定の中に「Adjust altitude」という項目があり、ジオイド高による補正をオン・オフできます。実際に、どのくらい差があるのか確かめることができます。
  • My Altitude(iOS)
    デバイスのセンサー値(Device Sensor)とダウンロードした NOAA の標高データ(Data File)から、現在地の標高を表示できます。ただし、センサー値を補正した表示は行えないようです。
  • Commander Compass Lite(iOS)
    特に説明は無いのですが、右上の3行目が標高を表しているようです。
    センサー値っぽいので削除

レイヤーの重ねあわせ順を制御するのに layer.setZIndex は良い結果を生みません。 そのような場合は、map.setIndex を使用します。 この関数を使用すると、レイヤーのインデックスが振り直されることに注意してください。 例えば、レイヤーを再背面に移動したい場合は、setIndex(Layer, -1) のようにコールしますが、インデックス番号0に Layer が配置され、それ以降のレイヤーは1ずつ後ろへシフトされます。 このため、インデックスは任意の番号を与えることができません。

実装上は、レイヤーリストやレイヤーツリーとして別途管理しておき、レイヤーの追加や削除が行われたときは、すべてのレイヤーについて順番に map.setIndex(Layer, -1) をすると良いです。

カーオーディオを買い替えて、常時確認できる時計が無くなったので、この PZ-656 ドットスクロールクロックを購入しました。 デジタル時計でも、7セグメントのやつは好きじゃないので、ドットフォントタイプのものを探しました。 これがなかなか無かったんですが、ようやく見つけたのがこの製品という訳です。 フォントが好みでは無いものの、安いしポイント全額支払いが可能だったので、即購入しました。

取り付け

ボタン電池タイプで電源配線は不要です。 金属のステーが付属しているので、好きな角度に曲げて、ダッシュボードなどに両面テープで固定することができます。 このステーを上下逆に取り付ければ、吊り下げるように取り付けられるよう、便利な作りになっています。

設定と使用方法

基本的には、電波時計なので設定不要なのですが、以外な落とし穴がありました。 取り付け後に、電波受信して時計を合わせようよ思っていたのですが、何度やっても受信しません。 どうやら車の中だと、電波を拾えないらしく、いったん取り外して電波状態の良いところで受信する必要がありました。 確かに車の中だと、金属に囲まれていますし、障害となる電波源がたくさんありそうです。 時計がずれたら、また取り外して受信しなければならないのなら、あまり使い勝手は良くないです。 電波時計ですので、放っておけば自動的に時刻を合わせてくれます。 すぐに合わせたいときは、背面の WAVE ボタンを2秒間押せば受信を開始します。 最初、何回やっても受信せず、車内では無理なのかと思いましたが、翌日には正常受信をしたアイコンが表示されていました。 受信しないような場合は、屋外などで電波アイコンを頼りに電波の入る場所を探してみる、天候が原因な場合は別の日に試してみる、などを試してみましょう。

マニュアル設定ができない機種なのかと思いましたが、マニュアルを見ると、電波受信中でないときに MODE ボタンを2秒以上押すことで可能なようです。 マニュアル設定モード中は、裏側の UP ボタンで設定や数字の変更、MODE ボタンで次の項目へ移れます。 この辺は、少し分かりにくかったように思います。

総合評価:★★☆☆☆

表示は液晶だけあって、昼間でもやや見づらいと思います。 正面から見ないと見えづらく、正面からでも光の当たる角度によっては見えづらいです。 夜は当然見えませんが、側面の LIGHT ボタンを押すと5秒間だけ青色のバックライトが点灯します。 このバックライト点灯時も、やや見づらいと感じました。 青色 LED を使いたいのは分からんでも無いですが、他の色の方が見やすくて目にも優しいように思います。

フォントはポップな感じで、右側の縦線が太くなっています。 これは数字によっては視認しづらいので、もっと普通なフォントでも良かったと思います。 そしてこの製品のウリであるスクロールして数字が変わる仕掛けですが、これも実際動いているのを見ると、あまり目立ちません。 大きい数字のほうは1分に1回しか変わりませんから、数字の小さい秒の桁がちまちま動いている印象しかありません。

以上、車内用のデジタル時計としては向いていないのかなと思いました。 以下、まとめ。

  • 配線の必要が無く、ステーと両面テーブで車内の自由な場所に設置できる
  • 車内では電波時計の電波が受信できない場合がある(というか愛車では全く受信しない)
  • 液晶は視認しづらい&夜見えない(自ら光る LED のほうが適している)
  • スクロールのし掛けが目立たない
  • 手動時間合わせの方法が分かりづらい
この製品を改善するとしたら
  • ドットを増やして、フォントを数種類から選べるようにする
  • スクロールは横にして、時刻と日付を交互に切り替える
  • LED にする(外部電源もやむなし)
  • 太陽光充電(でも充電池はマズイかな)

追記

この製品ですが、一番下のラインが異常表示して数字が読みにくくなる欠陥があるようです。 メーカーに問い合わせたところ、保証は無いとのことでしたが、ご厚意により交換対応していただきました。 しかし、交換品も1年も経たずに同じ症状になってしまいました。

評価変更:☆☆☆☆☆

数字の動きとかは気に入っていたのですが、耐久性が無さすぎますので、評価ゼロとしました。 数字も見にくかったし、結果的には買って損したという思いです。

レイヤーの順序を変更していたりすると、ポップアップの枠が最上位に表示されなくなることがあります。 調べた CSS のクラス olPopup に、z-index を指定してみましたが、OpenLayers が生成する際に再設定されているらしく、この指定は無視されました。 下記のように再々設定をしてみたところ、希望通りの表示になりました。

map.addPopup(popup);
$(".olPopup").css("z-index", 10000);

OpenLayers のタイルレイヤーで、画像が無いエリアにエラー画像が表示が表示されないようにする方法です。 タイルレイヤーの範囲外の部分や、データが提供されていないズームレベルで、エラー画像で埋め尽くされるのを防ぎ、後ろのレイヤーを透過させることができます。

エラー画像は、olImageLoadError というクラスが付いていますので、下記のように非表示を強制するよう CSS を記述すれば OK です。

.olImageLoadError { 
    display: none !important;
}

ネットショップで頼んだ商品の配送がメール便でした。 メール便は安い代わりに、ポストまで配達で、受け取りのサインなどいらないサービスです。 今回、こちらのミスなのか、モールの仕様が(最近アップデートされたようなので)原因なのか、登録済みの配送先の社名が抜けていたために、住所不明リターンになってしまいました。

このような場合、電話連絡なしで無慈悲に送り返されるということが、今回わかりました。 確かに、82円じゃあ仕方ないですが、他店で200円ぐらいの商品で、送料無料で600円ぐらいだったので、まさかメール便だとは思ってませんでした。 今度ネットショッピングするときは、良く確認してメール便対応のところは避けようと思います。

あと、今回は注文の最終確認で配送先住所をよく確認しなかった私が悪いのですが、そのショップはメール便の番号を発送通知しませんでした。 せめて発送通知に、メール便番号があれば配送状況を確認できたので、こういうところは大事だと思います。 最近、おもてなし精神が失われ、合理主義的な社会になってきていますが、「安かろう悪かろう」というのでは無く、「安かろうでも良かろう」というのが日本的だと思います。

今回はカーナビについてレポートします。 本機には標準で、iGO Navigation がインストールされていますが、日本の地図は入っていません。 日本の地図データ自体が用意されていないので、追加購入も無理なようです。 従って、iGO Navigation を削除して、Google ナビなど別のアプリを用意する必要があります。

iGO Navigation の削除

iGO Navigation は、地図データを含めると3GB以上の容量がありますので、残しておく理由はありません。 なお、必要ならバックアップを行ってから削除してください。

  1. [設定>アプリ>iGO Navigation]を選択して、アンインストールします
  2. ES エクスプローラなどで、iGO の名前のフォルダ(消した後なのでどこにあったか覚えていない)を探して、それを削除します
(Google)マップのインストール

普通に Google play より、(Google)マップをインストールしてください。 ついでに、Google 日本語入力を入れておくと、目的地の入力で音声入力が使えます。

ナビの使用感

とにかく動作が重くて常用は厳しいと思います。 アップデートされて便利になったのと引き換えに、このアプリの要求する処理能力がかなり高くなっているのが原因でしょう。 タップしてもすぐに画面が切り替わらず、時には触れてなかったかなとか、フリーズしたのかと思うほどです。 また、ナビゲーション中も地図の更新が追いつかなくて、交差点を通り過ぎてしまったり、向かっている方向を見失ってしまうなど、実用的面でもギリギリだと感じます。 3D表示は無くて良いので、低スペック用の表示モードを用意していただきたいものです。

目的地の検索は、施設名や電話番号、住所での検索ができ、まさに得意分野といった感じです。 また、音声での検索ができますが、ソフトキーボードのレスポンスが悪いこともあって、通常はこちらを使った方が早いような気がします。 注意点はマイクアイコンをタップして、一呼吸置いてから話し始めることです。 なぜなら、間髪入れずに「ビックカメラ」と発声しても、「カメラ」しか聞き取ってくれないからです。

最大の問題点

TD730A にはジャイロセンサーや、加速度などといったセンサーが非搭載となっています。 このため、Google マップのコンパスモードが利用できません。 ナビにおいても、ジャイロコンパスの補助が得られていないためか、進行方向に地図が向かなかったり、向きが変わるのが遅かったりするようです。 また、ビル陰などに入って GPS の受信状態が悪くなると、位置とともに方向も飛び始めるようです。

進行方向の計算が GPS のみの場合、静止状態に近いほど方位を知ることが困難になるはずです。 確かに、タブレットのように手に持って使うデバイスでは無いので、センサー類を省いてコストを抑えようというのは理解できます。 しかし、ジャイロセンサーについては、ことナビにおいて重要であるだけに、非搭載はありえないと思います。 この辺は、使ってみればすぐに分かるはずなのですが、この手の Android 車載機にはジャイロセンサーは搭載されていないようです。 (タブレットとして切り離しのできるタイプは搭載されているかも知れません)

まとめ

とにかくレスポンスが悪いので、ナビ利用がメインの人は代替案を探したほうが良いと思います。 有料アプリで探すか、専用ナビをコンポジットビデオ入力する(操作の問題はあるが)か、AirReceiver などのアプリを使って iPhone の画面を飛ばすという荒業もあります。

Google マップが使えれば、ナビも手に入ると思っていただけに、この結果は残念でした。 快適に使えるためには、処理速度の面では最低でも倍の性能、そしてジャイロセンサーの搭載が必要だと思います。 しかし、それでも専用ナビと比べると、車速や加速度を利用した位置の推算までは出来ないと思うので、トンネル内やビルの谷間などで差がありそうです。

おまけ:ジャイロセンサーが欲しい

スマホやタブレットに当たり前のように付いているジャイロセンサーですが、図らずも今回その重要性に気づきました。 そこで、どうにかジャイロセンサーを後付けできないか調べてみました。

まず、先に書いたように通常の Android 端末には当たり前に付いているため、後付けの製品自体が存在しません。 Android と通信では、USB、Bluetooth、Wi-fi がありますが、一番可能性の高いのは USB です。 検索してみると、業務用らしいものが2種類、電子工作のパーツらしきものが1種類ありました。 しかし、業務用のものは高い(5万~7万)ですし、パーツの方は販売終了していました。

しかし、これらを繋いだところで利用できないはずです。 USB デバイスと通信し、Android のセンサーマネージャとを繋ぐデバイスドライバを書かないとだめなはずです。 安い秋月電子の TDS01V のような製品が手に入れば、トライしてみようかとも思いますが、残念ながら入手不能ということで、手詰まりとなってしまいました。

電子工作に詳しい人であれば、何のことは無いのかも知れません。


他のレポートはこちら

今回はビデオプレイヤーについてレポートします。 標準のビデオプレイヤーは、アスペクト比の維持ができないのと、DivX などが再生できなかったので、利用を断念しました。 ただし、画面アスペクト比16:9 の mp4 しか再生しないという場合、あるいは表示が潰れても気にしないのであれば、このプレイヤーでも良いと思います。 標準プレイヤーなら、レジュームも自然にでき、インターフェイスがシンプルで車向きです。

MX Player が最適

本当は PC でメインで使っている VLC for Android beta を使いたかったのですが、車という環境で使うとなると不便な点もあり、MX Player 一択といった結果となりました。 その理由は下記の通り。

  • フォルダ内の動画を連続再生(ミュージックビデオを主に再生したい)
  • アスペクト比を維持した再生が可能
  • サポートしている動画フォーマットの多さ(試した中では DivX の1本だけ正常に再生できませんでした)
  • レジューム再生(電源OFFからの場合は[アプリ起動>再生ボタン]の操作が必要)
  • バックグラウンド音声再生

ミュージックビデオを通常のオーディオの感覚で再生できる点が特に重要でした。 VLC では、再生が終わる度にファイル一覧に戻ってしまい、次の曲を選び直さなければなりません。 また、レジューム機能が無いと、少し車を離れるときなど、先頭のファイルに戻ってしまい、使い勝手が良くありません。 MX Player は、レジューム機能を持っていますし、[設定>General>Shutdown delay]を設定しておけば、その時間内での復帰(ただし、OFF中も再生はされ続けるので、エンジンを切った所で一時停止にはなっていません)はエンジンを掛けるだけです。

レジューム再生の注意点

エンジンOFF後、シャットダウン・ディレイを過ぎて電源もOFFされた場合は、アプリ(MX Player)も含めて Android 自体がシャットダウンされています。 このため、Android の起動アニメーション後、ホームアプリが表示されることになります。 標準プレイヤーであれば、最後に実行していたアプリを自動的に実行してくれて、なおかつレジューム機能も働きます。 MX Player の場合は、手動で起動しなければならないのですが、再生位置は覚えているので、続けて再生ボタンを押すだけで再開することが可能です。 ただし、Shutdown delay で指定した時間も再生が止まっていないため、これを1時間に設定していれば、1時間分の再生がスキップされた位置からの再開になります。 エンジンOFFで画面が消灯するので、サスペンド状態にされているのかと思いましたが、状況からすると動作し続けているように思います。 バッテリーを積んでいないので仕方無いかも知れませんが、サスペンド状態で待機して欲しかったと思います。 少し面倒ですが、戻ったときに続きから観たい場合は、一時停止させてからエンジンを切りましょう。

音声が消えるトラブルも

MX Player で再生しながら、標準アプリを操作すると、バックグラウンドで聞こえていた音声がミュートされ、MX Player に戻ってもそのまま無音状態になってしまうことがありました。 例えば、電話を受けた後に発生したように思います。 この状態になったときは、標準アプリのラジオにいったん切り替えてから、MX Player に戻れば回復するようです。 様々なアプリが複雑なリソースの奪い合いをしますので、このような不調和はある程度許容する必要があります。

その他の操作感

スワイプによる操作が車載機にマッチしていてとても良いです。 特に、画面右側を上下にスワイプで画面の輝度を調節できるのは、夜の運転で画面が眩しいとき素早く対応できます。 画面の輝度は、ライトに連動して変化するようにも設定していますが、それではまだ眩しいと感じるときがあります。 また、音声をミュートしたいときは、画面右側を下にスワイプすれば良いです。

その他、シングルタップで表示される操作パネルの表示時間が短いと感じたので4秒に設定しました。 また、操作パネル表示時に再度タップすることで、再生を一時停止するように設定するのがお勧めです。 左右のスワイプは、早送り&巻き戻しですが、ここは次の動画&前の動画に設定できたら完璧でした。

広告

無料版に表示される広告ですが、オフラインで利用する分には表示されないので、無料版で十分だと思います。 これは他の無料アプリにも言えることなので、広告はあまり気にならないと思います。


他のレポートはこちら