kikitte/MVTImageryProvider

注记似乎没办法显示中文

hr0109 opened this issue · 7 comments

openmaptiles.org的数据源,注记为英文时可以正常显示,把text-field改为{name:zh}则全部无法显示,求助

最好是能提供造成这个问题的代码样例。
我这边测试使用openmaptiles.org能显示中文注记,仓库更新了Example2使用了这个网站的一个基础样式。
image

我反复测试了一下,似乎问题主要在 https://maputnik.github.io/osm-liberty/style.json 这个样式上出现,而且触发的条件也不在于中文与否,部分英文标签也触发了标签消失问题。

maputnik osm-liberty
Screenshot 2021-09-21 100821

MVTImageryProvider osm-liberty
Screenshot 2021-09-21 100745

另外还发现奇怪的问题,路网线宽似乎太粗了,是什么原因导致的呢?

maputnik basic
Screenshot 2021-09-21 100915

MVTImageryProvider basic

顺祝中秋快乐!感谢!

@hr0109 这个样式 https://maputnik.github.io/osm-liberty/style.json 里面有两个地方需要提供key,其中一个是字体文件的url,应该替换掉这些key占位字符串为真实的key才能访问到字体文件以正确渲染标签。
image

至于路网渲染感觉跟mapbox-gl依赖相关,这方面我没多少涉及,还需要深入看看。

key的话直接使用maputnik提供的公用token就行,KDhMfHvorAFkFe64wlZb
basic样式也是使用的这个key

您可以看到右侧那个East china sea就是能显示出来的,f12查看请求也都是成功的

我也感觉可能和依赖有关系,感觉解决起来不容易

@hr0109 我验证过,获取style object后把原来需要key的地方替换掉就连可以正常显示标注了。

@hr0109 问题出现在Mapbox basic render渲染时总是使用zoom 16,导致所有依赖zoom层级的图层属性(比如线条宽度)总是在16的层级下进行计算,这个层级下道路计算得到的宽度大约是16.4px所以看起来比较粗而且不会随着层级改变。目前已经修正这种情况,每次渲染之前都会根据当前渲染的瓦片更新zoom,此项修改已经提交到仓库。感谢反馈!
以下是效果图,看起来好多了。
image
image

非常感谢!