2015-09-22 29 views
5

Google Maps APIと混同しないように、Gmapを使ってC#(偉大なAPI、btw)でアプリケーションを開発しています。GMap .netオフライン

私の問題は、私のクライアントの中にはインターネット接続がないということです。そのため、背景(地図)をオフラインで表示する必要があるのです。私はサーバーから自分のデータを取得するためにプロパティGMap.NET.AccessMode.ServerAndCache;を使用していましたが、現在はGMap.NET.AccessMode.CacheOnlyを完全なキャッシュで使用できるようにしたいと考えています。

キャッシュを接続してオフラインで使用する準備をすることはオプションではないため、PCは決してインターネットに接続されません。いくつかの調査の後、私はOpenStreetMapが無料のマップを使用できる唯一のオープンソースマップであることを学びました。ヨーロッパの20GBマップをダウンロードしましたが、キャッシュとしてどのように指定するかわかりません(私はキャッシュフォルダを見つける方法を知っています)。

ほとんどの場合、私のGoogle検索では、localhost経由でアクセスされたDB内のすべてのマップのタイルを使って仮想sqliteサーバーを作成しようとしている人がいましたが、正直なところ私はこれが非常に複雑だと思います。これらのマップをオフラインで使ったり、このapiのドキュメントのリンクを使えるようにする考えがあります(私はソースを見つけましたが、ほとんどコメントや説明はありません)。

事前に感謝し、私の悪い英語を申し訳ありません。

réponsesenfrançaisbienvenues。

+0

のようになります。イントラネットにもアクセスできませんか?彼らがイントラネットにアクセスできる場合は、独自のOpenStreetMapタイルサーバーをセットアップできます。 –

答えて

2

オフラインで使用するためにタイルをプリフェッチするための別のプログラムを作成できます。またはGMap NETのデモプログラムを使用してください。https://github.com/radioman/greatmaps/tree/master/Demo.WindowsPresentation

以下のコードは、ALT +マウスの最初のボタンを使用して領域を選択した後のボタンプレスのコードです。

 RectLatLng area = mapView.SelectedArea; 

     if (!area.IsEmpty) 
     { 
      for (int i = (int)mapView.Zoom; i <= mapView.MaxZoom; i++) 
      { 
       TilePrefetcher obj = new TilePrefetcher(); 
       obj.Title = "Prefetching Tiles"; 
       obj.Icon = this.Icon; 
       obj.Owner = this; 
       obj.ShowCompleteMessage = false; 
       obj.Start(area, i, mapView.MapProvider, 100); 
      } 

      DialogResult = true; 
      Close(); 
     } 
     else 
     { 
      MessageBox.Show("No Area Chosen", "Error", MessageBoxButton.OK, MessageBoxImage.Error); 
     } 

(主にGMAP NETデモソースからコピー)

https://github.com/radioman/greatmaps/tree/master/Demo.WindowsPresentation

ファイルはCに格納されています:\ Users \ユーザー[ユーザー名] \のAppData \ローカル\ GMap.NET \ TileDBv5 \ en

タイルを正常にプリフェッチしたら、ファイルをオフラインPCの同じ場所にコピーして使用する必要があります(または、GMap.NETフォルダ全体をUSB経由でオフラインPCにコピーするなど) )

0

gmap.CacheLocation = @"C:\Users\xxx\Desktop\";を使用してキャッシュの場所を指定します。

同じディレクトリの下の別のマシンにキャッシュをコピーするだけで動作します。地図データをキャッシュに

、私のgithubのを確認しhttps://github.com/williamwdu/GMap.NETChacher

キャッシュディレクトリは、「私のクライアントのいくつかは、インターネットに接続していないだろう」このTileDBv5\en\Data.gmdb

関連する問題