Mapbox Maps SDK for Qt 在Windows下编译

一、代码 https://github.com/mapbox/mapbox-gl-native

二、编译步骤 https://github.com/mapbox/mapbox-gl-native/tree/master/platform/qt

三、遇到的问题:

  1、cmake执行过程中会用curl命令下载所需要的资源,所以需要在环境变量中设置curl的路径。curl要使用ssl版本。

  2、因为网速或不可明说的原因,需要用科学方法上网。

  3、如果网络慢,可能会导致下载超时。在文件cmake/mason.cmake中,找到执行curl的语句,把超时时间设置长一些。

  4、cmake生成工程命令中,添加Qt的安装目录,例如:-DCMAKE_PREFIX_PATH=D:\Qt\Qt5.9.2_3\5.9.2\msvc2015_64。

  5、cmake编译命令中,最后的编译器自定义指令 “-- /m” 删除,因为编译器并不能识别这个指令。

  6、mbgl内部使用sqlite数据库,所以要正确放置sqlite插件的位置。即在exe同级目录下放置 sqldrivers/qsqlite.dll 。
    否则运行时会抛出异常。

  7、bug修改:
    a、文件:asset_file_source.cpp
        函数:acceptsURL
        原因:如果url长度小于assetProtocol长度(url为空时),数组越界
        相同bug:local_file_source.cpp

  8、在main中添加token,token在mapbox官网注册获取。
      // settings.setAccessToken("your token");

  9、运行时会加载本地资源,如图标。资源使用Qt的资源文件管理来管理,文件为mbgl-qt项目的common.qrc。
    资源文件中引用的文件,可以在下载的源码目录中找到。

  10、运行时会使用mapbox的webAPI下载预定义的几种styles(json字符串),所以运行时也要注意上网方式。

  11、软件使用方式,可以查看 mapwindow.cpp 中的事件处理函数。

四、附编译步骤
  

猜你喜欢

转载自www.cnblogs.com/kohlrabi/p/9009204.html