Merge branch 'master' of github.com:mapnik/mapnik
This commit is contained in:
commit
577c04e3f9
3 changed files with 24 additions and 6 deletions
|
@ -382,7 +382,11 @@ bool has_cairo()
|
|||
bool has_pycairo()
|
||||
{
|
||||
#if defined(HAVE_CAIRO) && defined(HAVE_PYCAIRO)
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
Pycairo_CAPI = (Pycairo_CAPI_t*) PyCapsule_Import(const_cast<char *>("cairo.CAPI"), 0);
|
||||
#else
|
||||
Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import(const_cast<char *>("cairo"), const_cast<char *>("CAPI"));
|
||||
#endif
|
||||
if (Pycairo_CAPI == NULL){
|
||||
/*
|
||||
Case where pycairo support has been compiled into
|
||||
|
|
|
@ -31,6 +31,7 @@ static Pycairo_CAPI_t *Pycairo_CAPI;
|
|||
|
||||
static void *extract_surface(PyObject* op)
|
||||
{
|
||||
|
||||
if (PyObject_TypeCheck(op, const_cast<PyTypeObject*>(Pycairo_CAPI->Surface_Type)))
|
||||
{
|
||||
return op;
|
||||
|
@ -55,7 +56,11 @@ static void *extract_context(PyObject* op)
|
|||
|
||||
void register_cairo()
|
||||
{
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
Pycairo_CAPI = (Pycairo_CAPI_t*) PyCapsule_Import(const_cast<char *>("cairo.CAPI"), 0);
|
||||
#else
|
||||
Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import(const_cast<char *>("cairo"), const_cast<char *>("CAPI"));
|
||||
#endif
|
||||
if (Pycairo_CAPI == NULL) return;
|
||||
|
||||
boost::python::converter::registry::insert(&extract_surface, boost::python::type_id<PycairoSurface>());
|
||||
|
|
|
@ -54,6 +54,11 @@ int main ( int argc , char** argv)
|
|||
}
|
||||
|
||||
using namespace mapnik;
|
||||
const std::string srs_lcc="+proj=lcc +ellps=GRS80 +lat_0=49 +lon_0=-95 +lat+1=49 +lat_2=77 \
|
||||
+datum=NAD83 +units=m +no_defs";
|
||||
const std::string srs_merc="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 \
|
||||
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
|
||||
|
||||
try {
|
||||
std::cout << " running demo ... \n";
|
||||
std::string mapnik_dir(argv[1]);
|
||||
|
@ -64,7 +69,7 @@ int main ( int argc , char** argv)
|
|||
|
||||
Map m(800,600);
|
||||
m.set_background(parse_color("white"));
|
||||
|
||||
m.set_srs(srs_merc);
|
||||
// create styles
|
||||
|
||||
// Provinces (polygon)
|
||||
|
@ -186,6 +191,7 @@ int main ( int argc , char** argv)
|
|||
layer lyr("Provinces");
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.add_style("provinces");
|
||||
lyr.set_srs(srs_lcc);
|
||||
m.addLayer(lyr);
|
||||
}
|
||||
|
||||
|
@ -196,6 +202,7 @@ int main ( int argc , char** argv)
|
|||
p["file"]="../data/qcdrainage";
|
||||
layer lyr("Quebec Hydrography");
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.set_srs(srs_lcc);
|
||||
lyr.add_style("drainage");
|
||||
m.addLayer(lyr);
|
||||
}
|
||||
|
@ -204,9 +211,9 @@ int main ( int argc , char** argv)
|
|||
parameters p;
|
||||
p["type"]="shape";
|
||||
p["file"]="../data/ontdrainage";
|
||||
|
||||
layer lyr("Ontario Hydrography");
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.set_srs(srs_lcc);
|
||||
lyr.add_style("drainage");
|
||||
m.addLayer(lyr);
|
||||
}
|
||||
|
@ -217,6 +224,7 @@ int main ( int argc , char** argv)
|
|||
p["type"]="shape";
|
||||
p["file"]="../data/boundaries_l";
|
||||
layer lyr("Provincial borders");
|
||||
lyr.set_srs(srs_lcc);
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.add_style("provlines");
|
||||
m.addLayer(lyr);
|
||||
|
@ -228,6 +236,7 @@ int main ( int argc , char** argv)
|
|||
p["type"]="shape";
|
||||
p["file"]="../data/roads";
|
||||
layer lyr("Roads");
|
||||
lyr.set_srs(srs_lcc);
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.add_style("smallroads");
|
||||
lyr.add_style("road-border");
|
||||
|
@ -244,13 +253,13 @@ int main ( int argc , char** argv)
|
|||
p["file"]="../data/popplaces";
|
||||
p["encoding"] = "latin1";
|
||||
layer lyr("Populated Places");
|
||||
lyr.set_srs(srs_lcc);
|
||||
lyr.set_datasource(datasource_cache::instance().create(p));
|
||||
lyr.add_style("popplaces");
|
||||
m.addLayer(lyr);
|
||||
}
|
||||
|
||||
m.zoom_to_box(box2d<double>(1405120.04127408,-247003.813399447,
|
||||
1706357.31328276,-25098.593149577));
|
||||
m.zoom_to_box(box2d<double>(-8024477.28459,5445190.38849,-7381388.20071,5662941.44855));
|
||||
|
||||
image_32 buf(m.width(),m.height());
|
||||
agg_renderer<image_32> ren(m,buf);
|
||||
|
@ -275,9 +284,9 @@ int main ( int argc , char** argv)
|
|||
|
||||
/* we could also do:
|
||||
|
||||
save_to_cairo_file(m,"cairo-demo.png");
|
||||
save_to_cairo_file(m,"cairo-demo.png");
|
||||
|
||||
but instead let's build up a surface for more flexibility
|
||||
but instead let's build up a surface for more flexibility
|
||||
*/
|
||||
|
||||
cairo_surface_ptr image_surface(
|
||||
|
|
Loading…
Add table
Reference in a new issue