0

我正在 Mapbox Studio 中设计地图,使用mapbox.mapbox-terrain-v2'contour层来确定等高线。这是基于户外风格。

在户外样式中,等高线标签的方向是使文本显示在水平 -90° 和 90° 之间,因为设置了保持文本直立。如果我禁用它,那么文本会以任何角度定向。然而,这个文本的方向与我想要的完全相反:它总是指向下坡,而不是上坡。请参见下面的第一张图片:请注意,在海拔从北向南增加的地方,数字是直立的。

我的目标是使用军械测量风格将数字定向上坡(直立,海拔从南到北增加),如下面的第二张图片所示。

我现在的风格可以在这里看到。我尝试过使用该text-rotate字段,但这会单独旋转每个字符,并且似乎没有一个函数可以反转字符串来抵消这种情况。此外,它围绕每个字母的顶部旋转,这意味着结果与实际轮廓线有偏移,而text-translate+text-translate-anchor似乎无法解决这个问题。

当前状态

想要的

4

1 回答 1

1

正如您所注意到的,text-rotatesymbol图层上使用placement: line会单独旋转每个字符。因此,您需要反转字符串,这在可用的表达式中是不可能的。

然而。有一种 hacky 解决方法可以为您解决问题。您可以简单地硬编码所有可能的高度及其反转:

["match", ["get", "ele"],
750, "m057",
700, "m007",
650, "m056",
600, "m006",
550, "m055",
500, "m005",
 ""
]

结合 a text-offsetof 0,1.5,这实际上看起来没问题:

在此处输入图像描述

我已经在这里发布了样式

于 2020-07-15T04:59:12.993 回答