我想在离线环境中从MBTiles文件中提取单个Vector Tile并根据Mapbox Style Specification 对其进行样式设置。
研究:
Mapbox 有一个静态 Api,它完全符合我的要求,但显然需要互联网访问。
Mapbox 还具有Mapbox-Gl-Native和Mapbox-Gl-JS库,它们似乎非常适合从矢量切片生成地图,但我似乎无法找到一种方法来生成单个静态图像而不是整个地图。有办法吗?
Tessera是一个能够设置矢量数据样式但仅适用于 tm2 项目或 mapnik 样式表的切片服务器
背景: 使用Telerik Rad Map WPF 控件或 .NET WPF 的任何 Map 控件,我想使用 vector.mbtiles 作为离线地图源。
我能够从 mbtiles 中提取单个矢量切片并使用mapbox-vector-tile-cs将其反序列化为可用信息,甚至能够从数据中创建基本位图图像并将其提供给 Telerik,它能够绘制简单的地理地图,但城市和街道标签需要更复杂的代码,以防止标签相互重叠并正确倾斜。
我目前能做的:
- 使用自定义 Telerik TiledProvider 和自定义 Telerik TiledMapSource
- 从 mbtiles 中提取矢量瓦片
- 将矢量切片反序列化为 C# 类
- 使用矢量数据创建不带标签的数据位图
我的问题:
是否有任何语言的现有库,甚至是能够根据Mapbox 样式规范或任何可配置的样式规范有效地设置单个矢量文件样式的可执行文件?
任何帮助都会很有用。我已经开始移植 Mapbox-Gl-Native 库,这很困难,因为它针对移动平台并且做了很多我不需要的事情,而且我无法弄清楚如何简化它以仅处理一个图块要求。Telerik 只要求提供特定 x/y/zoom 的位图,这就是我需要完成的全部工作。