3月 21

JOSM向け JA:Naming sampleを導入

ということで導入方法を確認しました.

プリセットメニューの「プリセット設定」を選択.

menu-priset

「利用可能なプリセット」の中から「JA:Naming sample」を選択して左矢印ボタンを押して有効にします.OKボタンを押して,

priset_menu

JOSMを再起動することで反映されます.

reboot

これでプリセットやプリセットの検索で利用できるようになります.

shutter_17-03-21_06:16:59_001

インクリメンタル検索の例.

shutter_17-03-21_06:18:25_001

とても便利です :)

既に導入している人はJOSM起動時に更新されるはずです.
不安な人は一旦消して再導入したり,実際のファイルの中のバージョンを確認することも出来ます.

$ grep JaNamigSample ~/.josm/preferences.xml
  <list key='mirror.https://josm.openstreetmap.de/josmfile?page_Presets/JaNamigSample&amp;zip_1'>
    <entry value='/home/mk/.josm/cache/mirror_https___josm.openstreetmap.de_josmfile_page_Presets_JaNamigSample_zip_1'/>
      <tag key='url' value='https://josm.openstreetmap.de/josmfile?page=Presets/JaNamigSample&amp;zip=1'/>
$ zgrep version /home/mk/.josm/cache/mirror_https___josm.openstreetmap.de_josmfile_page_Presets_JaNamigSample_zip_1
    version="2.0b7_24_2017-03-04"
4月 08

MAPS.MEの翻訳修正

OpenStreetMapの地図を自分の端末に入れてオフラインで地図の閲覧やルート案内などができてとても便利なMAPS.MEというアプリがあります.最近OpenStreetMapの編集機能も付いたということで試してみました.

試すためにはマップデータをダウンロードし直さないといけません.九州全域から県単位で地図がダウンロードできるようになっていていい感じです :)
しかし,「づンロード」というメッセージ><

25704805293 80cb7e5da8

これは酷い.
でもMAPS.MEはオープンソース化されていたのできっと翻訳も修正できるはずと探してみるとこちらにありました.

この中の strings.txt がそれのようです.

ざっと見てもうひとつ明らかな間違いがあったのでその二件を修正してPRしました.
するとコントリビュータライセンスにサインして&翻訳scriptの実行してというコメントをもらいました.

こんなWikiがあったとはorz

今回はCLAのサインをしたら取り込まれたようです.次からは`generate_localization.sh`もちゃんと実行しないとですね.

$ ./tools/unix/generate_localizations.sh
+ ./tools/twine/twine --format android generate-all-string-files ./strings.txt ./android/res/
+ ./tools/twine/twine --format apple generate-all-string-files ./strings.txt ./iphone/Maps/
+ ./tools/twine/twine --format apple --file-name InfoPlist.strings generate-all-string-files ./iphone/plist.txt ./iphone/Maps/
+ ./tools/twine/twine --format jquery generate-all-string-files ./data/cuisines.txt ./data/cuisine-strings/







12月 05

JOSMにJava8を使うように言われたのでJavaを変更する

JOSM を起動するとスプラッシュ画面に次のようなメッセージが><

JOSM – Java OpenStreetMap エディタ

このバージョンのJavaはもうすぐサポート対象から外れます。 Java 8以上にアップグレードしてください!

現在利用している Java は Debian stretch のパッケージで導入した Oracle Java 7 です.OpenJDK 7 でも同じメッセージが表示されます.
ディストリビューションがサポートしている間は脆弱性とかは修正されるだろうけど JOSM 側でサポート打ち切る可能性もあるので Java 8 を使えないか確認してみます.

% where java
/usr/bin/java
% /usr/bin/java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
% dpkg -l oracle-java7-jdk|grep ^ii
ii  oracle-java7-jdk 7u25         amd64        Java(TM) JDK, Standard Edition, Oracle(TM)

Oracle Java は未だパッケージにないけど OpenJDK 8 は存在するよう.

% apt-cache search oracle-java
oracle-java7-jdk - Java(TM) JDK, Standard Edition, Oracle(TM)
% apt-cache search openjdk-8  
openjdk-8-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
openjdk-8-dbg - OpenJDK ベースの Java ランタイム (デバッグシンボル)
openjdk-8-demo - OpenJDK ベースの Java ランタイム (デモおよびサンプルファイル)
openjdk-8-doc - OpenJDK 開発キット (JDK) ドキュメント
openjdk-8-jdk - OpenJDK 開発キット (JDK)
openjdk-8-jre - OpenJDK Java ランタイム - Hotspot JITopenjdk-8-jre-headless - OpenJDK Java ランタイム - Hotspot JIT(ヘッドレス)
openjdk-8-jre-zero - Zero/Shark を用いた OpenJDK 用の代替 JVM
openjdk-8-source - OpenJDK 開発キット (JDK) ソースファイル

