我想以osm
文件的形式从OpenStreetMap注入一大块地图。
根据我在文档中看到的内容,Open Street Map Plugin似乎没有任何参数将源文件作为地图。它只适用于服务器。问题是我在运行我的应用程序时没有Internet连接。我需要在内部使用地图。
还有其他办法吗?
以下是创建Map的样板:
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
}
答案 0 :(得分:5)
2017年4月更新:QtLocation现在支持离线OSM磁贴。 见http://doc.qt.io/qt-5/location-plugin-osm.html
正如您所说,QtLocation目前没有为您提供offline option。此外,对于底图,它目前仅支持image tiles(不是您正在谈论的XML矢量OSM数据)约)。
你有几个选择:
在QML中:您可以使用ArcGIS Runtime SDK for Qt。 从版本10.26开始,它支持使用离线切片添加自定义地图图层。您需要首先获取OSM数据的PNG / JPG图块。这是一个支持OSM slippymap tile的example layer。
在C ++中:你会发现一些选项来显示可能需要或不能从OSM格式转换的矢量数据,以及更多的工作:
另外,不要忘记在Qt Bugtracker中投票支持上述问题!
答案 1 :(得分:2)
您可以生成或下载tiles以供离线使用。要生成切片,请查看TileMill或Maperitive。可以通过Marble和其他各种工具来下载磁贴,但请尊重磁贴服务器的使用政策!下载高缩放图块会导致图块服务器的负载过高,因为这些图块通常不会被缓存,需要动态渲染。