2017-12-10
_ LibreOfficeの文書とPDFに電子署名だけするよ2017
この記事は「LibreOffice Advent Calendar 2017」の12/10の記事です。
おととし2015年に「LibreOfficeの文書とPDFに電子署名するよ」という記事を書きましたが、2年の時を経て帰ってきました。
免責事項
この記事に書いてあることを実行して何らかの被害を被ったとしても野方は一切責任を持ちません。
2年の間に何が変わった?
2年の間にこんな変化がありました。
- 住民基本台帳カードからマイナンバーカードに切り替わった
- マルチプラットフォームのスマートカード・ライブラリ/ユーティリティの「OpenSC」が0.17からマイナンバーカードに対応した
ということは、2年前にできなかったマイナンバーカード(当時は住基カード)を使ってLibreOffice文書とPDFに電子署名ができるのではと思ってチャレンジしてみました。
利用環境と参考資料
- Debian GNU/Linux Sid (amd64)
- OpenSC 0.17 (DebianではSid/Busterなら利用できます)
- LibreOffice 5.4.3(Debian/TDF)/6.0.0beta1
参考資料
- マイナンバーカードでSSHする - AAA Blog: https://www.osstech.co.jp/~hamano/posts/jpki-ssh/
- マイナンバーカードでmacOSにログイン - AAA Blog: https://www.osstech.co.jp/~hamano/posts/jpki-macos/
- OpenSCでマイナンバーの登録情報を確認してみた - Develop with pleasure!: http://techmedia-think.hatenablog.com/entry/2017/10/21/150246
OpenSCでマイナンバーカードが利用できるか確認
カードリーダーからマイナンバーカードが読み取れる状態にしてから以下を実行します。
$ pkcs15-tool --dump --short Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00 PKCS#15 Card [JPKI]: Version : 0 Serial number : 00000000 Manufacturer ID: JPKI Flags : Card has 2 Authentication object(s). PIN ID:01 Ref:0x01 Tries:3 User Authentication PIN PIN ID:02 Ref:0x02 Tries:5 Digital Signature PIN Card has 2 Private key(s). RSA[2048] ID:01 Ref:0x01 AuthID:01 User Authenticat [0x4, sign] RSA[2048] ID:02 Ref:0x02 AuthID:02 Digital Signatur [0x204, sign, nonRepudiation] Card has 0 Public key(s). Card has 4 Certificate(s). Path:000a ID:01 Path:0001 ID:02 Path:000b ID:03 Authority Path:0002 ID:04 Authority Card has 0 Data object(s).
Dumpだと長いので短く出しましたが大丈夫そうですね。
Firefoxにセキュリティデバイスとして登録
LinuxのLibreOfficeで証明書の利用するにはFirefoxを経由するので、まずはFirefoxにカードリーダーをセキュリティデバイスとして登録します。
手順としてはOpenSC Wikiに書いてあるとおりにすればよいので、こちらをご覧ください。
- Installing OpenSC PKCS#11 Module in Firefox, Step by Step · OpenSC/OpenSC Wiki: <https://github.com/OpenSC/OpenSC/wiki/Installing-OpenSC-PKCS%2311-Module-in-Firefox,-Step-by-Step>
ライブラリの場所はWikiには「/usr/lib」としか書いていませんが、Debianのamd64では「/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so」にあります。
登録ができるとこのようになります。
LibreOfficeにFirefoxの設定ディレクトリを指定する
登録したら、LibreOfficeを起動してFirefoxの証明書が読めるようにFirefox設定ディレクトリのパスを指定します。
指定方法は、LibreOfficeを起動してオプション画面(メニュー[ツール]→[オプション])を開きます。 [LibreOffice]→[セキュリティ]に進み、[証明書へのパス]ボタンを押します。ここでパスがFirefoxになっていれば変更する必要はありません。なっていなければFirefoxに変更してください。
署名をする
準備ができたので電子署名をしてみましょう。 署名をするには文書を保存する必要があります。作業中なら、いったん保存します。
保存したならメニュー[ファイル]→[デジタル署名]→[デジタル署名]を選びます。続いて「ドキュメントに署名」ボタンを押すとパスワードの入力を求められます。
さて、このパスワードには何を入力したらよいのでしょうか?
マイナンバーカードのパスワードには、署名用の16文字までのパスワードと4桁の数字のPINコードの2種類があります。(本当は4種類ですが署名用以外のPINコードは共通でもよいとされているので、ほとんどの人は2種類だけにしているでしょう。)
本来なら署名用のパスワードだけのはずですが、仕様かバグかわかりませんが実はパスワードとPINコード二つの入力を求められます。しかも、ダイアログのメッセージがわかりづらい!
入力するパスワードの違いもわからない上に間違えて入力してもエラーもなく、そのまま「証明書の選択」ダイアログが表示されてしまうので困ってしまいAskで尋ねたということでした。
余談はさておき「ドキュメントに署名」ボタンを押したあとに入力するパスワードは、初めに署名用のパスワードを入力します。
続いて出るパスワードダイアログにはPINコードを入力をします。
わかりづらいダイアログも実はメッセージが変わっているので迷った場合は下を参考にしてください。
- Digital Signature PIN (JPKI): 署名用電子証明書用暗証番号 (長いパスワード)
- User Authentication PIN (JPKI): 利用者証明用電子証明書用暗証番号 (4桁のPINコード)
これで「証明書の選択」ダイアログにマイナンバーカードが出てきました。
証明書を選ぶ
証明書が出てきましたが証明書が二つあって、[証明書の表示」ボタンを押して見てもどっちが署名用の証明書かわかりません。
「OpenSCでマイナンバーの登録情報を確認してみた - Develop with pleasure!」の記事を参考に証明書の情報を見比べることにしました。。
まずは認証用証明書から。
$ pkcs15-tool --read-certificate 1 > user-auth.pem $ openssl x509 -text -noout -in user-auth.pem | lv
見てみるとこういうのがありました。
Subject: C = JP, CN = 799884E02EBLEP28201003A
CNを見るとダイアログの下に表示されていたほうと同じで認証用ですね。 署名用も見てみます。
署名用はパスワードでロックされてるので画面に表示したものをファイルにコピペして、それを見てみました。
$ pkcs15-tool --read-certificate 2 --verify-pin --auth-id 02 Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00 Please enter PIN [Digital Signature PIN]: (パスワードを入力) -----BEGIN CERTIFICATE----- ︙ -----END CERTIFICATE-----
エディタに貼り付けてuser-signature.pemとして保存したものを閲覧。
$ openssl x509 -text -noout -in user-signature.pem | lv
こちらのCNはマイナンバーカードを作成した日付になってますね。
Subject: C = JP, L = Hyogo-ken, L = Himeji-shi, CN = 201602141019093423328201003A
ということは日付のほうが署名用の証明書ということがわかりました。
改めて署名をする
日付のほうが署名用証明書とわかったので、Descriptionに署名理由を書いて、使う署名をクリックすると署名されます。
文書の上に「The Signature is OK,but the certificate could not be validated.」と表示されていれば、とりあえずは署名完了です。
PDFに電子署名をする
odtに署名ができたなら最大の目的であるPDFに電子署名です。
PDFに電子署名をしてエクスポートをするには、メニュー[ファイル]→[PDFとしてエクスポート]を選んでPDFダイアログを開きます。 PDFの出力設定をおこなったら「デジタル署名」タブに移動します。
「この証明書をPDFドキュメントのデジタル署名に使用」の[選択]ボタンを押すと、odtへの署名と同じく「証明書の選択」ダイアログが開くので、署名理由を入力して証明書をダブルクリックします。
パスワードや場所など必要ならば情報を埋めて、問題がなければ[エクスポート]ボタンを押してファイル名をしてすれば、PDFに署名して出力されます。
そういえば「デジタル署名」タブの「原因」と訳されているところは「理由」の間違いですね。
Adobe Acrobat Readerで確認をする
Evinceで開くと電子署名の確認ができないので、WindowsのAdobe Acrobat Readerを使って署名ができているか確認します。
署名されているようですが、「少なくとも1つの署名に問題があります。」と表示されています。 署名を確認すると署名自体は問題なさそうですが「署名者のIDは信頼済み証明書の一覧に見つからず、親証明書も信頼済み証明書ではないので、このIDは不明です」とあります。
検証をするには?
そうなんです。気がついていると思いますが、署名を検証するための認証局発行の証明書がありません。なので署名ができても、それが正しいかどうかわかりません。
ということで、次回、検証編に続きます。
2017-12-13
_ 実機にDebian(Stretch)デスクトップ環境を確実にセットアップして使えるようになるまでのTips(インストール編)
これはDebian/Ubuntu Advent Calendar 2017の12月13日の記事です。
非技術者系の方から「Debianのインストールが難しい」という話を聞いて理由を尋ねたところ、無線LANのファームウェアがなくて途中で止めてしまったとのこと。
そうならないためにDebian GNU/Linuxインストールガイドに目を通してほしいけれど、網羅的すぎて正直非技術者の人が通して読むのはツライし、まずは使ってもらってなんぼなのでDebianデスクトップ環境を実機に確実にインストールしてデスクトップ環境を整えるまでのTipsをまとめました。
インストールの基本方針
- 富豪的アプローチと決め打ち
- 専用マシンでHDDは全消し
インストールしてデスクトップ環境を使ってもらうことを第一に考え、不要なものが入ってもいい、迷うところは決め打ちにすることにしました。 利用マシンは、専用マシンを用意してデュアルブートなどはしません。 もしWindowsが必要ならば、インストール後にVirtualBoxなど仮想化ソフトを利用するか別のマシンを用意してください。
インストールに使うイメージファイルの選び方
インストールに使用するイメージファイルですがdebian.orgのページからダウンロードせず、こちらのファームウェアが同梱された非公式ライブイメージを使ってください。 (「非公式」と書いてありますがDebian Projectが配布しているものです。)
- 64ビット版(amd64): https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/amd64/iso-hybrid/
- 32ビット版(i386): https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/i386/iso-hybrid/
64ビット版か32ビット版の選択ですが、メモリが4GB未満なら32ビット版、4GB以上あるなら64ビット版を使います。(64ビット版は4GB未満でも使えますがメモリ使用量が厳しいので利用しないほうがよいでしょう。)
ファイルはデスクトップ環境ごとに分かれています。(UbuntuのLubuntuやXubuntu、Ubuntu MATEみたいなものだと思ってください。) この中から、debian-live-x.x.x-amd64-gnome+nonfree.iso のようにGNOMEと書かれたISOファイルをダウンロードしてください。
容量が大きすぎてダウンロードできないという人は、こちらを使ってください。
インストーラのみで必要なファイルはネットからダウンロードしてインストールしますが、何らかのトラブルが起こってネットに繋がらなければ詰みます。 ライブイメージは、もしネットに繋がらなくてもデスクトップ環境までインストールできます。
インストールメディアを準備する
ISOイメージなので、DVDからインストールするのであればDVD-Rに焼いてください。
USBメモリからインストールする場合は、Etcherを使ってUSBメモリにインストールイメージを書き込みます。
Etcherはマルチプラットフォームのライティングツールなので、どの環境でも利用できます。 利用方法については、matokenさんのサイトをご覧ください。
インストールメディアの起動
作成したインストールメディアを実機に挿入して起動しますが、Windows 8以降のPCにはBIOSではなくUEFIが利用されています。 Debianは、まだセキュアブートに対応していないのでUEFIの設定で無効にしてから起動します。
インストール
インストールのポイントは以下の3つです。
- ドメイン名は入れない
- rootのパスワードを入れない(ユーザーが管理者権限を持つ)
- パーティションを切らない
迷うところはだいたいこの辺で、使っているうちに不満が出たら自分でやり直してもらう方針です。
まず、インストーラを起動して言語やキーボードの選択をします。 続いてホスト名(マシン名)は適当に決めて、ドメイン名は空のまま[続ける]ボタンで次に進んでください。
ユーザーとパスワードのセットアップは、rootのパスワードは空のままにして[続ける]ボタンで次に進んでください。そうするとrootが無効になります。
HDDのパーティションは「ガイド - ディスク全体を使う」を選びます。当然ですがHDDの内容は全部消えます
「選択されたパーティショニング」では、「すべてのファイルを1つのパーティションに(初心者ユーザーには推奨)」を選びます。
パッケージマネージャの設定のDebianアーカイブミラーは「ftp.jp.debian.org」のままにします。これを選択しておくと自動的に近いミラーが選ばれます。
GRUBローダのインストールでは、「デバイスを手動で入力」ではなく表示されているデバイス(スクリーンショットでは/dev/sda)を選びます。
_ 実機にDebian(Stretch)デスクトップ環境を確実にセットアップして使えるようになるまでのTips(GNOMEデスクトップ編)
GNOMEデスクトップ環境の設定
インストールメディアを外して再起動するとDebianデスクトップ環境(GNOME)が起動します。 これで一応Debianデスクトップ環境(GNOME)が使えますが、様々な事情で日本語環境も中途半端なので利用するための環境を整えます。
GNOMEの使い方
GNOMEの簡単な使い方を説明します。
画面左上の「アクティビティ」からはアプリの起動などができます。画面右上の電源ボタンアイコンからはデスクトップに関する操作ができます。
アプリを起動するには「アクティビティ」をクリックします。 「お気に入りのアプリ」とアプリの検索窓が表示されるので、検索窓に検索ワードを入力するか、お気に入りアプリの一番下「アプリ一覧を表示する」アイコンをクリックしてアプリ一覧の中からクリックして起動します。 終了するときはESCキーを押すかもう一度「アクティビティ」をクリックしてください。
画面右上の電源ボタンアイコンをクリックするとデスクトップを操作するためのメニューが表示されます。音量やユーザー設定のほか、「設定」「画面のロック」「終了」ボタンがあるのでそれぞれの操作をおこないます。
アプリケーション(パッケージ)のインストール/アンインストール
Debianで使うアプリケーションはスマホのアプリのように一元的に提供されています。
アプリをインストール/アンインストールする方法は、GUIからはSynapticというアプリを使う、端末(GNOME Terminal)からはaptコマンドでインストールするといった方法があります。
Synapticの使い方は、起動したらカテゴリや検索をしてインストールしたいアプリにチェック、またはアンインストールするパッケージのチェックを外して最後に「適用」ボタンを押します。
aptコマンドを使うには、アプリ一覧の「ユーティリティ」にある「端末」を起動するかterminalと検索して、端末を起動してコマンドを入力します。
パッケージリストの更新(インストール前に必ずおこなう) $ sudo apt update インストール $ sudo apt install <パッケージ名> ... アンインストール $ sudo apt uninstall <パッケージ名> ... 検索 $ apt search [検索ワード]
ほかには、お気に入りのアプリに登録されている「ソフトウェア(GNOME Sofrware)」もありますが目的のアプリが探しづらいので今回は使いません。
パッケージのアップデート
まずは最初にアップデートをしましょう。
Synapticでは「再読込」ボタンを押して「すべてアップグレード」ボタン、「適用」ボタンの順に押します。 aptコマンドでは以下のように入力してアップデートします。
$ sudo apt update $ sudo apt upgrade
日本語環境: 日本語入力の設定をする(ibus-mozcを使う)
Debianの日本語入力環境にはuim-mozcが使われていますが、タスクトレイに状態が表示されないなどGNOME環境とあまり相性がよくないのでibus-mozcをインストールして使用します。
Synapticでは「ibus-mozc」を検索してインストール、もしくは以下のコマンドでインストールします。
$ sudo apt install mozc-ibus
インストールしたら(ログアウトではなく)再起動します。 続いてmozcの設定です。
設定画面の「Region&Language」を開き、入力ソースにある「+」ボタンを押します。
「日本語」をクリックして表示されるリストの中から「日本語(Mozc)」を選択して追加します。
入力ソースの「日本語」を選択して「^」ボタンを押して順番を入れ替えます。
これで終了です。
日本語環境: フォントを見やすくしたい
丸ゴシックのようなフォントはVL Gothic、漢字の字形が違うフォントはDroid Fallbackです。 このフォントは、あまり見栄えもよくないので使わないのであればアンインストールしましょう。
Synapticでfonts-vlgothicとfonts-droid-fallbackを検索するか、aptコマンドでアンインストールします。
$ sudo apt remove fonts-vlgothic fonts-droid-fallback
IPAフォントが優先して利用されるようになりましたが、Notoフォントを優先させるには設定ファイルを作る必要があります。
ホームディレクトリに.config/fontconfig/ディレクトリを作成し、fonts.confという設定ファイルを作成します。
$ mkdir .config/fontconfig $ nano .config/fontconfig/fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>serif</family> <prefer> <family>Noto Serif CJK JP</family> <family>IPAPMincho</family> </prefer> </alias> <alias> <family>sans-serif</family> <prefer> <family>Noto Sans CJK JP</family> <family>IPAPGothic</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Noto Sans Mono CJK JP</family> <family>IPAGothic</family> </prefer> </alias> </fontconfig>
参考に自分が最初にインストールするフォントリストです。
- fonts-ipafont
- fonts-ipaexfont
- fonts-noto
- fonts-noto-cjk (別途Noto Serif CJKも)
- fonts-mplus
- fonts-roboto
- fonts-lato
- fonts-inconsolata
- fonts-opendin
- fonts-ricty-diminished
- fonts-sawarabi-gothic
- fonts-sawarabi-mincho
- fonts-oradano-mincho-gsrr
- fonts-horai-umefont (Wine用)
デスクトップ: GNOMEデスクトップ環境をより細かく設定したい
GNOME Tweakを使うとGNOMEデスクトップ環境をより詳細に設定できます。 起動をするにはアプリ検索から「tweak」と検索するか、アプリ一覧の「ユーティリティ」にある「Tweak Tool」から起動します。
GNOME Tweakからは後述のGNOME Shell拡張機能を有効にすることもできます。
デスクトップ: GNOMEに拡張機能を追加して便利にしたい
GNOMEデスクトップ環境は拡張機能を使ってカスタマイズができます。
拡張機能のインストール
拡張機能をインストールする方法は3つあります。
- ウェブブラウザでGNOME Shell Extensionsにアクセスしてインストール
- ソフトウェア(GNOME Software)からインストール
- GNOME拡張機能のDebianパッケージをインストール
GNOME Shell Extensionsサイトとソフトウェア(GNOME Software)からの拡張機能のインストールはユーザー領域にインストールされるのですぐに機能を有効化できますが、Debianパッケージはシステム領域にインストールされるので利用するときはログインをし直してから機能を有効化する必要があります。
拡張機能の利用方法
拡張機能はインストール後に有効にしないと利用できません。 有効にするには、ブラウザからGnome Shell ExtensionsのInstalled extensionsにアクセスして有効にする方法と、GNOME Tweakから有効にする方法があります。
必須の拡張機能
個人的に絶対必要と思う拡張機能を紹介します。
「DashToDock」はDash(お気に入りのアプリ)をアプリランチャーのDockとして利用できます。 もう一つの「Top Icons Plus」は隠れているトレイアイコンを右上のトップバーに表示します。
$ sudo apt install gnome-shell-extension-dashtodock gnome-shell-extension-top-icons-plus
この二つはとても便利なので入れておくとよいでしょう。
入れておくと便利な拡張機能
入れておくと便利な機能も紹介します。自分の好みに応じて入れてみてください。
- Alternate Tab(gnome-shell-extensions): Alt+Tabのアプリ切り替えでアプリをグループ化しない
- User Themes(gnome-shell-extensions): テーマが利用できるようになる
- gnome-shell-extension-move-clock: 時計表示位置を右側にする
- gnome-shell-extension-remove-dropdown-arrows: トップバー右側のドロップダウンリストの表示を消してスペースを広く取る
- gnome-shell-extension-impatience: アニメーションスピードを早くする
- gnome-shell-extension-suspend-button: サスペンドボタンを表示する
- gnome-shell-extension-pixelsaver: ウィンドウを最大化するとウィンドウタイトルとトップバーと一体化して表示領域が広がる
デスクトップ: Firefox ESRでアクセスすると英語ページになる
原因は不明ですが、StretchのFirefox ESRで言語設定から日本語が抜けて英語のみになる場合があります。
そのときは、Firefoxの設定を開いてコンテンツ→言語の「言語設定」から「日本語 [ja]」を追加します。
デスクトップ: Qtアプリの見た目をgtkに合わせる
KDE系のアプリの見た目をGNOME(gtk)と合わせたい場合は、adwaita-qtとadwaita-qt4パッケージをインストールします。
$ sudo apt install adwaita-qt adwaita-qt4
デスクトップ: 最大化・最小化ボタンを使いたい
GNOME Tweakを使って最大化・最小化ボタンを有効化します。
環境: シャットダウン/再起動に時間がかかる
/etc/systemd/system.confのDefaultTimeoutStopSecの待ち時間を少なくします。
端末を起動してテキストエディタで編集します。
$ sudo nano /etc/systemd/system.conf
37行目にある
#DefaultTimeoutStopSec=90s
行頭の#を削除して90sを10sにします。
環境: 起動時にスプラッシュ・スクリーンを出したい
設定はすべてコマンドラインからの設定になりますが、Debianを起動しているときシステムメッセージではなくスプラッシュ・スクリーンを出すには、Plymouthをインストールします。
1. plymouth, plymouth-themes, plymouth-x11の3パッケージをインストール
$ sudo apt install plymouth plymouth-themes plymouth-x11
2. /etc/default/grubの「GRUB_CMDLINE_LINUX」に「splash」と追加する
$ sudo nano /etc/default/grub
/etc/default/grubのこの行を見つけ出しダブルクォートの中にsplashと追記する
GRUB_CMDLINE_LINUX="splash" ←splashを追記
3. sudo /usr/sbin/update-grubを実行して設定を反映させる
$ sudo /usr/sbin/update-grub
パッケージ: contribとnon-freeセクションを追加
NVIDIAのプロプライエタリドライバやゲームストアのSteamなどDFSGに沿ってない制限のあるパッケージをインストールする場合は、contribとnon-freeセクションを有効にします。
有効にするには「Software & Updates」を起動し、Debian Softwareタブの「フリーではないものに依存関係のあるDFSG適合ソフトウェア」と「DFSGに適合しないソフトウェア」にチェックを入れます。
パッケージ: backportsリポジトリを追加
Debian安定版(Stable)のパッケージは基本的にバージョンは上がりませんが、LinuxカーネルやLibreOfficeのような特定のパッケージについてはbackportsリポジトリから新しいバージョンのパッケージが提供されることもあります。
backportsからどのようなパッケージが提供されているか知りたい場合は、stretch-backportsのページを見てください。 利用する場合は、backportsリポジトリを追加して、バージョンを指定してインストールします。
backportsリポジトリの追加方法は「Software & Updates」を起動して、Other Softwareタブの「Add」ボタンを押し、以下を追記します。
deb http://ftp.jp.debian.org/debian/ stretch-backports main contrib non-free
パッケージ: ライブイメージでインストールされた不要なパッケージをアンインストールしたい
ライブイメージを使うとインターネットアクセス無しでデスクトップ環境までインストールできますが、世界の各言語用パッケージが入っているので役割が重複しているパッケージが多数入っています。 (例としては入力システムのibus, scim, fcitx, uimなど)
これらのパッケージはlive-task-localisation, live-task-localisation-desktop, live-task-recommendedの3つのパッケージに依存してインストールされていますが、ヘタに削除をするとシステムに必要なパッケージまで削除されます。
自分でインストールしたパッケージは別ですが、慣れないうちはこれらのパッケージは削除しないでください。
まとめ
Stretchがリリースされて半年以上経ちましたが参考になれば幸いです。
2017-12-14
_ ポケモンGO/Ingressマッパーへ贈るOpenStreetMapの短いTips集
この記事はOpenStreetMap Advent Calendar 2017の12月14日の記事です。
12月にポケモンGO/Ingressの地図がOpenStreetMapを使ったものに変更されました。 それとともに初心者マッパーが増えてきたので、こういうことに気をつけたほうがいいんじゃない?と思ったことを短くまとめたものを集めました。
なお、利用しているエディタはiDエディタを想定しています。
iDエディタ: 最初に地図を国土地理院の地図(Japan GSI ortho Imagery)に切り替えよう
最初に表示される「Bing航空画像」は新しいけれど位置がズレています。正確な位置合わせをするために画面右側にある「背景画像設定」アイコンか[B]キーを押して「Japan GSI ortho Imagery」(地理院地図の航空画像の英語名です)に変えましょう。
Ctrl+Bキーを押すと「Bing航空画像」と切り替えられるので、ときどき見比べながら書くといい感じに書けます。
iDエディタ: 建物を書いたら[S]キーを押そう
建物を書いたら[S]キーを押してください。角がバシっと90度になってきれいな四角になったはずです。これは「直行化」という機能です。ほかには、[O]キーを押すと正円が書けます(「円状に並べる」機能)
この二つを使うだけでも見栄え良くなるので使いこなしてみましょう。
iDエディタ: 建物多すぎて書くのがつらい…。楽して書きたい
iDエディタで建物をたくさん書くのは、とてもつらくて面倒です。そして残念ながら楽して書く方法がありません。
ヘビーマッパーはJOSMエディタを使っているので乗り換えを検討してください。
iDエディタ: 公園などのエリアと道路はくっつけない
公園などのエリアに道路にくっつけて書く人がいますが、これはやめましょう。
OpenStreetMapの道路は、道路の中心に書くというルールがあります。公園や水域のエリアは、そのエリアだけを書きます。 もし、道路にくっついてしまった場合は、点を選択して[D]キーを押して離しましょう。
iDエディタ: 「生活道路」は「居住区域内道路」(Residential)を使います
iDエディタで「道路の地物」を選ぶと「Living Street(日本では使用しない)」というのがあります。 Living Streetを訳せば「生活道路」ですが、書いてあるとおりこの区分は日本では使いません。
「生活道路は日本にもあるじゃん!」という声が聞こえてきますが、OpenStreetMapの道路区分はイギリス発祥でイギリス基準になっています。それを日本に当てはめた場合、イギリスの生活道路相当の道路区分がない、どちらかというと居住区域内道路(Residential)にアクセス制限、スピード制限をつけたほうが日本の実情に合っているなどの意見があって「Living Streetは使わずにResidentialを使いましょう」ということになりました。
iDエディタ: 道路の種類は目的別で選ぶ
道路の種類は、幅の広さや大きさではなく目的別に選びます。 細くて酷い道でも国道に指定されていれば(いわゆる酷道)、道路の種類は「国道」(trunk)になります。
国道、県道以外の道路で簡単な種類の見分け方はこちらをどうぞ。 参考: Japan tagging - OpenStreetMap Wiki
- 一般道(2車線以上): highway=tertiary
- 車線が2車線以上(上下合わせて)ある道路や市町村道。国道県道以外で道路にセンターラインがあればこれ。
- 一般道(2車線未満): highway=unclassified
- 車線が2車線未満(上下合わせて)。センターラインが無い道路。住宅地の道路の種類で迷ったらこれ。
- 居住区域内道路: highway=residential
- 住宅地内で地域の人しか使わない道路。いわゆる生活道路。
- 敷地内道路: highway=service
- 団地や会社、工場、ショッピングモールなどで特定の人以外が利用できない道路
- Living Street(日本では使用しない): highway=living_street
- 前述の通り日本では使わない
iDエディタ: 道路や建物の線が太すぎて背景がめっちゃ見づらいねん…
[W]キーを押してみましょう。ワイアーフレーム表示に切り替わるので背景が見やすくなります。 もう一度[W]キーを押すと元に戻ります。
iDエディタ: どんな機能があるかわからん
[?]を押してみましょう。ショートカットキー一覧が出ます。
[h]キーを押すとヘルプが表示されます。ヘルプは説明のほかにチュートリアルもできるので、最初に飛ばしてしまった人はやってみましょう。
iDエディタ: 保存をする時のコメントは作業したことを書こう
保存をするときに出てくるコメント欄には、自分が作業したことを書きます。 たとえば建物を追加したなら「○○町に建物を追加」、道路の位置を修正したなら「△△地区の道路位置を修正」のようにです。
コメントには、ほかのマッパーにどういうことをしたかを知らせる役目があるので、きちんと書きましょう。
iDエディタ: コメントと一緒に「情報源」も追加しよう
情報源(Source)は、OpenStreetMapの地図を書くにあたって参考にした情報源を書きます。 追加方法はコメントの下にある「項目追加」から「情報源」を選び、「追加」の部分に情報源を追加します。 主な情報源の書き方は以下です。
- Bing航空画像: Bing
- Japan GSI ortho Imagery: GSImaps/ort
- 調査したもの: Survey
- 昔から知っているもの: local knowledge
メッセージは無視しないで
地図を編集したらメッセージが飛んできて怒られた!?
見ず知らずの人から突然メッセージがきてビックリするかもしれませんが怒っているわけではありません。 OSMのコミュニケーションでちょっとしたアドバイスなどが来るので、誠実に対応しましょう。
ベテランマッパーもミスしてツッコミのメッセージが来ることも、ちょいちょいあります。
道に沿ってないヘンテコな道がある!
航空画像に沿ってない道は、2011年にYahoo!Japan ALPSから寄贈された1/25000縮尺の道路データです。
1/25000の道路データは細かい部分が省略されておおよその位置関係しかわからないので、見かけたら修正してください。
航空画像が古くて書けないんだけど/航空画像がないんだけど
航空画像が使えない場合は現地調査をして地図を作ります。
GPSロガーを持って道を走ればGPSの軌跡をなぞって道路が書けます。建物を書く場合は、位置情報付きの写真やメモを取って形を書きます。 メモで位置関係を書きたい場合はField Paperを使ってOSM地図を印刷しておくと、よりわかりやすくメモがとれます。
実は航空画像を使って書いた地図も地図としては情報が足りないので、航空画像で書いた後も現地調査の情報も追加してより詳しい地図を作ってみてください。
OpenStreetMap Wikiを検索しよう
疑問に思ったことがあれば http://wiki.openstreetmap.org/wiki/JA:Main_Page にアクセスして右上の検索窓に検索ワードをいれてみましょう。
それでもわからない場合は、Twitterでハッシュタグ#osmjpをつけてツイートやFacebookグループ、メーリングリストに投稿すると誰かが反応してくれるはずです。
おわりに
ひとまず思いついたことを短くまとめてみました。みなさまの参考になれば幸いです。
2017-12-31
_ 2017年もありがとうございました
2017年ももう終わりです。 tDiaryに嫌気が差してHexoに乗り換えると言いましたが、今までの記事をインポートしてビルドすると7、8分かかるという事がわかり、ジタバタしていたら1年過ぎてしまいました。最近、いろいろわかってきたので2018年こそは乗り換えます。
ということで、2017年も乗り換えのため記事の投稿は控えてましたが、振り返ればいろいろありました。
まず、Korea Community Dayに行きました。突然思い立って海外旅行2回目にして一人旅という暴挙でしたが、とても楽しかったです。そのことについてはgihyo.jpにも書きましたが、それ以外にもレコ屋めぐりとかホント楽しかった。
韓国の旅で一番の収穫はUbuntu KRの人たちと友達になれたことでしょうか。 8月のOSC KyotoにDrakeさんが来てくれたり、10月のopenSUSE Asia SummitでHanさんと再開できたり嬉しかったです。また2月末に韓国に行ってきます。
そして、夏には彼女とまた台湾に行ってきました。エドワード・ヤン映画の聖地巡礼や台湾一周しているカップルと知り合えたりこれも楽しかった。
そんなこんなで海外に行くことに少し慣れてきましたが、昔からあった、すぐに言葉が出てこない事がまた出てきたりして、なんとかしたいですね。
オープンソース関係では、LibreOffice日本語チームに参加したことでしょうか。 LibreOfficeは大学のこともあって死ぬほど使い倒してたり、ask.libreoffice.orgで回答していたりするので誘っていただけた時は嬉しかったです。
振り返ると2017年は大学の方が忙しかったりして、あまり動けてなかったですが、2018年はもう少しゆとりを持っていろんな活動をしたいですね。
来年もよろしくお願いします。