more marker bbox fixes
This commit is contained in:
parent
d685307250
commit
6078f4cef1
2 changed files with 12 additions and 7 deletions
|
@ -113,15 +113,16 @@ struct vector_markers_rasterizer_dispatch : mapnik::noncopyable
|
|||
bool ignore_placement = get<bool>(sym_, keys::ignore_placement, feature_, vars_, false);
|
||||
bool allow_overlap = get<bool>(sym_, keys::allow_overlap, feature_, vars_, false);
|
||||
double opacity = get<double>(sym_,keys::opacity, feature_, vars_, 1.0);
|
||||
coord2d center = bbox_.center();
|
||||
agg::trans_affine_translation recenter(-center.x, -center.y);
|
||||
double spacing = get<double>(sym_, keys::spacing, feature_, vars_, 100.0);
|
||||
double max_error = get<double>(sym_, keys::max_error, feature_, vars_, 0.2);
|
||||
coord2d center = bbox_.center();
|
||||
agg::trans_affine_translation recenter(-center.x, -center.y);
|
||||
agg::trans_affine tr = recenter * marker_trans_;
|
||||
markers_placement_finder<T, Detector> placement_finder(
|
||||
placement_method,
|
||||
path,
|
||||
bbox_,
|
||||
marker_trans_,
|
||||
tr,
|
||||
detector_,
|
||||
spacing * scale_factor_,
|
||||
max_error,
|
||||
|
@ -129,7 +130,7 @@ struct vector_markers_rasterizer_dispatch : mapnik::noncopyable
|
|||
double x, y, angle = .0;
|
||||
while (placement_finder.get_point(x, y, angle, ignore_placement))
|
||||
{
|
||||
agg::trans_affine matrix = recenter * marker_trans_;
|
||||
agg::trans_affine matrix = tr;
|
||||
matrix.rotate(angle);
|
||||
matrix.translate(x, y);
|
||||
if (snap_to_pixels_)
|
||||
|
|
|
@ -801,11 +801,14 @@ struct markers_dispatch : mapnik::noncopyable
|
|||
double opacity = get<double>(sym_, keys::opacity, feature_, vars_, 1.0);
|
||||
double spacing = get<double>(sym_, keys::spacing, feature_, vars_, 100.0);
|
||||
double max_error = get<double>(sym_, keys::max_error, feature_, vars_, 0.2);
|
||||
coord2d center = bbox_.center();
|
||||
agg::trans_affine_translation recenter(-center.x, -center.y);
|
||||
agg::trans_affine tr = recenter * marker_trans_;
|
||||
markers_placement_finder<T, label_collision_detector4> placement_finder(
|
||||
placement_method,
|
||||
path,
|
||||
bbox_,
|
||||
marker_trans_,
|
||||
tr,
|
||||
detector_,
|
||||
spacing * scale_factor_,
|
||||
max_error,
|
||||
|
@ -813,8 +816,9 @@ struct markers_dispatch : mapnik::noncopyable
|
|||
double x, y, angle = .0;
|
||||
while (placement_finder.get_point(x, y, angle, ignore_placement))
|
||||
{
|
||||
agg::trans_affine matrix = marker_trans_;
|
||||
agg::trans_affine matrix = tr;
|
||||
matrix.rotate(angle);
|
||||
matrix.translate(x, y);
|
||||
render_vector_marker(
|
||||
ctx_,
|
||||
pixel_position(x, y),
|
||||
|
@ -823,7 +827,7 @@ struct markers_dispatch : mapnik::noncopyable
|
|||
attributes_,
|
||||
matrix,
|
||||
opacity,
|
||||
true);
|
||||
false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue