OpenStreetMapのマップを、mapnik + python + postgis で表示しようとしているが表示されない
以下のツールを利用して、 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')