2013年12月のメモ帳


2013/12/08

#1 OSM(mapnik)のレンダリングがおかしい件の調査

特定のズームレベルで、名前が2回繰り返して表示されてしまう駐車場がある。OSMサーバのデータをいじって試すと迷惑が掛かりそうなので、自前のサーバで再現環境を作る。サーバの準備は、もともとUbuntu 13.10を使ってるPCがあったおかげで、OpenStreetMapで独自レンダリングをしようを見ながらそのまま入れただけで迷わずに準備できた。しかも、この記事では日本語フォントの準備はもう一手間必要だったらしいけど、今日時点では何もしなくても表示できた。ただし、今回は日本全体のデータを作りたいわけではなく、何時間もかけてデータベースに入力したくないので、Geofabrik社のデータはダウンロードせず、今回調査したいエリアをJOSMでダウンロードして保存したOSMデータを使う。osm2pgsqlは、pbfでもosmでも同じように指定できるので、

osm2pgsql --slim -C 1500 hoge131208.osm

みたいにすればOK。データをいじる場合、JOSM上で編集すると、いじった箇所にaction='modify'と書かれてしまい、osm2pgsqlで

way_changed_mark failed: ERROR:  prepared statement "way_changed_mark" does not exist

のようなエラーが出るようになってしまう。この辺を参考に、一旦空っぽにしてから--appendをつけてあげればエラーは出なくなるけど、なぜか3倍くらい処理時間がかかるようになるので、JOSMではなくテキストエディタで可能な編集なら、JOSMを使わずに編集した方がいい。JOSMで編集後にエディタで開いて、modifyと書かれたところを消してもいい。

次のハマリポイントは、レンダリングが走ってくれないこと。ブラウザからF5やCtrl-F5しても更新されず。結局、サーバ側で /var/lib/mod_tile/default を丸ごと消すという手段で強制的に過去に作成した画像を消してあげればOK。

で、ようやく環境準備ができたので、いろいろデータをいじりながら表示がおかしい原因を調査。結果、付近に優先度が高いアイコンがあることが原因のようだ。変換ルールの調整で改善できないかな?


count: [an error occurred while processing this directive]