当前位置:  开发笔记 > 编程语言 > 正文

如何在QML(Qt)中离线运行OpenStreetMap

如何解决《如何在QML(Qt)中离线运行OpenStreetMap》经验,为你挑选了1个好方法。

我在Qt上使用QML来显示OpenStreetMap(使用osm插件),这需要互联网连接.有没有办法我可以做同样但离线运行?例如,运行我自己的磁贴服务器(但这样做有多容易)?或者使用一个可以让我快速完成的库.

顺便说一下,我在Ubuntu上运行我的程序.

如何做到这一点的任何帮助,特别是如果有人可以提供要完成的步骤,将不胜感激.

谢谢.



1> Soc..:

我已设法在Qt(使用QML)中按照以下步骤离线显示OpenStreetMap:

    在localhost上构建/运行切片服务器.我使用了以下指南:https://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/

    在我的Qt中的map.qml文件中,我必须在地图插件中包含以下参数(http://doc.qt.io/qt-5/location-plugin-osm.html):

    Plugin {
       id: osmMapPlugin
       name: "osm"
    
       //provide the address of the tile server to the plugin
       PluginParameter {
          name: "osm.mapping.custom.host"
          value: "http://localhost/osm/"
       }
    
       /*disable retrieval of the providers information from the remote repository. 
       If this parameter is not set to true (as shown here), then while offline, 
       network errors will be generated at run time*/
       PluginParameter {
          name: "osm.mapping.providersrepository.disabled"
          value: true
       }
    }
    

    最后,必须activeMapTypeMap QML类型的属性设置为MapType.CustomMap(http://doc.qt.io/qt-5/qml-qtlocation-maptype.html),以使地图与本地切片服务器一起使用.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有