2011-11-15 16 views
6

マップを必要とするC#/ Winformsアプリケーションをビルドします(Googleマップ、Bingマップなど)。あなたは、WinFormsのアプリケーションに埋め込むために(好ましくは自由)を示唆しているどのようなマッピングプロバイダWindowsフォームアプリケーションを使用したマップ

  1. 私の質問など非商業的な使用 - しかし、私はTOU(ライセンス)によってひどく混乱しています商業目的。

  2. アプリが「オフライン」の場合、つまりマッピングサーバーからタイルを取得できない場合は、どのマッピングプロバイダをお勧めしますか。

  3. Google Earthは、非営利目的の唯一の条項のToUを読むまでかなり有望だったようですが、それはライセンスの購入によって放棄可能かどうか分かりますか?商業的な選択肢はありますか? Windowsアプリケーションの場合

答えて

6
  1. 、あなたは、地図データが必要になりますオフラインソリューションについて

  2. をブラウザコントロールを使用してWindowsフォームの統合にOpenStreetMapを探してみてください。最もよく使用される地図データ形式の1つは、ESRI規格であるシェイプファイルです。OpenStreetMapデータをダウンロードしてシェイプファイルに変換し、アプリケーションでインポートすることができます。マップレンダリングやその他のGIS機能にシェイプファイルを使用しているオープンソースプロジェクトがあります。すなわちSharpMapとDotSpatialは(どちらも、.NET実装されている)

  3. は、Google Earthのためのプロ検索することができ、また、これは素晴らしいです

+0

2つの位置の間の方向を取得するには、Webブラウザコントロール にこのコードを使用してこのコードを試してみてください。https://habiboncoding.wordpress.com/2015/04/ 24/offline-mapping-in-windows-applications-using-c / – Habib

0

(無料)NASAからの世界の風を試してみてください、あなたは異なってチェックすることができます法的要件と技術要件の両方を満たしているものを選択してください: Great Maps for Windows Forms & Presentation

デモをダウンロードしてチェックしてください。

0

私もそれについてのブログ記事を書かれている

System.Text.StringBuilder queryaddress = new System.Text.StringBuilder(); 
string sStreet = string.Empty; 
string sCity = string.Empty; 
string sState = string.Empty; 
string sPincode = string.Empty; 
string sProvider_no = string.Empty; 
queryaddress.Append("https://www.google.com/maps/dir/"); 

if (!string.IsNullOrEmpty(txtprovider_no.Text)) { 
    sProvider_no = txtprovider_no.Text.Replace(" ", "+"); 
    queryaddress.Append(sProvider_no + "," + "+"); 
} 
if (!string.IsNullOrEmpty(txtState.Text)) { 
    sState = txtState.Text.Replace(" ", "+"); 
    queryaddress.Append(sState + "," + "+"); 
} 
if (!string.IsNullOrEmpty(txtCity.Text)) { 
    sCity = txtCity.Text.Replace(" ", "+"); 
    queryaddress.Append(sCity + "," + "+"); 
} 
if (!string.IsNullOrEmpty(txtPincode.Text)) { 
    sPincode = txtPincode.Text.Replace(" ", "+"); 
    queryaddress.Append(sPincode); 
} 

queryaddress.Append("/"); 
sStreet = string.Empty; 
sCity = string.Empty; 
sState = string.Empty; 
sPincode = string.Empty; 
if (!string.IsNullOrEmpty(txtlindmark.Text)) { 
    sStreet = txtlindmark.Text.Replace(" ", "+"); 
    queryaddress.Append(sStreet + "," + "+"); 
} 
if (!string.IsNullOrEmpty(txtclient_city.Text)) { 
    sCity = txtclient_city.Text.Replace(" ", "+"); 
    queryaddress.Append(sCity + "," + "+"); 
} 
if (!string.IsNullOrEmpty(ttxtclient_city.Text)) { 
    sPincode = ttxtclient_city.Text.Replace(" ", "+"); 
    queryaddress.Append(sPincode); 
} 
if (!string.IsNullOrEmpty(txtclient_state.Text)) { 
    sState = txtclient_state.Text.Replace(" ", "+"); 
    queryaddress.Append(sState + "," + "+"); 
} 


WBR.Navigate(queryaddress.ToString()); 
関連する問題