Support compound text-anchor values

This commit is contained in:
John Firebaugh
2014-11-04 10:53:35 -08:00
parent 0790b574b4
commit 051e1c32ae
2 changed files with 26 additions and 1 deletions

View File

@@ -157,7 +157,11 @@ enum class TextAnchorType : uint8_t {
Left,
Right,
Top,
Bottom
Bottom,
TopLeft,
TopRight,
BottomLeft,
BottomRight
};
MBGL_DEFINE_ENUM_CLASS(TextAnchorTypeClass, TextAnchorType, {
@@ -166,6 +170,10 @@ MBGL_DEFINE_ENUM_CLASS(TextAnchorTypeClass, TextAnchorType, {
{ TextAnchorType::Right, "right" },
{ TextAnchorType::Top, "top" },
{ TextAnchorType::Bottom, "bottom" },
{ TextAnchorType::TopLeft, "top-left" },
{ TextAnchorType::TopRight, "top-right" },
{ TextAnchorType::BottomLeft, "bottom-left" },
{ TextAnchorType::BottomRight, "bottom-right" }
});
// -------------------------------------------------------------------------------------------------

View File

@@ -106,18 +106,35 @@ void SymbolBucket::addFeatures(const VectorTileLayer &layer, const FilterExpress
float verticalAlign = 0.5;
switch (properties.text.anchor) {
case TextAnchorType::Top:
case TextAnchorType::Bottom:
case TextAnchorType::Center:
break;
case TextAnchorType::Right:
case TextAnchorType::TopRight:
case TextAnchorType::BottomRight:
horizontalAlign = 1;
break;
case TextAnchorType::Left:
case TextAnchorType::TopLeft:
case TextAnchorType::BottomLeft:
horizontalAlign = 0;
break;
}
switch (properties.text.anchor) {
case TextAnchorType::Left:
case TextAnchorType::Right:
case TextAnchorType::Center:
break;
case TextAnchorType::Bottom:
case TextAnchorType::BottomLeft:
case TextAnchorType::BottomRight:
verticalAlign = 1;
break;
case TextAnchorType::Top:
case TextAnchorType::TopLeft:
case TextAnchorType::TopRight:
verticalAlign = 0;
break;
}