You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt QML控制OSM地图时瓦片获取Permission denied错误求助

问题解决办法
  1. 修正非法缩放级别配置
    OSM地图的标准缩放级别范围为1~19,仅部分自定义图源最高支持到20级,你当前配置zoomLevel: 60远超过合法范围,会请求不存在的瓦片资源,直接修改为合理值即可测试,例如:
zoomLevel: 10
  1. 更新OSM插件配置,适配HTTPS协议要求
    你当前使用的http://maps-redirect.qt.io/osm/5.6/是Qt早年的HTTP重定向地址,目前主流OSM图源均已强制要求HTTPS访问,直接替换Plugin配置为以下内容,直接绑定官方公共图源即可:
Plugin {
    id: mapPlugin
    name: "osm"
    PluginParameter {
        name: "osm.mapping.custom.host"
        value: "https://tile.openstreetmap.org/"
    }
    PluginParameter {
        name: "osm.mapping.providersrepository.disabled"
        value: "true"
    }
    // 可选:自定义本地瓦片缓存路径,避免默认目录无读写权限
    PluginParameter {
        name: "osm.mapping.cache.directory"
        value: "./osm_tile_cache"
    }
}
  1. 检查网络权限与SSL依赖
  • 若在移动端运行:Android需要在AndroidManifest.xml中添加<uses-permission android:name="android.permission.INTERNET" />权限,iOS需要在Info.plist中配置NSAppTransportSecurity规则允许网络访问。
  • 若在桌面端运行:确认系统防火墙/代理没有限制程序的网络访问,同时保证Qt运行环境包含OpenSSL依赖,Windows下需要将对应版本的libcrypto-1_1-x64.dll、libssl-1_1-x64.dll放到程序运行目录。
  1. 修正C++代码属性定义笔误
    你提供的C++代码中Q_PROPERTY定义存在笔误,第一个属性名误写为gnss_log,和读取函数名不匹配,会导致QML侧无法正常读取该属性值,修正为:
Q_PROPERTY(double gnss_long READ gnss_long WRITE set_gnss_long NOTIFY gnss_long_changed);

内容的提问来源于stack exchange,提问作者unity123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:45:00