在 QML 中使用离线交互式地图
Use an offline interactive map in QML
我想以 osm
文件的形式注入从 OpenStreetMap 获得的一大块地图。
根据我在文档中阅读的内容,Open Street Map Plugin 似乎没有任何将源文件作为地图的参数。它仅适用于服务器。问题是 运行 我的应用程序无法连接到 Internet。我需要在内部使用地图。
还有其他方法吗?
这是创建地图的样板文件:
Plugin {
id: somePlugin
// code here to choose the plugin as necessary
}
Map {
id: map
plugin: somePlugin
center {
latitude: -27
longitude: 153
}
zoomLevel: map.minimumZoomLevel
gesture.enabled: true
}
2017 年 4 月更新: QtLocation 现在支持离线 OSM 磁贴。
参见 http://doc.qt.io/qt-5/location-plugin-osm.html
正如您所注意到的,QtLocation 目前没有为您提供 offline option. Also, for basemaps it currently only supports image tiles(不是您正在谈论的 XML 矢量 OSM 数据)。
您有几个选择:
在 QML 中:您可以使用 ArcGIS Runtime SDK for Qt。
从版本 10.26 开始,它支持添加带有离线图块的自定义地图层。您需要先获取 OSM 数据的 PNG/JPG 分块。这是一个支持 OSM slippymap 瓦片的 example layer。
在 C++ 中:您会发现一些显示矢量数据的选项,这些数据可能需要或不需要从 OSM 格式转换,并且您需要做更多工作:
- http://wiki.openstreetmap.org/wiki/Libosmscout
- https://www.mapbox.com/blog/qmapboxgl/
- QGis 是用 Qt 制作的,许多其他开源地理项目也是如此,因此它们可能会有所帮助
还有,别忘了在 Qt Bugtracker 中为上面提到的问题投票!
您可以生成或下载tiles for offline usage. For generating tiles take a look at TileMill or Maperitive. Downloading tiles can be achieved via Marble和各种其他工具,但请尊重瓦片服务器的使用政策!下载高缩放图块会导致图块服务器负载过高,因为这些图块通常不会缓存,需要即时渲染。
我想以 osm
文件的形式注入从 OpenStreetMap 获得的一大块地图。
根据我在文档中阅读的内容,Open Street Map Plugin 似乎没有任何将源文件作为地图的参数。它仅适用于服务器。问题是 运行 我的应用程序无法连接到 Internet。我需要在内部使用地图。
还有其他方法吗?
这是创建地图的样板文件:
Plugin {
id: somePlugin
// code here to choose the plugin as necessary
}
Map {
id: map
plugin: somePlugin
center {
latitude: -27
longitude: 153
}
zoomLevel: map.minimumZoomLevel
gesture.enabled: true
}
2017 年 4 月更新: QtLocation 现在支持离线 OSM 磁贴。 参见 http://doc.qt.io/qt-5/location-plugin-osm.html
正如您所注意到的,QtLocation 目前没有为您提供 offline option. Also, for basemaps it currently only supports image tiles(不是您正在谈论的 XML 矢量 OSM 数据)。
您有几个选择:
在 QML 中:您可以使用 ArcGIS Runtime SDK for Qt。 从版本 10.26 开始,它支持添加带有离线图块的自定义地图层。您需要先获取 OSM 数据的 PNG/JPG 分块。这是一个支持 OSM slippymap 瓦片的 example layer。
在 C++ 中:您会发现一些显示矢量数据的选项,这些数据可能需要或不需要从 OSM 格式转换,并且您需要做更多工作:
- http://wiki.openstreetmap.org/wiki/Libosmscout
- https://www.mapbox.com/blog/qmapboxgl/
- QGis 是用 Qt 制作的,许多其他开源地理项目也是如此,因此它们可能会有所帮助
还有,别忘了在 Qt Bugtracker 中为上面提到的问题投票!
您可以生成或下载tiles for offline usage. For generating tiles take a look at TileMill or Maperitive. Downloading tiles can be achieved via Marble和各种其他工具,但请尊重瓦片服务器的使用政策!下载高缩放图块会导致图块服务器负载过高,因为这些图块通常不会缓存,需要即时渲染。