質問
数か月前に、修理技術者の予約をスケジュールするWinformアプリを作成しました。顧客フォームに顧客の住所の地図を追加してアプリを更新し、技術者がオフィスを離れるときに取得するレポートにその地図を印刷したいと思います。
探し回っていますが、これに対する良い解決策はまだ見つかりません。
現在、お客様の住所があります。私がやりたいのは、人気のあるオンラインマップサイトの1つに住所を送信し、ロケールのミニマップを取得することです。 Googleマップで埋め込みリンク機能を使用して、これをほぼすべて 実行できます。 Webサイトにアドレスを追加すると、次のHTMLを取得できます。
<iframe width="300" height="300" frameborder="0" scrolling="no"
marginheight="0" marginwidth="0"
src="http://maps.google.com/maps?hl=en&ie=UTF8&t=h&g=1193+Presque+Isle+Dr,+Port+Charlotte,+FL+33952&s=AARTsJqsWtjYwJ7ucpVS6UU2EInkRk6JLA&ll=27.012108,-82.087955&spn=0.005735,0.006437&z=16&output=embed">
</iframe>
最初の計画は、このHTMLを単純に解析し、このアドレスに必要な顧客のアドレスを挿入してから、フォーム上のブラウザオブジェクトに結果を表示することでした。ただし、上記のiframeでアドレスを変更すると、「クライアントにはURLを取得する権限がありません...」メッセージ。
最終的にどのマップサービスを使用するかについての好みはありません。重要なことは、ソリューションに関連する費用を持たせず、Windowsフォームから使用できることです。
誰もこれに取り組む方法についてのアイデア/推奨事項/リソースを持っていますか?
結果:
こちらで見つかったコントロールを使用することになりました。 「大丈夫」だと思う解決策...コードがそのままでは動作しないため、動作するのは退屈です。人気のあるマップAPIのいずれもwinformをサポートしていないことに非常に驚きました。
解決
Googleマップとライブマップの両方にパブリックAPIがあります。
winformを実行しているので、おそらくライブマップを使用します。
http://dev.live.com/VirtualEarth/
CodePlexにはいくつかの例があります。
http://codeplex.com/Project/ProjectDirectory.aspx?TagName = Virtual%20Earth
他のヒント
サンプルコードマップビューアーコントロールを開発するため(NB:これは厳密に彼らのライセンス内にあるとは思わない)
それ以外の場合、予算に応じて、 MapPoint ActiveXコントロールを使用できます
src =&quot;&quot;内の値を使用するだけです。 IFRAMEを使用せずに、WebBrowserコントロールの場所として直接。
または
IFRAMEをラップする最小限のhtmlドキュメントを構築し、それをMemoryStreamに書き出し、再度検索して最初に戻し、MemoryStreamを使用してWebBrowserコントロールのDocumentStreamプロパティを設定します。
PW