我正在开发一个基于web的应用程序,我需要在每个国家或城市覆盖一些颜色层。我知道我可以使用谷歌地图,但我遇到的问题是,我们部署应用程序的服务器无法访问互联网。所以我需要一个像谷歌地图这样的地图组件,我可以离线使用它,有人能推荐我可以使用的任何组件吗?
发布于 2011-06-09 18:31:12
您可以查看openstreetmap。在那里,您可以下载适用于整个世界的planet.xml文件,也可以下载仅适用于您想要服务的地区的特定文件。也可以在这里找到好的材料: www.geofabrik.de
然后,您必须设置自己的tileserver,它将为提供的xml文件压缩png-tile,并将所有png-map存储在本地硬盘上。
tileserver可能还会有一些web-api。因此,您的tileserver可能运行在localhost:8080或其他端口上,而您的网站可能运行在apache的80端口上。然后你可以使用一些web框架来访问你自己的tileserver。这个框架可能是http://openlayers.org/,它也可以在地图上绘制形状。作为tileserver-location,您可以将地址添加到本地安装的tileserver。然后,Openlayers将接收压缩的磁贴,并用它做一些事情。
因此,你必须至少一次从互联网(planet.xml)获取一些信息并处理你的数据。但请注意,这种处理可能需要很长时间,这取决于您希望为多少个国家/地区提供服务,而且这些png文件将占用大量空间。
请查看openstreetmap.org如何做到这一切,包括一些数字。
也许甚至可以从openstreetmap下载压缩过的磁贴,并将它们放在特定的顺序中,然后启动一个指向这些磁贴的磁贴服务器。这可能会容易得多。
您不能下载Google-Maps tiles并在您自己的tiles服务器中提供它们,因为它们有许可证限制。
大家好,
1月
发布于 2011-06-09 18:19:25
您会发现这很困难,因为仅地图数据一项就可能占用几百兆字节的存储空间。他们在英国提供的OS provides offline mapping是免费的,但它是有限的,您必须手动将其集成到您的站点中。
拥有一个不能访问互联网的基于web的应用程序对我来说似乎有点愚蠢,当然有办法解决这个问题?
https://stackoverflow.com/questions/6291210
复制相似问题