以下のツールを利用して、 OpenStreetMap の地図を表示しようとしています。

  • postgresql --with-protobuf-c
  • postgis
  • mapnik --with-postgres
  • osm2pgsql

brew コマンドでそれぞれインストールを行い、 シンプルな世界地図は表示されるようになりました。(world_map_and_styles.py)

目的としては、日本周辺の地図を表示したいため、日本周辺の地図データをダウンロードし、以下のコマンドを利用し、 DB を作成しました。

osm2pgsql -d gis japan-latest.osm.pbf --style openstreetmap-carto.style

(実際は、上記コマンドの前に、osm2pgsql -d gis japan-latest.osm.pbf のみを実行済みでした。)

その後、サンプルを改造した以下のコード(Python)を実行しているのですが、画像全体に、海部分のみが表示され、地形部分が全く表示されません。

ぜひ、解決のためのご助言を頂きたいです。
よろしくお願いします。

#!/usr/bin/env python

from mapnik import *
import mapnik
import math


m = Map(600,300,'+proj=latlong +datum=WGS84')
m.background = Color('steelblue')
m.zoom_to_box( mapnik.Envelope(128.0,26.0,136.0,48.0) );
m.aspect_fix_mode = aspect_fix_mode.ADJUST_BBOX_HEIGHT


poly = PolygonSymbolizer(Color('lavender'))
line = LineSymbolizer(Color('slategray'),.3)
s,r = Style(),Rule()
r.symbols.extend([poly,line])
s.rules.append(r)
m.append_style('My Style',s)

# Layer
lyr = Layer('Geometry from PostGIS')
db_params = dict(
    #host='',
    #user='',
    #password ='',
    dbname='gis',
    table='planet_osm_polygon'
)
lyr.datasource = PostGIS(**db_params)

lyr.srs = '+proj=latlong +datum=WGS84'
lyr.styles.append('My Style')
m.layers.append(lyr)

render_to_file(m, 'map/hello_world_in_pure_python.png')