本文整理汇总了C++中mapnik::Map类的典型用法代码示例。如果您正苦于以下问题:C++ Map类的具体用法?C++ Map怎么用?C++ Map使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Map类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: render_to_file2
void render_to_file2(const mapnik::Map& map,
const std::string& filename)
{
mapnik::image_32 image(map.getWidth(),map.getHeight());
render(map,image,0,0);
mapnik::save_to_file(image,filename);
}
开发者ID:h4ck3rm1k3,项目名称:MapNickAutotools,代码行数:7,代码来源:mapnik_python.cpp
示例2: render_agg
void render_agg(mapnik::Map const& map, double scaling_factor, QPixmap & pix)
{
unsigned width=map.width();
unsigned height=map.height();
image_32 buf(width,height);
mapnik::agg_renderer<image_32> ren(map,buf,scaling_factor);
try
{
mapnik::auto_cpu_timer t(std::clog, "rendering took: ");
ren.apply();
QImage image((uchar*)buf.raw_data(),width,height,QImage::Format_ARGB32);
pix = QPixmap::fromImage(image.rgbSwapped());
}
catch (mapnik::config_error & ex)
{
std::cerr << ex.what() << std::endl;
}
catch (const std::exception & ex)
{
std::cerr << "exception: " << ex.what() << std::endl;
}
catch (...)
{
std::cerr << "Unknown exception caught!\n";
}
}
开发者ID:Vanuan,项目名称:mapnik,代码行数:28,代码来源:mapwidget.cpp
示例3: render
image_type render(mapnik::Map const & map, double scale_factor) const
{
image_type image(map.width(), map.height());
mapnik::agg_renderer<image_type> ren(map, image, scale_factor);
ren.apply();
return image;
}
开发者ID:mapycz,项目名称:mapnik,代码行数:7,代码来源:renderer.hpp
示例4: render_to_file1
void render_to_file1(mapnik::Map const& map,
std::string const& filename,
std::string const& format)
{
if (format == "svg-ng")
{
#if defined(SVG_RENDERER)
std::ofstream file (filename.c_str(), std::ios::out|std::ios::trunc|std::ios::binary);
if (!file)
{
throw mapnik::image_writer_exception("could not open file for writing: " + filename);
}
using iter_type = std::ostream_iterator<char>;
iter_type output_stream_iterator(file);
mapnik::svg_renderer<iter_type> ren(map,output_stream_iterator);
ren.apply();
#else
throw mapnik::image_writer_exception("SVG backend not available, cannot write to format: " + format);
#endif
}
else if (format == "pdf" || format == "svg" || format =="ps" || format == "ARGB32" || format == "RGB24")
{
#if defined(HAVE_CAIRO)
mapnik::save_to_cairo_file(map,filename,format,1.0);
#else
throw mapnik::image_writer_exception("Cairo backend not available, cannot write to format: " + format);
#endif
}
else
{
mapnik::image_any image(map.width(),map.height());
render(map,image,1.0,0,0);
mapnik::save_to_file(image,filename,format);
}
}
开发者ID:eyspahn,项目名称:python-mapnik,代码行数:35,代码来源:mapnik_python.cpp
示例5: test
result test(std::string const & name, mapnik::Map const & map, double scale_factor) const
{
typename Renderer::image_type image(ren.render(map, scale_factor));
boost::filesystem::path reference = reference_dir / image_file_name(name, map.width(), map.height(), scale_factor, true, Renderer::ext);
bool reference_exists = boost::filesystem::exists(reference);
result res;
res.state = reference_exists ? STATE_OK : STATE_OVERWRITE;
res.name = name;
res.renderer_name = Renderer::name;
res.scale_factor = scale_factor;
res.size = map_size(map.width(), map.height());
res.reference_image_path = reference;
res.diff = reference_exists ? ren.compare(image, reference) : 0;
if (res.diff)
{
boost::filesystem::create_directories(output_dir);
boost::filesystem::path path = output_dir / image_file_name(name, map.width(), map.height(), scale_factor, false, Renderer::ext);
res.actual_image_path = path;
res.state = STATE_FAIL;
ren.save(image, path);
}
if ((res.diff && overwrite) || !reference_exists)
{
ren.save(image, reference);
res.state = STATE_OVERWRITE;
}
return res;
}
开发者ID:gischen,项目名称:mapnik,代码行数:32,代码来源:renderer.hpp
示例6: set_maximum_extent
void set_maximum_extent(mapnik::Map & m, boost::optional<mapnik::box2d<double> > const& box)
{
if (box)
{
m.set_maximum_extent(*box);
}
else
{
m.reset_maximum_extent();
}
}
开发者ID:mapnik,项目名称:python-mapnik,代码行数:11,代码来源:mapnik_map.cpp
示例7: render_with_vars
void render_with_vars(mapnik::Map const& map,
mapnik::image_any& image,
boost::python::dict const& d,
double scale_factor = 1.0,
unsigned offset_x = 0u,
unsigned offset_y = 0u)
{
mapnik::attributes vars = mapnik::dict2attr(d);
mapnik::request req(map.width(),map.height(),map.get_current_extent());
req.set_buffer_size(map.buffer_size());
python_unblock_auto_block b;
mapnik::util::apply_visitor(agg_renderer_visitor_3(map, req, vars, scale_factor, offset_x, offset_y), image);
}
开发者ID:eyspahn,项目名称:python-mapnik,代码行数:13,代码来源:mapnik_python.cpp
示例8: parameterize_map_language
static void parameterize_map_language(mapnik::Map &m, char * parameter) {
int i;
char * data = strdup(parameter);
char * tok;
char ** ctx;
char name_replace[256];
name_replace[0] = 0;
syslog(LOG_DEBUG, "Internationalizing map to language parameter: %s", parameter);
tok = strtok(data,",");
if (!tok) return; //No parameterization given
strncat(name_replace, ", coalesce(", 255);
while (tok) {
if (strcmp(tok,"_") == 0) {
strncat(name_replace,"name,", 255);
} else {
strncat(name_replace,"tags->'name:", 255);
strncat(name_replace, tok, 255);
strncat(name_replace,"',", 255);
}
tok = strtok(NULL, ",");
}
free(data);
name_replace[strlen(name_replace) - 1] = 0;
strncat(name_replace,") as name", 255);
for (i = 0; i < m.layer_count(); i++) {
mapnik::layer& l = m.getLayer(i);
mapnik::parameters params = l.datasource()->params();
if (params.find("table") != params.end()) {
if (boost::get<std::string>(params["table"]).find(",name") != std::string::npos) {
std::string str = boost::get<std::string>(params["table"]);
size_t pos = str.find(",name");
str.replace(pos,5,name_replace);
params["table"] = str;
#if MAPNIK_VERSION >= 200200
std::shared_ptr<mapnik::datasource> ds = mapnik::datasource_cache::instance().create(params);
#else
std::shared_ptr<mapnik::datasource> ds = mapnik::datasource_cache::instance()->create(params);
#endif
l.set_datasource(ds);
}
}
}
}
开发者ID:yiqingj,项目名称:mod_tile,代码行数:47,代码来源:parameterize_style.cpp
示例9: query_map_point
mapnik::featureset_ptr query_map_point(mapnik::Map const& m, int index, double x, double y)
{
if (index < 0){
PyErr_SetString(PyExc_IndexError, "Please provide a layer index >= 0");
boost::python::throw_error_already_set();
}
unsigned idx = index;
return m.query_map_point(idx, x, y);
}
开发者ID:mapnik,项目名称:python-mapnik,代码行数:9,代码来源:mapnik_map.cpp
示例10: render_to_file2
void render_to_file2(const mapnik::Map& map,const std::string& filename)
{
std::string format = mapnik::guess_type(filename);
if (format == "pdf" || format == "svg" || format =="ps")
{
#if defined(HAVE_CAIRO)
mapnik::save_to_cairo_file(map,filename,format);
#else
throw mapnik::ImageWriterException("Cairo backend not available, cannot write to format: " + format);
#endif
}
else
{
mapnik::image_32 image(map.width(),map.height());
render(map,image,1.0,0,0);
mapnik::save_to_file(image,filename);
}
}
开发者ID:BenMoores,项目名称:mapnik-trunk,代码行数:18,代码来源:mapnik_python.cpp
示例11: render_to_file1
void render_to_file1(const mapnik::Map& map,
const std::string& filename,
const std::string& format)
{
if (format == "pdf" || format == "svg" || format =="ps" || format == "ARGB32" || format == "RGB24")
{
#if defined(HAVE_CAIRO)
mapnik::save_to_cairo_file(map,filename,format);
#else
throw mapnik::ImageWriterException("Cairo backend not available, cannot write to format: " + format);
#endif
}
else
{
mapnik::Image32 image(map.getWidth(),map.getHeight());
render(map,image,0,0);
mapnik::save_to_file(image,filename,format);
}
}
开发者ID:craton-,项目名称:php_mapnik,代码行数:19,代码来源:mapnik_python.cpp
示例12: find_style
mapnik::feature_type_style find_style(mapnik::Map const& m, std::string const& name)
{
boost::optional<mapnik::feature_type_style const&> style = m.find_style(name);
if (!style)
{
PyErr_SetString(PyExc_KeyError, "Invalid style name");
boost::python::throw_error_already_set();
}
return *style;
}
开发者ID:mapnik,项目名称:python-mapnik,代码行数:10,代码来源:mapnik_map.cpp
示例13: find_fontset
mapnik::font_set find_fontset(mapnik::Map const& m, std::string const& name)
{
boost::optional<mapnik::font_set const&> fontset = m.find_fontset(name);
if (!fontset)
{
PyErr_SetString(PyExc_KeyError, "Invalid font_set name");
boost::python::throw_error_already_set();
}
return *fontset;
}
开发者ID:mapnik,项目名称:python-mapnik,代码行数:10,代码来源:mapnik_map.cpp
示例14: render_cairo
void render_cairo(mapnik::Map const& map, double scaling_factor, QPixmap & pix)
{
// FIXME
#ifdef HAVE_CAIRO
mapnik::cairo_surface_ptr image_surface(cairo_image_surface_create(CAIRO_FORMAT_ARGB32,map.width(),map.height()),
mapnik::cairo_surface_closer());
mapnik::cairo_ptr cairo = mapnik::create_context(image_surface);
if (cairo)
{
mapnik::auto_cpu_timer t(std::clog, "rendering took: ");
mapnik::cairo_renderer<mapnik::cairo_ptr> renderer(map, cairo, scaling_factor);
renderer.apply();
}
mapnik::image_rgba8 data(map.width(), map.height());
mapnik::cairo_image_to_rgba8(data, image_surface);
QImage image((uchar*)data.getBytes(),data.width(),data.height(),QImage::Format_ARGB32);
pix = QPixmap::fromImage(image.rgbSwapped());
#endif
}
开发者ID:ShaohuiZhu,项目名称:mapnik,代码行数:19,代码来源:mapwidget.cpp
示例15: render_to_file3
void render_to_file3(mapnik::Map const& map,
std::string const& filename,
std::string const& format,
double scale_factor = 1.0
)
{
if (format == "pdf" || format == "svg" || format =="ps" || format == "ARGB32" || format == "RGB24")
{
#if defined(HAVE_CAIRO)
mapnik::save_to_cairo_file(map,filename,format,scale_factor);
#else
throw mapnik::ImageWriterException("Cairo backend not available, cannot write to format: " + format);
#endif
}
else
{
mapnik::image_32 image(map.width(),map.height());
render(map,image,scale_factor,0,0);
mapnik::save_to_file(image,filename,format);
}
}
开发者ID:kod3r,项目名称:mapnik,代码行数:21,代码来源:mapnik_python.cpp
示例16: render_layer_for_grid
void render_layer_for_grid(mapnik::Map const& map,
mapnik::grid & grid,
unsigned layer_idx,
boost::python::list const& fields,
double scale_factor,
unsigned offset_x,
unsigned offset_y)
{
std::vector<mapnik::layer> const& layers = map.layers();
std::size_t layer_num = layers.size();
if (layer_idx >= layer_num) {
std::ostringstream s;
s << "Zero-based layer index '" << layer_idx << "' not valid, only '"
<< layer_num << "' layers are in map\n";
throw std::runtime_error(s.str());
}
// convert python list to std::set
boost::python::ssize_t num_fields = boost::python::len(fields);
for(boost::python::ssize_t i=0; i<num_fields; i++) {
boost::python::extract<std::string> name(fields[i]);
if (name.check())
{
grid.add_field(name());
}
else
{
std::stringstream s;
s << "list of field names must be strings";
throw mapnik::value_error(s.str());
}
}
// copy field names
std::set<std::string> attributes = grid.get_fields();
// todo - make this a static constant
std::string known_id_key = "__id__";
if (attributes.find(known_id_key) != attributes.end())
{
attributes.erase(known_id_key);
}
std::string join_field = grid.get_key();
if (known_id_key != join_field &&
attributes.find(join_field) == attributes.end())
{
attributes.insert(join_field);
}
mapnik::grid_renderer<mapnik::grid> ren(map,grid,scale_factor,offset_x,offset_y);
mapnik::layer const& layer = layers[layer_idx];
ren.apply(layer,attributes);
}
开发者ID:davenquinn,项目名称:python-mapnik,代码行数:53,代码来源:python_grid_utils.cpp
示例17: make_vector_tile
bool make_vector_tile(tile &tile,
unsigned int path_multiplier,
mapnik::Map const& map,
int buffer_size,
double scale_factor,
unsigned int offset_x,
unsigned int offset_y,
unsigned int tolerance,
const std::string &image_format,
mapnik::scaling_method_e scaling_method,
double scale_denominator,
boost::optional<const post_processor &> pp) {
typedef backend backend_type;
typedef mapnik::vector::processor<backend_type> renderer_type;
backend_type backend(tile.mapnik_tile(), path_multiplier, map, pp);
mapnik::request request(map.width(),
map.height(),
map.get_current_extent());
request.set_buffer_size(buffer_size);
renderer_type ren(backend,
map,
request,
scale_factor,
offset_x,
offset_y,
tolerance,
image_format,
scaling_method);
ren.apply(scale_denominator);
return ren.painted();
}
开发者ID:zerebubuth,项目名称:avecado,代码行数:36,代码来源:make_vector_tile.cpp
示例18: render_layer2
void render_layer2(const mapnik::Map& map,
mapnik::image_32& image,
unsigned layer_idx)
{
std::vector<mapnik::layer> const& layers = map.layers();
std::size_t layer_num = layers.size();
if (layer_idx >= layer_num) {
std::ostringstream s;
s << "Zero-based layer index '" << layer_idx << "' not valid, only '"
<< layer_num << "' layers are in map\n";
throw std::runtime_error(s.str());
}
python_unblock_auto_block b;
mapnik::layer const& layer = layers[layer_idx];
mapnik::agg_renderer<mapnik::image_32> ren(map,image,1.0,0,0);
std::set<std::string> names;
ren.apply(layer,names);
}
开发者ID:chillycher,项目名称:mapnik,代码行数:19,代码来源:mapnik_python.cpp
示例19: render_layer2
void render_layer2(mapnik::Map const& map,
mapnik::image_any& image,
unsigned layer_idx,
double scale_factor,
unsigned offset_x,
unsigned offset_y)
{
std::vector<mapnik::layer> const& layers = map.layers();
std::size_t layer_num = layers.size();
if (layer_idx >= layer_num) {
std::ostringstream s;
s << "Zero-based layer index '" << layer_idx << "' not valid, only '"
<< layer_num << "' layers are in map\n";
throw std::runtime_error(s.str());
}
python_unblock_auto_block b;
mapnik::layer const& layer = layers[layer_idx];
std::set<std::string> names;
mapnik::util::apply_visitor(agg_renderer_visitor_4(map, scale_factor, offset_x, offset_y, layer, names), image);
}
开发者ID:eyspahn,项目名称:python-mapnik,代码行数:21,代码来源:mapnik_python.cpp
示例20: TEST_CASE
//std
#include <string>
#include <fstream>
#include <streambuf>
// libprotobuf
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wsign-conversion"
#include "vector_tile.pb.h"
#pragma GCC diagnostic pop
TEST_CASE("pbf vector tile input")
{
unsigned tile_size = 4096;
mapnik::Map map(256,256,"+init=epsg:3857");
mapnik::layer lyr("layer",map.srs());
lyr.set_datasource(testing::build_ds(0,0));
map.add_layer(lyr);
mapnik::vector_tile_impl::processor ren(map);
mapnik::vector_tile_impl::tile out_tile = ren.create_tile(0,0,0,tile_size);
CHECK(out_tile.is_painted() == true);
CHECK(out_tile.is_empty() == false);
vector_tile::Tile tile;
tile.ParseFromString(out_tile.get_buffer());
// serialize to message
std::string buffer;
CHECK(tile.SerializeToString(&buffer));
CHECK(147 == buffer.size());
// now create new objects
mapnik::Map map2(256,256,"+init=epsg:3857");
开发者ID:mapbox,项目名称:mapnik-vector-tile,代码行数:31,代码来源:vector_tile_pbf.cpp
注:本文中的mapnik::Map类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论