#include #include #include "mapnik_enumeration.hpp" #include using mapnik::glyph_symbolizer; using mapnik::position; using mapnik::enumeration_; using mapnik::angle_mode_e; using mapnik::AZIMUTH; using mapnik::TRIGONOMETRIC; using namespace boost::python; list get_displacement_list(const glyph_symbolizer& t) { position pos = t.get_displacement(); double dx = boost::get<0>(pos); double dy = boost::get<1>(pos); boost::python::list disp; disp.append(dx); disp.append(dy); return disp; } void export_glyph_symbolizer() { enumeration_("angle_mode") .value("AZIMUTH", AZIMUTH) .value("TRIGONOMETRIC", TRIGONOMETRIC) ; class_("GlyphSymbolizer", init()) .add_property("face_name", make_function(&glyph_symbolizer::get_face_name, return_value_policy()), &glyph_symbolizer::set_face_name, "Get/Set the name of the font face (eg:\"DejaVu Sans " "Book\") which contains the glyph" ) .add_property("char", &glyph_symbolizer::get_char, &glyph_symbolizer::set_char, "Get/Set the char expression. The char is the unicode " "character indexing the glyph in the font referred by " "face_name." ) .add_property("allow_overlap", &glyph_symbolizer::get_allow_overlap, &glyph_symbolizer::set_allow_overlap, "Get/Set the flag which controls if glyphs should " "overlap any symbols previously rendered" ) .add_property("avoid_edges", &glyph_symbolizer::get_avoid_edges, &glyph_symbolizer::set_avoid_edges, "Get/Set the flag which controls if glyphs should be " "partially drawn beside the edge of a tile." ) .def("get_displacement", get_displacement_list) .def("set_displacement", &glyph_symbolizer::set_displacement) .add_property("halo_fill", make_function(&glyph_symbolizer::get_halo_fill, return_value_policy()), &glyph_symbolizer::set_halo_fill) .add_property("halo_radius", &glyph_symbolizer::get_halo_radius, &glyph_symbolizer::set_halo_radius) .add_property("size", &glyph_symbolizer::get_size, &glyph_symbolizer::set_size, "Get/Set the size expression used to size the glyph." ) .add_property("angle", &glyph_symbolizer::get_angle, &glyph_symbolizer::set_angle, "Get/Set the angle expression used to rotate the glyph " "along its center." ) .add_property("angle_mode", &glyph_symbolizer::get_angle_mode, &glyph_symbolizer::set_angle_mode, "Get/Set the angle_mode property. This controls how the " "angle is interpreted. Valid values are AZIMUTH and " "TRIGONOMETRIC." ) .add_property("value", &glyph_symbolizer::get_value, &glyph_symbolizer::set_value, "Get/set the value expression which will be used to " "retrieve a a value for the colorizer to use to choose " "a color." ) .add_property("color", &glyph_symbolizer::get_color, &glyph_symbolizer::set_color, "Get/Set the color expression used to color the glyph. " "(See also the 'colorizer' attribute)" ) .add_property("colorizer", &glyph_symbolizer::get_colorizer, &glyph_symbolizer::set_colorizer, "Get/Set the RasterColorizer used to color the glyph " "depending on the 'value' expression (which must be " "defined).\n" "Only needed if no explicit color is provided" ) ; }