5

OSMタイルをダウンロードしてアプリに表示できるvclまたはプロジェクト(delphi)はありますか?

ブラウザを埋め込んでみましたが、うまくいきましたが、地図をオフラインで表示する方法が必要です。

4

5 に答える 5

3

OpenStreetMap プロジェクトについてはよくわかりませんが、プロジェクト自体に、ページ内の地図を「表示」するためのソフトウェアがある可能性があります。

目標を達成することができます: マップをオフラインで表示するには、現在ユーザー インターフェイス用に使用しているのと同じ基本構造 (組み込みブラウザー) を使用します。

変更するのは、ブラウザーが ( http://localhost:3458 ) のようなものに接続する URL です。たとえば、Indy TIdHTTPServer をポート 3458 (ポートの例にすぎません) にバインドして、アプリケーションを独自の Web サーバーにします。

そうすれば、 Delphi IDE(>= 2005)自体が起動時に表示されるメイン ページ(実際には組み込み Web ブラウザ)のコンテンツを提供するのと同じように、アプリケーション内から組み込みブラウザのコンテンツを提供できます。 .

そのブラウザーに、ビューアー ページ、そのすべての依存関係、および OSM ファイルを提供します。この考えに対する唯一の制限は、ビューアがクライアント側ですべてのことを行わなければならないことです (たとえば、javascript、flash など)。サーバー側の動作を「模倣」したり、アプリケーションをスクリプト エンジンに統合したりしない限り (あまり簡単ではありません)、サーバー側のスクリプトは必要ありません。

もう 1 つのチャンスは、Delphi との OpenStreetMap 統合と(動作していない) サイト デモを提供するTHBImageを使用することです。

于 2010-01-28T10:24:44.203 に答える
3

おっとっと!メッセージにいくつかのハイパーリンクを提供しようとしましたが、新しい StackOverflow ユーザーとして、1 つだけに制限されています。embarcadero.public.delphi.thirdpartytools.general の「マップを表示するには解決策が必要です」というメッセージ スレッド (2010 年 1 月 25 日) を確認してください。

私は同様の問題を解決しようとしています。Delphi を使用して郡全体または都市全体のマップを表示し、カスタム アイコンをマップに配置する必要があります。ルーティングや非常に詳細な地図は必要ありません。過去に、TImage 上のカスタム アイコンに TMS の「ホットスポット」コンポーネントを使用しました。ここで、クライアントが静的背景画像用に独自のマップを選択する方法が必要です。

OpenStreeMap タイルの表示を実装するフリーウェア MFC GUI コントロール クラス (ソース付き): www.naughter.com/osmctrl.html そこの zip には、それがどのように機能するかを示す実行可能ファイルがあります。

このユニットは、OpenStreetMap プロジェクトの TileServer と、必要に応じて他の便利なユーティリティの URL を計算することです。Pascal プログラムで OpenStreetMap を使用したい場合は、これが最適です。 http://code.google.com/p/openstreetmap-fpk/

また、無料のタイガー/ライン マップの使用も検討しています。これらは、無料の Linux プログラム (xastir) でかなりよく見えます。

TatukGIS は非常に良さそうです (そして高価です)。確かに完全な GIS ソリューションは必要ないので、マップを表示するだけではやり過ぎのようです。しかし、より簡単な解決策が見つからない場合でも、これは MS MapPoint を統合するよりも優れている可能性があります。

TGlobe は私が必要としているもののように思えますが、残念ながらもう利用できません。

于 2010-02-03T15:06:13.547 に答える
3

私が見たように、これを行うには3つの方法があります:

  • 表示されたすべてのタイルを 1 つの画像として保存します (TWebBrowser または TEmbeddedBrowser コンポーネントを使用して簡単に実行できます)。指定された座標 (左上隅) に基づいてマップ アドレス (OSM マッピング サーバー) に移動し、スナップショットを取得します。各スナップショットの後、ベース座標 (左上隅) を再計算する必要があります。

  • タイルがどのように生成されるかを理解する必要がありますが、それほど難しいことではありません。基本的に、osm タイル生成のスキームは次のとおり ですコードでタイルの URL を計算し、1 つずつダウンロードできます。タイル生成スキームの詳細については、こちらをご覧ください: マニホールド フォーラムの良いスレッド: http://forum.manifold.net/forum/t71011.13#75206 http://wiki.openstreetmap.org/wiki/Slippy_Map http:/ /wiki.openstreetmap.org/wiki/Tiles%40home またはさらに先に進む必要がある場合: http://wiki.openstreetmap.org/wiki/OSM_Protocol_Version_0.5

  • OSM マップ全体 (Web で入手可能) をダウンロードし、VCL コンポーネントを使用してそれらを表示します (Tatukgis DK...)

よろしく、 Mo3ez

于 2010-01-28T16:39:06.540 に答える
2

OSMを使用したDelphiのStelMAPを見てください

ブラウザやスクリプトを使用せずに Delphi 2010 のプロジェクト OpenStreetMap のマップを表示するためのコンポーネント。

オフラインでマップを表示できます。オンラインで作業するためのプロキシ サーバーのサポート。マルチスレッドのロード タイル マップにより、マップのダウンロードと表示のプロセスが高速化されます。プロシージャとプロパティのセットを使用すると、コンポーネントを追加して、無制限の数のレイヤー、形状、および画像をマップできます。

于 2012-03-06T06:15:03.350 に答える
0

OSMファイルについてはわかりませんが、ブラウザで開くことができれば、いつでもDelphiアプリケーションにTWebBrowserを埋め込んで、その中にファイルをロードできます。
最もエレガントではありませんが、機能するはずです...(IEが必要です)

于 2010-01-28T09:10:46.820 に答える