OpenJDK 8 を導入してこのシステムの規定値に設定します.

% sudo apt install openjdk-8-jre
% sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。

  選択肢    パス                                          優先度  状態
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      自動モード
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手動モード
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      手動モード
* 4            /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java       317       手動モード

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: /usr/bin/java (java) を提供するためにマニュアルモードで /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java を使います
% where java
/usr/bin/java
% /usr/bin/java -version
openjdk version "1.8.0_72-internal"
OpenJDK Runtime Environment (build 1.8.0_72-internal-b05)
OpenJDK 64-Bit Server VM (build 25.72-b05, mixed mode)
% /usr/bin/java -jar ~/bin/josm-latest.jar

無事起動して,警告メッセージは表示されなくなりました :)

https://www.flickr.com/photos/119142834@N05/23418744202/in/dateposted-public/

もし,他の Java アプリケーションが OpenJDK 8 を嫌がる場合はそちらを優先して JOSM は以下のようにして起動するようにしてもいいかもしれません.

% /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar ~/bin/josm-latest.jar
12月 04

最近のOSMマッピング方法2015

この記事は OpenStreetMap Advent Calendar 2015 の4日目の記事です.昨日の記事は,OpenStreetMap – Wheelchair=*タグで素敵なプレゼントを でした.
私もついWheelchair=*タグを後回しにしてしまっているのでもっと意識してマッピングしたいと思います.

さて,今日は私の最近のOSMマッピング方法をメモしておこうと思います.たまに聞かれることがあるので参考になる人も居るかもしれません.

私は最近引きこもりでチェアマッピングが主ですが,外に出るときにはGPSロガーなどを持って出歩いてサーベイして家に帰ってからPCで入力することが多いです.この時使っているアプリケーションなどの紹介をしたいと思います.

目的地に行く前

マッピングをするとき道路や建物があるのと無いのではやりやすさが大分違います.そこで前もって作業できる時間があるなら目的地の地図を確認して基盤地図情報などをトレースしておきます.

このときJava製のマルチプラットホームのアプリケーションの JOSM を利用しています.Windows/MacOSX/Linux 等で動作します.私はLinux上で利用しています.

以下のページに利用ガイドがあります.

基盤地図情報のトレースはそのままでは出来ないので次のページを参考に基盤地図情報 25000,および 2500 TMSの設定を行います.

これで基盤地図情報を背景にしてトレースが出来るようになります.以下はとある自転車屋さんに行こうと思い周辺の道路と建物をトレースした例です.(結局未だ行けていませんorz)

https://www.flickr.com/photos/119142834@N05/22884236284/in/dateposted-public/

https://www.flickr.com/photos/119142834@N05/23144556199/in/dateposted-public/

目的地でのサーベイ

私はGPSロガーの他にAndroid端末を利用しています.
端末は以下の2つを利用しています.どちらもちょっと古いので新しい端末が欲しいところです><

  • Galaxy Note II
    ペンが使える.SIMスロット破損で3G通信不可
  • Xperia Pro
    主に3Gモデムとして利用

Android端末に以下のようなアプリケーションを導入しています.

Mapの確認&POI登録に OsmAnd+

これは前もってOSMの地図データをローカルに保存(オンラインモードもあり)しておき,地図の確認やPOIの登録が出来ます.ちょこっとPOIを登録するのに使っています.

GPSロギングと写真撮影などに OSMTracker for Android™

GPSロガーを別途持っていますがそれ以外にこのアプリケーションを起動してロギング&写真撮影をしています.帰宅してからその情報をJOSMに取り込んでマッピングしています.

OSM登録データの確認に OSMfocus

POIは登録されているけれど詳細なデータも登録されているのかなど確認したいことがあります.そういった場合のこのアプリで確認ができます.

Screenshot_2015-12-04-18-37-02

手書きマッピングに OSM sketch

