首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写自定义的Qt位置GeoServices插件以使用地理引用的图像文件作为映射源。

编写自定义的Qt位置GeoServices插件以使用地理引用的图像文件作为映射源。
EN

Stack Overflow用户
提问于 2017-12-06 09:08:52
回答 2查看 1.8K关注 0票数 3

我目前正在开发一个Qt快速应用程序,该应用程序将为一个较小的区域(1平方公里左右)提供一个地图查看器,其地图细节将在一个地理引用的图像文件(GeoTIFF、geo引用的PDF、ESRI形状文件等)中提供,以及当前位置的显示、操作员标识的感兴趣点等。它的主要职责是显示自定义地图(而不是从公共地图服务提供商(OSM、MabBox、ESRI等)检索的通用地图),并且经常用于连接性有限的地区。

一项广泛的网络搜索发现了过去曾进行过类似查询的其他人(此处、Qt论坛等),对解决办法的一般建议如下:

  • Qt的ArcGIS运行时并不适用于我,因为我打算使用ARM处理器瞄准嵌入式linux设备,而ArcGIS也没有为任意目标提供交叉编译的源代码。他们最近发布了一个Android版本,但还没有针对ARM linux的版本)
  • QGIS开发者图书馆GPL牌照与我的商业发展不兼容
  • 使用Qt Location map 组件与本地贴片服务器或离线瓷砖集合(一些插件最近引入了对此的支持)似乎有点麻烦,因为我主要使用的是自定义映射,而不是公共地图服务器映像的脱机副本,而且我的图像不会很大,无法真正保证以其他方式进行贴图。

从零开始开发Quick是可行的,但考虑到现有的Qt Location map 组件为我的地图需要做的一切提供了一个定义良好的预先存在的前端接口,并且具有可扩展的基于插件的体系结构,编写自定义的Quick插件似乎是最明智和最优雅的方法。

我已经开始研究现有插件的源代码,但我无法摆脱这样一种感觉:在一个有着80亿人口的世界里,“太阳底下没有什么新东西”,如果这是个好主意的话,已经做好了.

对Qt位置模块更熟悉的人会愿意评论吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-07 16:26:58

由于地理参照的图像可以任意大,因此将它们转换成瓷砖金字塔是标准的,这样就可以在任何硬件上高效地显示它们(在最坏的情况下,以双倍大小为代价,这取决于您想要多少层)。即使你会写你自己的地理服务插件,你很可能最终会(直接或通过使用第三方代码)平铺你的地理位置。

这就是说,osm.mapping.custom.host)允许您使用自定义项集( http://doc.qt.io/qt-5/location-plugin-osm.html,查找大多数方式提供的http://doc.qt.io/qt-5/location-plugin-osm.html) (http、https、file、qrc等)。

因此,继续,启动QGis,安装QTiler插件,并转换您的图像。如果您需要通过网络直接向客户端提供这些图片(因此需要在客户机上进行转换),则可以查看QTiler的功能,或者构建gdal管道(gdal_translate、gdalwarp和gdal2tiles),并将相关的gdal位随应用程序一起传送。

如果同时需要多个映像,可以使用具有不同插件参数的多个插件元素,或者可以分叉osm插件并支持多个自定义主机。

票数 1
EN

Stack Overflow用户

发布于 2017-12-07 23:21:29

根据Paul的答复,以及对Qt论坛和邮件列表上的相同查询的几个类似答复,再加上我自己的调查,我得出以下结论:

生成一个自定义的Qt位置GeoServices插件,直接从一个地理引用的图像文件中提供地图图像,这不是一个好主意,因为实现不那么简单,而且在实践中,任何非平凡的地图映像都可能足够大,以至于最初的平铺步骤,然后使用一个标准的贴图插件引用一个本地瓷砖集将是更合适的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47670504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档