2017-01-22 11 views
3

QtでQMLを使用してインターネット接続が必要なOpenStreetMap(osmプラグインを使用)を表示しています。 同じことをやってもオフラインで実行できる方法はありますか?たとえば、自分のタイルサーバーを実行しています(ただし、それは簡単です)。または、私がそれをすばやく行うことができるライブラリを使用してください。OpenStreetMapをQML(Qt)でオフラインで実行する方法

ところで私は自分のプログラムをUbuntuで実行しています。

これを行う方法についての助け、特に誰かが実行するステップを提供できる場合は、喜んでいただければ幸いです。

ありがとうございます。

+1

[QtのQMLのためのArcGISのランタイムSDK](https://developers.arcgis.com/qt/10-2/qml/api-reference/index.html)を見てみましょう – folibis

答えて

3

私は、以下の手順で(QMLを使って)Qtの中でOpenStreetMapのオフラインを表示するために管理している:

  1. ビルド/ローカルホスト上のタイルサーバーを実行します。私は、マッププラグイン(http://doc.qt.io/qt-5/location-plugin-osm.html)に次のパラメータを含める必要がありました、Qtの中に私のmap.qmlファイルでhttps://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/
  2. :私は、次のガイドを使用していた

    最後に
    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 
        } 
    } 
    
  3. 、のactiveMapTypeプロパティマップローカルタイルサーバーでマップを使用するには、QMLタイプをMapType.CustomMaphttp://doc.qt.io/qt-5/qml-qtlocation-maptype.html)に設定する必要があります。

+0

また、出荷することができます独自のjsonプロバイダ定義をアプリケーションに設定し、osm.mapping.providersrepository.addressを設定します。 qtのほぼすべてのもので、このアドレスはhttp://とfile:///またはqrc:/とすることもできるので、あなたのアプリで各マップタイプのカスタムアドレスを送ることができます –

関連する問題