Leaflet是否有离线地图层可用?

7
有没有适用于Leaflet的离线地图层?我不需要太详细的信息,但基本几何图形就足够了。

1
有几种软件和服务器可以将OSM数据渲染成“瓦片”,可以从Postgis数据库或文件(geojson、shapefile等)中获取,可以在这里查看:http://wiki.openstreetmap.org/wiki/Rendering。 - chrki
3个回答

12
当然,你可以设置自己的离线地图(栅格瓦片和/或矢量形状)。难度或开箱即用程度取决于您需要的信息种类和详细程度。
GeoJSON:
如果您只需要世界国家边界并且细节很少,只需获取轮廓,则最简单的方法是。在这种情况下,您可以在互联网上找到包含该数据的GeoJSON文件,大小为几百kB(单个普通大图像的重量),例如https://github.com/johan/world.geo.json
然后只需使用L.geoJson(geoJsonData).addTo(map)来显示它。
演示:http://plnkr.co/edit/aB6p7IC2cF7xW41Ju8m7?p=preview 下载的瓦片:
一个更加复杂(在技术和合同方面)但仍可管理的情况是,如果您想要光栅瓦片(例如OSM网站),您可以从在线服务器下载瓦片(只是普通图像),然后离线使用它们。这被称为“瓦片抓取”或“tiles bulk downloading”。
至于技术方面(您可能需要下载数千个单独的图像,具体取决于您要离线使用的缩放级别/细节),有几种软件可供选择(请查看上面的OSM Wiki链接)。
至于合同方面,许多瓦片服务器(包括OSM)在其使用条款中明确要求不进行批量下载(因为这会在其服务器上产生高需求并使用大量带宽)。因此,您应该寻找接受此用途的服务。
本地渲染瓦片:
一种完全授权的解决方案(但最为技术复杂)是下载原始OSM数据,并通过软件使用它来生成您的地图(无论是光栅瓦片还是矢量形状)。
您可以在互联网上找到提供下载简化版OSM数据的服务(整个地球的完整数据库压缩后约为30 GB…)或者小范围地理区域的数据(请参见上述OSM Wiki链接)。
关于软件,chrki在问题评论中提供的链接(http://wiki.openstreetmap.org/wiki/Rendering)应该可以帮助您入门。
特别是,您可以生成一次光栅瓦片,保存它们并且摆脱渲染软件,这样您就可以像爬取它们一样使用这些瓦片。

3
你可以构建自己的本地OSM服务器。使用Ubuntu相当容易,因为有专门的软件包。安装过程在这个很棒的资源上进行了描述:switch2osm.org

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接