以前もOsmAnd+ のスクリーンショットを取得してその上に手書きでメモを取るといったことをしていたのですが,このアプリケーションではメモしたデータをそのままOSMにアップロードできます.アップロードしたデータはそのまま他のアプリケーションで編集に使えます.
メモをするときはちょっとコツがあって,意識して大きめに書かないと操作ま丸められてしまうようでうまく書けません.大きめのストロークでメモしてこまめにスクロールするとうまく書けます.
広告のない有料版があれば購入したいです.

※このアプリケーションは2015年10月31日に浜松で開催された State of the Map Japan 2015 in Hamamatsu 内の次の公演「プレゼンテーション:マッピング用スマホアプリを作ってみた」で知りました.現地にはいけませんでしたが中継で参加しました :)

Mapの閲覧に MAPS.ME

ローカルに地図データをダウンロードして閲覧できます.地図データも地域ごとにダウンロードできるので欲しい場所の地図だけをダウンロードできます.(最近はOSMAnd+でも可能)
このアプリケーションは以前は有料だったのですが去年の今頃無料になり,現在はオープンソースになっています.
#購入して数週間で無料になってちょっとがっかりしました><

その他

お店で買い物をしたらレシートをもらうようにしています.レシートにはお店の詳細な情報が書かれていることが多いです.スーパーやコンビニなどの選択肢が複数ある場合は情報の少ない方で買い物するようにしています :)
タグにはsource=receipt が使えます.

Android以外ではGPSロガー(Garmin Oregon300)とデジタルカメラを持ち歩いています.GPSログはOSMにアップロードしてトレース元のデータに,写真にはジオタグを埋め込んでJOSMで読み込んでマッピングしています.
Linux でのジオタグの埋め込み方はちょっと古いですが以下の資料を参照して下さい.MacOSXでも動作すると思います.

Windowsでは などのアプリケーションで実現できます.(轍はWineでも動作します)

帰宅後のマッピング

帰宅後はサーベイしたデータを元に入力していきます.GPSログ,ジオタグの含まれた写真,レシートなどを見ながら JOSM を利用しています.撮ったつもりの写真が無かったり,撮っていてもぶれてたり光の具合でうまく見えないということもよくあります.確実なのは再度現地に行くことですが,画像編集ソフトでシャープネスやコンストラストを変更すると読みやすくなることもあります.これにはマルチプラットホームアプリケーションの GIMP を利用しています.
- GIMP – GNU Image Manipulation Program

やってみたいマッピング方法

広角のアクションカメラの利用

最近はアクションカムが色々出ていますが,以下のような広角のカメラでアーケードなどのGPSの電波状態の悪いところなどをビデオマッピングしたら便利そうと思っています.最近出た新型では解像度も上がったようなので看板などの文字も読みやすそうです.

GNESS 対応ロガーの利用

準天頂測量衛星などのGNESS対応のGPSレシーバーを利用して精度の高いログを取得してみたいと思っています.GPSモジュールを入手出来ていないので計画はストップしています><

おわりに

実際はバッテリが持たなくてうまくサーベイ出来なかったりしますが最近はだいたいこんな感じでマッピングしています..もっといい手順やアプリがあったらぜひ教えて下さい.

また,不定期で鹿児島らぐでマッピングカフェをしています.参加者ははほぼ私一人ですが興味のある方はチェックしてみて下さい.

#しかし,もっと外出してサーベイする機会を増やさないといけないです…….

7月 31

イートインとドライブスルーの営業時間が違う場合の OSM タグ

最寄りのマクドナルドが新装開店しました.敷地が広くなり建物も新しくなって駐車場も広くなって利用しやすくなるなと思っていたのですが行ってみるとこれまでの24時間営業からイートインは06:00-23:00 になっていました.でもドライブスルーは24時間と変則的に.
OSM に反映しないとなーと思いつつタグが解らなくて放置していました.OpenStreetMap Wiki を見てみるとそのものズバリの項目が(時間まで一緒!)

opening_hours=06:00-23:00 open “Dining in” || 00:00-24:00 open “Drive-through”

こういう書き方もあるみたいだけどアプリケーション側での対応がなかなかかも.両方書いとくのが理想でしょうね.

opening_hours:url=http://www.mcdonalds.co.jp/shop/map/map.php?strcode=46006

こちらに入れて試してみるとよく解らず.2種類の時間帯があるけど両方合わせて計算してる感じ?

opening_hours evaluation tool

open 00:00 to 06:00, open 06:00 to 23:00, open 23:00 to 24:00

ということでイートインとドライブスルーの時間が違い場合の opening_hours の入力方法が分かったので編集しておきました.後は敷地も広がったので今度側に行った時にはサーベイして反映したいところです.

