Define label positions for JamPolygon using polylabelr::poi()
Source:R/venndir-polyclip.R
labelr_JamPolygon.RdDefine label positions for JamPolygon using polylabelr::poi()
Arguments
- jp
JamPolygon- precision
numericpassed topolylabelr::poi(), default 1.- add_to_jp
logicaldefault FALSE, indicating whether to add"label_x","label_y"intojp@polygonsfor persistence.- subset_multipart
logicaldefault TRUE, whether to subset multipart polygons to label the largest area.- ...
additional arguments are ignored.
Details
This function is a simple wrapper for polylabelr::poi(), which
recognizes holes inside polygons.
Todo:
Consider basic support for non-overlapping label positions.
First pass might be to use non-overlapping regions of a polygon among a set of polygons.
Second pass would be to use the region with fewest overlaps among other polygons in the set, to define the label position. This rule could serve to solve (1) as well.
See also
Other JamPolygon:
JamPolygon-class,
[,JamPolygon-method,
add_orientation_JamPolygon(),
area_JamPolygon(),
bbox_JamPolygon(),
buffer_JamPolygon(),
check_JamPolygon(),
eulerr_to_JamPolygon(),
farthest_point_JamPolygon(),
find_venn_overlaps_JamPolygon(),
has_point_in_JamPolygon(),
intersect_JamPolygon(),
label_fill_JamPolygon(),
label_outside_JamPolygon(),
label_segment_JamPolygon(),
minus_JamPolygon(),
nearest_point_JamPolygon(),
nudge_JamPolygon(),
plot.JamPolygon(),
point_in_JamPolygon(),
polyclip_to_JamPolygon(),
polygon_circles(),
polygon_ellipses(),
sample_JamPolygon(),
split_JamPolygon(),
union_JamPolygon(),
update_JamPolygon()
Examples
df3 <- data.frame(name=c("polygon1", "polygon2"),
label=c("polygon A", "polygon B"),
x=I(list(
list(c(1, 6, 6, 1),
c(2, 5, 5, 2),
c(3, 4, 4, 3)),
list(
c(12, 15, 15, 12) - 3,
c(13, 14, 14, 13) - 3)
)),
y=I(list(
list(c(1, 1, 6, 6),
c(2, 2, 5, 5),
c(3, 3, 4, 4)),
list(
c(2, 2, 5, 5),
c(3, 3, 4, 4))
)),
fill=jamba::alpha2col(c("gold", "firebrick"), alpha=0.7))
jp3 <- new("JamPolygon", polygons=df3);
plot(jp3);