6

数か月前に、修理技術者の予約をスケジュールする Winform アプリを作成しました。顧客フォームに顧客の住所の地図を追加してアプリを更新し、技術者がオフィスを出るときに取るレポートにその地図を印刷したいと思います。

私は周りを見回してきましたが、これに対する良い解決策はまだ見つかりません。

私は現在、顧客の住所を持っています。私がやりたいことは、人気のあるオンライン マップ サイトの 1 つに住所を送信し、その場所のミニマップを取得することです。埋め込みリンク機能を使用して、Google マップでこれをほぼ行うことができます。ウェブサイトにアドレスを追加すると、次の HTML を取得できます。

<iframe width="300" height="300" frameborder="0" scrolling="no" 
   marginheight="0" marginwidth="0" 
   src="http://maps.google.com/maps?hl=en&amp;ie=UTF8&amp;t=h&amp;g=1193+Presque+Isle+Dr,+Port+Charlotte,+FL+33952&amp;s=AARTsJqsWtjYwJ7ucpVS6UU2EInkRk6JLA&amp;ll=27.012108,-82.087955&amp;spn=0.005735,0.006437&amp;z=16&amp;output=embed">
</iframe>

私の最初の計画は、単純にこの HTML を解析して、必要な顧客の住所をこの住所に挿入し、その結果をフォームのブラウザ オブジェクトに表示することでした。ただし、上記の iframe のアドレスを変更すると、Google から「Your client does not have permission to get URL ...」というメッセージが表示されます。

私は最終的にどのマップ サービスを使用するかについて好みはありません。重要なことは、ソリューションに関連する経費を含めることができず、Windows フォームから使用できることです。

これに取り組む方法について、アイデア/推奨事項/リソースを持っている人はいますか?

結果

ここにあるコントロールを使用することになりました。「大丈夫」な解決策だと思います...コードがそのままでは機能しないため、作業するのは面倒です。一般的なマップ API のどれもが winform をサポートしていないことを知って、私はかなり唖然としました。

4

3 に答える 3

1

IFRAMEを使用せずに、src=""内の値をWebBrowserコントロールの場所として直接使用するだけです。

また

IFRAMEをラップする最小限のhtmlドキュメントを作成し、それをMemoryStreamに書き出し、最初に戻し、MemoryStreamを使用してWebBrowserコントロールのDocumentStreamプロパティを設定します。

PW

于 2010-06-08T19:25:46.570 に答える
1

マップ ビューアー コントロールを開発するためのサンプル コードがいくつかあります(NB: これは厳密にライセンスの範囲内にあるとは思えません)。

それ以外の場合は、予算に応じて、 MapPoint ActiveX コントロールを使用できます

于 2009-01-08T16:34:30.337 に答える
0

Google マップとライブ マップの両方に公開 API があります。

あなたはwinformsをやっているので、おそらくライブマップを使用します。

http://dev.live.com/VirtualEarth/

CodePlex にはいくつかの例があります。

http://codeplex.com/Project/ProjectDirectory.aspx?TagName=Virtual%20Earth

于 2009-01-08T16:00:04.587 に答える