5

是否有 vcl 或项目(在 delphi 中)可以让我下载 OSM 磁贴并将它们显示在应用程序上?

我试过嵌入浏览器,效果很好,但我需要一种离线显示地图的方法。

4

5 回答 5

3

哎呀!我试图在我的消息中提供一些超链接,但作为一个新的 StackOverflow 用户,我仅限于一个。您可以查看“需要显示地图的解决方案”消息线程(2010 年 1 月 25 日):embarcadero.public.delphi.thirdpartytools.general

我正在尝试解决类似的问题。我需要使用 Delphi 显示全县或全市范围的地图,然后在地图上放置自定义图标。我不需要路由或非常详细的地图。过去,我使用 TMS“热点”组件作为 TImage 顶部的自定义图标。现在我需要一种方法让客户为静态背景图像选择自己的地图。

一个免费的 MFC GUI 控制类(带有源代码),它实现了 OpenStreeMap 瓦片的显示:www.naughter.com/osmctrl.html 那里的 zip 有一个可执行文件,显示它是如何工作的。

本单元用于计算 OpenStreetMap 项目的 TileServer 的 URL,以及其他可能需要的有用实用程序。如果你想在你的 pascal 程序中使用 OpenStreetMap,那么这是给你的。 http://code.google.com/p/openstreetmap-fpk/

我也在考虑使用免费的 Tiger/Line 地图。这些在免费的 Linux 程序 (xastir) 中看起来相当不错。

TatukGIS 看起来非常好(而且价格昂贵)。我当然不需要完整的 GIS 解决方案,所以这似乎只是为了显示地图而显得过分。但是,如果我找不到更简单的解决方案,这仍然可能比集成 MS MapPoint 更好。

TGlobe 似乎是我需要的,但遗憾的是它不再可用。

于 2010-02-03T15:06:13.547 回答
3

在我看来,有 3 种方法可以做到这一点:

最好的问候, Mo3ez

于 2010-01-28T16:39:06.540 回答
3

我不太了解 OpenStreetMap 项目,但项目本身有可能拥有“查看”页面内地图的软件。

您可以实现您的目标:使用与用户界面相同的基本结构离线显示地图:嵌入式浏览器。

您更改的是浏览器将连接到类似 ( http://localhost:3458 ) 的 url,使您的应用程序成为她自己的 Web 服务器,例如,Indy TIdHTTPServer 绑定到端口 3458(只是一个示例端口)。

这样,您可以从应用程序内部为嵌入式浏览器提供内容,就像Delphi IDE (>= 2005) 本身为您在启动时看到的主页提供内容一样(实际上是嵌入式 Web 浏览器) .

对于该浏览器,您提供查看器页面、它的所有依赖项和 OSM 文件。这个想法的唯一限制是查看器必须在客户端做所有事情(例如,它可能是 javascript、flash 等)。没有服务器端脚本,除非您愿意“模仿”服务器端行为或将您的应用程序与脚本引擎集成(不太容易)。

另一个机会是使用THBImage,它提供OpenStreetMap 与 Delphi 的集成和一个(不工作的)站点演示。

于 2010-01-28T10:24:44.203 回答
2

使用 OSM在StelMAP 中查找 Delphi

无需使用浏览器或脚本即可查看项目 OpenStreetMap for Delphi 2010 的地图的组件。

您可以离线查看地图。支持在线工作的代理服务器。多线程加载平铺地图加快了下载和查看地图的过程。这组程序和属性允许您添加一个组件来映射无限数量的图层、形状和图像。

于 2012-03-06T06:15:03.350 回答
0

不知道 OSM 文件,但如果你可以在浏览器中打开它们,你总是可以在你的 Delphi 应用程序中嵌入一个 TWebBrowser 并在其中加载文件。
不是最优雅的,但应该可以工作......(需要 IE)

于 2010-01-28T09:10:46.820 回答