是否有 vcl 或项目(在 delphi 中)可以让我下载 OSM 磁贴并将它们显示在应用程序上?
我试过嵌入浏览器,效果很好,但我需要一种离线显示地图的方法。
是否有 vcl 或项目(在 delphi 中)可以让我下载 OSM 磁贴并将它们显示在应用程序上?
我试过嵌入浏览器,效果很好,但我需要一种离线显示地图的方法。
哎呀!我试图在我的消息中提供一些超链接,但作为一个新的 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 似乎是我需要的,但遗憾的是它不再可用。
在我看来,有 3 种方法可以做到这一点:
将所有显示的图块保存为单个图像(可以使用 TWebBrowser 或 TEmbeddedBrowser 组件轻松完成):您将根据给定坐标(左上角)导航到地图地址(OSM Mapping Server),然后拍摄快照。您需要在每次快照后重新计算基本坐标(左上角)。
您需要了解瓷砖是如何生成的,这并不难:基本上,osm 瓷砖生成的方案如下http://osmserver.org/tiles/tile/x/y/z.png 一旦你了解它是如何产生的有效,您可以通过代码计算图块 url 并一一下载。有关瓷砖生成方案的更多信息,请查看此处:歧管论坛上的好帖子: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 地图(可在网络上获得)并使用 VCL 组件显示它们(Tatukgis DK...)
最好的问候, Mo3ez
我不太了解 OpenStreetMap 项目,但项目本身有可能拥有“查看”页面内地图的软件。
您可以实现您的目标:使用与用户界面相同的基本结构离线显示地图:嵌入式浏览器。
您更改的是浏览器将连接到类似 ( http://localhost:3458 ) 的 url,使您的应用程序成为她自己的 Web 服务器,例如,Indy TIdHTTPServer 绑定到端口 3458(只是一个示例端口)。
这样,您可以从应用程序内部为嵌入式浏览器提供内容,就像Delphi IDE (>= 2005) 本身为您在启动时看到的主页提供内容一样(实际上是嵌入式 Web 浏览器) .
对于该浏览器,您提供查看器页面、它的所有依赖项和 OSM 文件。这个想法的唯一限制是查看器必须在客户端做所有事情(例如,它可能是 javascript、flash 等)。没有服务器端脚本,除非您愿意“模仿”服务器端行为或将您的应用程序与脚本引擎集成(不太容易)。
另一个机会是使用THBImage,它提供OpenStreetMap 与 Delphi 的集成和一个(不工作的)站点演示。
使用 OSM在StelMAP 中查找 Delphi
无需使用浏览器或脚本即可查看项目 OpenStreetMap for Delphi 2010 的地图的组件。
您可以离线查看地图。支持在线工作的代理服务器。多线程加载平铺地图加快了下载和查看地图的过程。这组程序和属性允许您添加一个组件来映射无限数量的图层、形状和图像。
不知道 OSM 文件,但如果你可以在浏览器中打开它们,你总是可以在你的 Delphi 应用程序中嵌入一个 TWebBrowser 并在其中加载文件。
不是最优雅的,但应该可以工作......(需要 IE)