【GoogleマップAPI】fitBounds実行時に特定の方向だけパディングする

GoogleマップのJavaScript APIを使ったマップツールの修正依頼が来ました。

Googleマップで複数のマーカーを設置した際に、
すべてのマーカーが表示されるように自動で表示領域や縮尺をいい感じに調整してくれる

というメソッドがあります。

第一引数にマーカーの座標を入れてやるだけ(説明は割愛)なので
とても簡単で重宝するメソッドなのですが、

とあるシステムで、マップに重なる形で左側にスライド式の開閉メニューがあり、
普通にfitBoundsを実行すると一部のマーカーがメニューで隠れてしまうという問題がありました。

マーカーがメニューに隠れないようにしてほしいというのが今回の依頼なのですが、これは簡単に対応できます。
fitBoundsの第2引数でパディングを指定するだけです。

たとえば左メニューの幅が400pxだった場合は

とするだけで左に400pxパディングした形でfitBoundsが実行されるので
マーカーがメニューに隠れることがなくなります。

今回のシステムではメニュー幅は固定で、メニューの開閉状態だけ考慮すればよかったのでさらに簡単でした。

【キーボード】HHKB Studioを半年使ってみて

HHKB Studioを購入して半年近くたちました。

テレワークと出社のハイブリッドで仕事をしていますが、
キーボードを持ち運んで自宅でも会社でも毎日使っています。
キーボードだけ入るサイズのボディバッグをわざわざ買ったほどです。

半年近く毎日、1日中使ってきましたので
あらためてレビューを書きました。

※以下、あくまで個人の感想です。

打鍵感

これまでのHHKBの静電容量無接点方式からメカニカルスイッチに変更されたそうですが、
私はこれまでのHHKBを使ってきていないので、あくまでHHKB Studioだけの感想になります。
打鍵感としては、「押した感」を感じることは少ないのですが、ほとんどミスなく速く打てているので、自分には合っているのだと思います。
配置も形状もよく考えられているなあと思います。長時間仕事しても手が疲れなくなったのは確かです。

打鍵音もコトコトという静かな音で、全然うるさくないです。

HHKBはファンクションキーがなく
慣れればすべてのキーがブラインドタッチできます。
そのおかげで、目線を下に向けることがなくなるので
目も疲れにくく、首も痛くなったりしません。

余談ですが、一時期、肩と首の痛みがひどかったのですが、
キーボードを膝の上(というかモモの上)に置いて作業するようになってから
姿勢がよくなったのか、痛みがなくなりました。
肩こりや首のこりに悩んでいる方は試してみる価値があると思います。

ポインティングデバイス(トラックポイント)

ポインティングデバイス(トラックポイント)も
Thinkpad使いの私には違和感なく使えています。
カーソル速度の変更も簡単で、カーソルが勝手に動くトラブル(トラックポイントあるある)にも遭遇したことがなく、
本家Thinkpad以上に使いやすいです。

またも余談ですが、
Thinkpadのトラックポイントにはいくつか種類があり、
種類によって指の引っかかりや操作感にかなり違いがあります。
私のおすすめは「ソフトリム」タイプですが、現在は公式には販売されていません。
しかし、3Dプリンターで作成して販売されている方がいらっしゃいます。
HHKB Studioにも装着できますので、興味のある方は探してみてください。

ジェスチャーパッド

ジェスチャーパッドはオフにしています。
私の仕事や使い方が特殊なのかもしれませんが、必要性を感じず、
膝の上で使っているので、けっこうな頻度で持ち上げることになるのですが
持ち上げた際に誤動作することが多いのでオフにせざるを得ませんでした。

その他

最初は有線で使っていたのですが、今はBluetoothで接続して使っています。
1回だけ接続できない問題が出たのですが、それ以外は問題なく使えています。

キーは無刻印にしました。
無刻印にするとキーマップを変更しやすいというメリットがありますが、あとはほとんど自己満足の世界です。
無刻印のキーボードは「すべてのキーを指が覚えている」人向けなので「電話しながら」「メモをとりながら」片手で使うということができません。

最後に

HHKB Studioを購入したきっかけは
Thinkpadと同じポインティングデバイスがついたことに興味を持ったからなのですが、
打鍵感なども含めてHHKBはやっぱりすばらしいキーボードですね。
高価ですが、私は毎日、1日中使うものなので、価値があると思います。

TinyMCEをカスタマイズ

久しぶりにTinyMCEをカスタマイズする案件があり、以下のカスタマイズを行いました。

bタグがstrongに変換されないようにする

見出しの選択肢をカスタマイズする

※見出しをツールバーに出すのは「formatselect」

下線をstyleではなくuで追加する

Bとは別でstrongボタンを作る

(ツールバーに「strong」を追加)

設定はすべて

の中に書きます。

【phpSpreadsheet】PHPでExcelを読み込んだらグラフが消える

phpSpreadsheetを長らく使っていますが、
あるとき「読み込んだExcelのグラフをそのまま出力したい」
という要望がありました。

何も考えずにグラフも読み込めるだろうと
過去のシステムからphpSpreadsheet使用部分をコピペして持ってきたところ、
出力したExcelはグラフだけ消えてしまいました。

知っている人にとってはなんということはないのですが、
グラフ付きのExcelを読み込むときは、Readerに対して

という設定が必要だとわかりました。

また、出力時も同様に、Writerに対して

が必要でした。

この歳になってまたひとつ勉強になりました。

例)

【JavaScript】TinyMCEを組み込んだフォームの値の取得と設定

TinyMCEを組み込んだフォームの値をJavaScriptで取得したり設定したりするには
TinyMCEのメソッドを使用する必要があります。

フォームの値を取得する

フォームに値をセットする