首页 文章

基于Web(ASP.Net)应用程序的离线 Map

提问于
浏览
1

我正在开发一个基于Web的应用程序,我需要在每个国家或城市覆盖一些颜色层 . 我知道我可以使用谷歌 Map ,但我遇到的问题是我们部署应用程序的服务器无法访问互联网 . 所以我需要像Google Map 一样的 Map 组件,我可以离线使用它,任何人都可以建议我可以使用的任何组件吗?

2 回答

  • 3

    你可以查看openstreetmap . 在那里,您可以下载整个世界的planet.xml文件或仅为您要服务的区域下载特定文件 . 这里还有很好的材料:www.geofabrik.de

    然后,您将需要设置自己的tileserver,它将为所提供的xml文件处理png-tiles并将所有png-map存储在本地硬盘上 .

    tileserver可能也会有一些web-api . 所以你的tileserver可以在localhost:8080或其他端口上运行,你的网站可能在端口80上的apache上运行 . 然后你会使用一些web框架来访问你自己的tileserver . 这个框架可能是http://openlayers.org/,它也可以在 Map 上绘制形状 . 作为tileserver-location,您可以将地址添加到本地安装的tileserver . 然后,Openlayers将接收碾碎的瓷砖并用它做一些事情 .

    因此,您必须至少一次从互联网(planet.xml)获取一些信息并处理您的数据 . 但请注意,这种运算可能需要很长时间,具体取决于您要服务的国家/地区数量,这些png文件也会占用大量空间 .

    查看openstreetmap.org如何做到这一切,包括一些数字 .

    也许甚至可以从openstreetmap下载碾碎的瓷砖并按特定顺序放置它们并启动指向这些瓷砖的瓷砖服务器 . 这可能会容易得多 .

    您无法下载Google Map 图块并在自己的图块服务器中提供这些图块,因为它们存在许可限制 .

    问候,

    一月

  • 0

    你会发现这很困难,因为单独的 Map 数据可能占用几百兆的空间来存储 . 他们免费提供英国境内的OS provides offline mapping,但它是有限的,您必须手动将其整合到您的网站中 .

    拥有一个无法访问互联网的基于网络的应用程序对我来说似乎有些愚蠢,当然有办法解决这个问题吗?

相关问题