大佬:小伙子我看你我看你骨骼精奇,跟我学js吧。
我 :什么样的啊
大佬:超简单的那种啊
我 :我信你个鬼,你个糟老头子坏得很
ArcGIS API for JavaScript如何使用本地的字体库
书接上文,之前介绍了如何将本地字体库格式例如ttf转换为PBF,那么如何在ArcGIS API for JavaScript(下文以jsAPI表示)进行使用呢。
在MapViews中Labeling支持 FeatureLayer, CSVLayer, StreamLayer, 以及Sublayer。你可以使用LabelClass对象的数组来构造labelingInfo,而LabelClass包含了labelExpressionInfo, labelPlacement, TextSymbol。TextSymbol则支持设置color, font, halo以及其他的属性进行要素标注。其中Font可以设置 Font.family, Font.style,和Font.weight属性,这三个属性就是基于.pbf格式的字体文件实现的。默认情况下jsAPI使用的是https://static.arcgis.com/fonts来进行访问这些字体文件,其中支持的字体可以从 List of currently supported fonts进行查看。那么如果我是内网环境,或者我想用我自己的好看的字体,我们要怎么办呢。
很简单,你可以使用esriConfig.fontsUrl属性来设置自己的字体库。在这里需要注意的一点是你的.pbf格式的字体文件需要遵循Esri的命名规范(例如"arial-unicode-ms-bold")。我们将已经转换好的.pbf格式的字体文件放置到web容器中(以IIS为例),然后我们需要在IIS管理器中添加MIME类型使其支持.pbf。添加内容如下:
之后我们就可以在jsAPI中开心的使用自己的字体库了。ps:当Font类型不可用时,会自动使用默认字体类型sans-serif,使用的是arial-unicode-ms字体文件,所以本地字体库中一定要添加该字体文件。
测试代码以及字体库我上传到了https://github.com/swaggyPYang/arcgisapi中。当然你也可以直接查看效果
作为一个90后,既然早早地抱起了保温杯,泡上了枸杞水,那就认真地过好每一天吧。