Neptune 3 UI - 地图应用
在Neptune 3中,内置了一个名为"com.pelagicore.map"的应用,作为使用Mapbox GL插件作为后端导航的应用。
Qt位置Mapbox GL插件概述
此地理位置服务插件允许应用使用Qt位置API访问Mapbox基于位置的服务。这些服务的使用受Mapbox服务条款的约束。使用这些服务需要访问令牌。数据由OpenStreetMap和其他提供。
有关更多信息,请参阅MapBox GL插件文档。
可以通过创建自定义地图样式来自定义矢量地图的外观和行为。这可以通过像Mapbox Studio这样的工具来完成。插件需要样式URL来加载地图所需的样式。
平台支持
Qt位置Mapbox GL插件支持以下平台
- Microsoft Windows (win32) – 支持,需要MinGW 5.0+ MinGW
- Linux X11 – 支持,需要GCC 4.9+
- macOS – 支持
- Android – 支持
- 嵌入式Linux – 支持,需要GCC 4.9+
- iOS – 支持
- WinRT – 不支持
应用参数
Mapbox插件需要一些参数,例如访问令牌、URL样式、缓存目录。
访问令牌
为了使用Mapbox的任何工具、API或SDK,用户需要一个Mapbox访问令牌。Mapbox使用访问令牌将API资源请求与您的账户关联起来。目前Neptune 3正在使用从QtAuto Mapbox账户获取的专用访问令牌。
Parameter name: "mapbox.access_token" Access token: pk.eyJ1IjoicXRhdXRvIiwiYSI6ImNqY20wbDZidzBvcTQyd3J3NDlkZ21jdjUifQ.4KYDlP7UmQEVPYffr6VuVQ
样式URL
另外,可以将逗号分隔的Mapbox样式URL添加到可用的样式URL中。额外的样式将添加到Map项的supportedMapTypes属性中。
Neptune 3有两个不同的样式被指定并正在使用。这两个样式用于Neptune 3特性中的更改UI主题,作为亮色和暗色主题的一部分。
readonly property string defaultLightThemeId: "mapbox://styles/qtauto/cjcm1by3q12dk2sqnquu0gju9" readonly property string defaultDarkThemeId: "mapbox://styles/qtauto/cjcm1czb812co2sno1ypmp1r8" PluginParameter { name: "mapboxgl.mapping.additional_style_urls" value: [priv.defaultLightThemeId, priv.defaultDarkThemeId].join(",") }
缓存目录
将绝对路径的地图瓦片缓存目录用作网络磁盘缓存。缓存的默认位置是QStandardPaths::writableLocation()返回的位置中的QtLocation/mapboxgl子目录,调用时使用QStandardPaths::GenericCacheLocation作为参数。在没有共享缓存概念的系统上,使用特定于应用程序的QStandardPaths::CacheLocation。
这是一个环境缓存,意味着它会动态地填充,直到达到大小限制,此时会回收最少使用的瓦片。此缓存还可用于存储离线瓦片,但必须使用离线工具填充离线数据库。离线数据库将与环境缓存一起在同一文件中工作。在创建离线数据库之前,请确保遵守Mapbox的服务条款。
注意:地图瓦片缓存文件名必须是"mapboxgl.db"。使用离线工具时,默认输出为"offline.db"。为了使用离线工具生成的输出,必须将该数据库文件移动到正确的目录,并将其重命名为"mapboxgl.db"。离线工具还提供"--output"参数来指定生成的输出名称。
注意:目前,离线地图仅在德国慕尼黑的部分特定区域可用(由于允许的最大离线地图缓存大小,详细地图仅在浅色主题下可用)。
// Offline maps support PluginParameter { name: "mapboxgl.mapping.cache.directory"; // needs to be an absolute filepath so strip the file:/// protocol; // several leading slashes don't matter value: mapPlugin.cacheDirUrl.toString().substring(mapPlugin.cacheDirUrl.indexOf(':')+1) }
©2019 Luxoft Sweden AB。本文件中包含的文档贡献者是各自所有者的版权拥有者。
本提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。
Qt及其相关标志是芬兰Qt公司及其/或其他全球国家/地区的商标。所有其他商标均为其各自所有者的财产。