9月 21

ibus-mozc から fcitx-mozc に変更したら JOSM で日本語入力できなくなって困る

JOSM はマルチプラットホームでLinux/Windows/Mac で動作しますが,以下の話はLinux固有の問題です.

日本語入力のためのインプットメソッドフレームワークを iBus から fcitx に切り替えたのですが,JOSM で日本語入力ができなくなってしまっていました.Ctrl+Space でトルグするようにしているのですが,他のアプリケーションでは問題ないのにJOSM の場合は無反応で日本語入力ができなくなってしまいました,
そこで一時的にiBus/fcitx の両方が動作するようにしてJOSM 利用時だけiBus を使うようにしていました.

この話を #osckansai で(確か)武山さんに話したところ環境変数か何かが足りないのでは?と教えてもらいました.

少し試したところ XMODIFIERS=”@im=fcitx” を設定するとfcitx でJOSM に日本語入力が出来るようになりました.

% XMODIFIERS=”@im=fcitx” java -jar ~/bin/josm-tested.jar

変換候補がウィンドウの下に表示されちゃいますがまあ許容範囲かなと.

Screenshot from 2014-09-21 13:08:09

毎回コマンドを打つのもあれなのでこんな感じでショートカットを作成しておきました.
#何気にこっちのほうが時間掛かったorz
##環境変数を指定するには env を付ける.~/, $HOME は使えなかったのでフルパス.

9月 21

JOSM で複数のオブジェクトの結合や引き離し

鹿児島の天文館のアーケードがroof として描かれているのですが,複数のオブジェクトが重なってしまっていました.

Screenshot from 2014-09-21 07:32:28

これは一旦消して書きなおしかなと思っていたのですが,JOSM のメニューを眺めていると「ツール」->「重複するエリアを結合 Shift+J」というものが使えそう.ということで試してみました.

先ずは,結合したい該当のオブジェクトを全て選択します.「ツール」->「重複するエリアを結合 Shift+J」で結合.

Screenshot from 2014-09-21 07:32:51

するとくっつきました.

Screenshot from 2014-09-21 07:33:01

便利ですね.

逆にくっついてしまっているオブジェクトを引き剥がすことも出来ます.
建物が隣の建物にくっついてしまったという時など,

Screenshot from 2014-09-21 10:39:04

くっついているノードを選択して,「ツール」->「ウェイを引き離す G」で

Screenshot from 2014-09-21 10:39:54

切り離せました.相手側のオブジェクトにもウェイが残ってしまうので消すなりしたほうがいいですね.

Screenshot from 2014-09-21 10:40:21


大きな地図を表示

9月 21

JOSM で中抜きの建物を書く

OSM で入力するときに中抜きのものがたまにあります.これはマルチポリゴンを利用して表現が可能です.

まずは外枠を書きます.

Screenshot from 2014-09-21 06:57:11

その後,内枠を書いて

Screenshot from 2014-09-21 06:59:13

外枠と内枠の両方を選択した状態で,「ツール」->「マルチポリゴンの作成 Ctrl-B」で,

Screenshot from 2014-09-21 07:02:02

このような中抜きの建物に.

Screenshot from 2014-09-21 07:00:20

以下は実際の地図です.


大きな地図を表示

マルチポリゴンを書いたのはまだ3つ目ですが建物だけでなく駐車場の中に建物がある場合にも使いました.


大きな地図を表示
- Ja:Relation:multipolygon – OpenStreetMap Wiki

#冬コミに向けてOSMの薄い本出したいなと思ってます.そこでtipsとか書き出してみようかなってエントリです.

9月 19

JOSM で POI の情報を建物などにコピーして反映する

JOSMでのOpenStreetMapの編集中に既にPOIはあるけど建物が書かれていないので建物を書いて,POIの情報を建物に反映したいなという時タグを一個一個コピペしてたんですが楽な方法がありそうってことで #osmjp を付けて聞いてみたところ以下のような回答が!

 

 

なるほど!
ということでこのPOIの

Screenshot from 2014-09-19 10:05:31

建物を書いて,

Screenshot from 2014-09-19 10:17:58

POI を選択した状態で `Ctrl + c’
建物を選択した状態で `Ctrl + Shift + v’ で行けました!

Screenshot from 2014-09-19 10:18:28

POI は削除して完了.

Screenshot from 2014-09-19 10:18:50