976,7 → 976,7 |
return true; |
} |
|
Layer lyr(Lay->name.toAscii().data()); |
layer lyr(Lay->name.toAscii().data()); |
|
if (!Lay->title.isEmpty()) |
lyr.set_title(Lay->title.toAscii().data()); |
1009,7 → 1009,7 |
lyr.setActive(Lay->status); |
lyr.setQueryable(true); |
m.addLayer(lyr); |
Envelope <double>le(lyr.envelope()); |
box2d <double>le(lyr.envelope()); |
setMaxExtent(le.minx(), le.miny(), le.maxx(), le.maxy()); |
} |
else if (qName.toLower() == QString("map")) |
1035,7 → 1035,8 |
} |
else |
{ |
point_symbolizer ps(findIcon(PointSymbolizer->file).toAscii().data(), getTypeText(PointSymbolizer->type), PointSymbolizer->width, PointSymbolizer->height); |
// point_symbolizer ps(findIcon(PointSymbolizer->file).toAscii().data(), getTypeText(PointSymbolizer->type), PointSymbolizer->width, PointSymbolizer->height); |
point_symbolizer ps(parse_path(findIcon(PointSymbolizer->file).toAscii().data())); |
ps.set_allow_overlap (PointSymbolizer->allow_overlap); |
Rule->rl.append(ps); |
} |
1122,7 → 1123,10 |
cerr << "Error parsing " << XmlPath.toAscii().data() << ", line " << XmlLine << ": Empty TEXTSYMBOLIZER found --> ignoring!" << endl; |
else |
{ |
text_symbolizer ts(TextSymbolizer->name.toAscii().data(), TextSymbolizer->face_name.toAscii().data(), TextSymbolizer->size, setColor(TextSymbolizer->fill)); |
// text_symbolizer ts(TextSymbolizer->name.toAscii().data(), TextSymbolizer->face_name.toAscii().data(), TextSymbolizer->size, setColor(TextSymbolizer->fill)); |
std::stringstream s; |
s << "[" << TextSymbolizer->name.toAscii().data() << "]"; |
text_symbolizer ts(parse_expression(s.str()), TextSymbolizer->face_name.toAscii().data(), TextSymbolizer->size, setColor(TextSymbolizer->fill)); |
|
if (TextSymbolizer->halo_radius != 0.0) |
ts.set_halo_radius((unsigned int)TextSymbolizer->halo_radius); |
1146,11 → 1150,11 |
if (!TextSymbolizer->alignment.isEmpty()) |
{ |
if (TextSymbolizer->alignment.toLower() == QString("top")) |
ts.set_vertical_alignment(mapnik::TOP); |
ts.set_vertical_alignment(mapnik::V_TOP); |
else if (TextSymbolizer->alignment.toLower() == QString("middle")) |
ts.set_vertical_alignment(mapnik::MIDDLE); |
ts.set_vertical_alignment(mapnik::V_MIDDLE); |
else if (TextSymbolizer->alignment.toLower() == QString("bottom")) |
ts.set_vertical_alignment(mapnik::BOTTOM); |
ts.set_vertical_alignment(mapnik::V_BOTTOM); |
else |
cerr << "Error parsing " << XmlPath.toAscii().data() << ", line " << XmlLine << ": Unknown >>vertical placement<< \"" << TextSymbolizer->alignment.toAscii().data() << "\" --> ignoring!" << endl; |
} |
1175,10 → 1179,11 |
cerr << "Error parsing " << XmlPath.toAscii().data() << ", line " << XmlLine << ": Incomplete POLYGONPATTERNSYMBOLIZER --> ignoring!" << endl; |
else |
{ |
Rule->rl.append(polygon_pattern_symbolizer(findIcon(PolygonPatternSymbolizer->file).toAscii().data(), |
getTypeText(PolygonPatternSymbolizer->type), |
PolygonPatternSymbolizer->width, |
PolygonPatternSymbolizer->height)); |
// Rule->rl.append(polygon_pattern_symbolizer(findIcon(PolygonPatternSymbolizer->file).toAscii().data(), |
// getTypeText(PolygonPatternSymbolizer->type), |
// PolygonPatternSymbolizer->width, |
// PolygonPatternSymbolizer->height)); |
Rule->rl.append(polygon_pattern_symbolizer(parse_path(findIcon(PolygonPatternSymbolizer->file).toAscii().data()))); |
} |
} |
else if (qName.toLower() == QString("shieldsymbolizer")) |
1191,12 → 1196,18 |
return false; |
} |
|
shield_symbolizer ss(ShieldSymbolizer->name.toAscii().data(), |
// shield_symbolizer ss(ShieldSymbolizer->name.toAscii().data(), |
// ShieldSymbolizer->face_name.toAscii().data(), |
// ShieldSymbolizer->size, setColor(ShieldSymbolizer->fill), |
// findIcon(ShieldSymbolizer->file).toAscii().data(), |
// getTypeText(ShieldSymbolizer->type), |
// ShieldSymbolizer->width, ShieldSymbolizer->height); |
std::stringstream s; |
s << "[" << ShieldSymbolizer->name.toAscii().data() << "]"; |
shield_symbolizer ss(parse_expression(s.str()), |
ShieldSymbolizer->face_name.toAscii().data(), |
ShieldSymbolizer->size, setColor(ShieldSymbolizer->fill), |
findIcon(ShieldSymbolizer->file).toAscii().data(), |
getTypeText(ShieldSymbolizer->type), |
ShieldSymbolizer->width, ShieldSymbolizer->height); |
parse_path(findIcon(ShieldSymbolizer->file).toAscii().data())); |
|
if (!ShieldSymbolizer->placement.isEmpty()) |
ss.set_label_placement((ShieldSymbolizer->placement.toLower() == QString("point")) ? mapnik::POINT_PLACEMENT : mapnik::LINE_PLACEMENT); |
1219,10 → 1230,11 |
return false; |
} |
|
Rule->rl.append(line_pattern_symbolizer(findIcon(LinePatternSymbolizer->file).toAscii().data(), |
getTypeText(LinePatternSymbolizer->type), |
LinePatternSymbolizer->width, |
LinePatternSymbolizer->height)); |
// Rule->rl.append(line_pattern_symbolizer(findIcon(LinePatternSymbolizer->file).toAscii().data(), |
// getTypeText(LinePatternSymbolizer->type), |
// LinePatternSymbolizer->width, |
// LinePatternSymbolizer->height)); |
Rule->rl.append(line_pattern_symbolizer(parse_path(findIcon(LinePatternSymbolizer->file).toAscii().data()))); |
} |
else if (qName.toLower() == QString("filter") || |
qName.toLower() == QString("maxscaledenominator") || |
1289,7 → 1301,12 |
Rule->filter = ch; |
|
if (!Rule->filter.isEmpty()) |
Rule->rl.set_filter(create_filter(Rule->filter.toLatin1().data(), "latin1")); |
{ |
std::stringstream s; |
s << "[" << Rule->filter.toLatin1().data() << "] = 'latin1'"; |
Rule->rl.set_filter(parse_expression(s.str())); |
// Rule->rl.set_filter(create_filter(Rule->filter.toLatin1().data(), "latin1")); |
} |
else |
cerr << "Warning in file " << XmlPath.toAscii().data() << " at line " << XmlLine << ": Ignoring empty filter!" << endl; |
} |
1531,8 → 1548,8 |
freetype_engine::register_font(f.toAscii().data()); |
} |
|
m.setWidth(_width); |
m.setHeight(_height); |
m.set_width(_width); |
m.set_height(_height); |
|
try |
{ |
1562,15 → 1579,15 |
} |
|
// First we use Mapnik to create the map |
m.zoomToBox(Envelope<double>(plx, ply, prx, pry)); |
m.zoom_to_box(box2d<double>(plx, ply, prx, pry)); |
|
// Here we render the map to an image buffer |
Image32 buf(m.getWidth(), m.getHeight()); |
agg_renderer<Image32> ren(m, buf); |
image_32 buf(m.width(), m.height()); |
agg_renderer<image_32> ren(m, buf); |
ren.apply(); |
|
// Put the image into a Qt object |
QImage image((uchar*)buf.raw_data(), m.getWidth(), m.getHeight(), QImage::Format_ARGB32); |
QImage image((uchar*)buf.raw_data(), m.width(), m.height(), QImage::Format_ARGB32); |
pxmap = QPixmap::fromImage(image.rgbSwapped()); |
} |
|
1965,4 → 1982,4 |
return ls; |
} |
|
#endif // HAVE_MAPNIK |
#endif // HAVE_MAPNIK |