再谈离线地图工具(1):如何使用已有地图数据源生成离线地图包

jerry 地图开发 2015年11月26日 收藏

在前文离线地图下载方法解析离线地图生成工具结构图离线地图生成工具使用方法

我们重点介绍如果使用引路蜂离线地图制作工具的原理和使用方法,离线地图工具缺省支持从Google地图,Bing地图,MapABC地图,Yahoo地图等地图服务器下载制作离线地图包。

但有些情况下,用户自己已经购买了地图数据(如ArgGIS, MapInfo,PostGIS ,ShapeFile等)需要从这些数据来生成离线地图包。

可以利用GeoServer和引路蜂离线地图包来制作离线地图包:步骤如下:

1. 下载安装GeoServer ,GeoServer是Java应用,可以用于Windows ,Mac OS, Linux,本教程使用Windows 系统,在 http://geoserver.org/display/GEOS/Stable 选择 Windows Installer

2. GeoServer安装成功后,在GeoServer 启动菜单有如下几个菜单项:

  • Start GeoServer   启动GeoServer
  • Stop GeoServer   停止GeoServer
  • GeoServer Web Admin Page: GeoServer管理页面

首先启动GeoServer,然后进入GeoServer管理页面, 缺省用户名和密码为admin , geoserver.

3. 首先看看随GeoServer安装时自带的地图数据   Data ?>Layers

我们想生成Topp:states 数据的离线地图包,可以在Data -> Layer Preview 中使用 OpenLayers来预览该图层:

4. GeoServer 集成了一个GeoWebCache ,是一个采用Java实现用于缓存WMS(Web Map Service)Tile的开源项目。当地图客户端请求一张新地图和Tile时,GeoWebCache将拦截这些调用然后返回缓存过的Tiles。如果找不到缓存再调用服务器上的Tiles,从而提高地图展示的速度。实现更好的用户体验.

这里不详细介绍GeoWebCache ,只要知道它提供一种和Google Map类似的Tile访问方法 。可以根据Tile的X,Y和Zoom来访问一个图片:

比如安装好GeoServer,在IE地址栏输入:

http://localhost:8080/geoserver/gwc/service/gmaps?layers=topp:states&zoom=1&x=0&y=0 ,表示Zoom为1即是X=0和Y=0的Tile:

5. 下载引路蜂离线地图工具

离线工具下载 http://www.imobilebbs.com/download/tools/downloader.msi 安装版

http://www.imobilebbs.com/download/tools/MapTileDownloader.rar 绿色版

离线工具需要.Net Framework Runtime,如果您的计算机上未安装,请下载安装

6.  打开引路蜂离线地图工具的安装目录: 找到 MapDigit.exe.config ,这是 MapDigit.exe的配置文件,这个配置文件缺省定义了多个地图服务器(软件Google地图,Bing地图等)。

我们重用GOOGLESATELLITE这个类型,将它重新定义为:

<add key=?GOOGLESATELLITE? value=?http://localhost:8080/geoserver/gwc/service/gmaps?layers=topp:states#zoom={ZOOM}#x={X}#y={Y}? />

可以对比一下 URL:

http://localhost:8080/geoserver/gwc/service/gmaps?layers=topp:states&zoom=1&x=0&y=0

将& 改成#  Zoom=1 , x=0 ,y=  改成zoom={ZOOM},x={X},y={Y}从而就为Layer: topp:states 定义好了URL模板,然后启动MapDigit.exe ,在下来框中选择 GOOGLESATELLITE。

后面就可以和下载Google地图,Bing地图一样来制作离线地图包了,地图数据源来自GeoServer。离线地图生成工具使用方法

限于篇幅,将在下一篇介绍如果使用ShapeFile做为GeoServer的数据源。