再谈离线地图工具(2):为GeoServer添加ShapeFile数据源

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

这里简要介绍一下如何给GeoServer添加一个ShapeFile:

准备测试数据

1. 下载示例ShapeFile nyc_roads.zip ,这个文件含有纽约市道路图。

2. 将其解压得到四个文件 nyc_roads.shp ,nyc_roads.shx, nyc_roads.dbf, nyc_roads.prj

3. 将 nyc_roads 拷贝到 <GEOSERVER_DATA_DIR> (在GeoServer 安装目录的data_dir)的data 子目录下: 在windows 的缺省目录名为:

C:\Program Files (x86)\GeoServer 2.1.0\data_dir\data

使用GeoServer创建Workspace, Workspace 用来管理一组相关的地图图层(Layers),比如道路层,湖泊层,文字层等,多层叠加可以构成完整的地图。

  1. 使用浏览器 进入GeoServer的管理页面http://localhost:8080/geoserver/web.
  2. 登录到GeoServer
  3. 转到Data->Workspace页面
  4. 创建一个新的Workspace,选择Add New Workspace 按钮,将会提升输入Workspace名称,和Namespace URI:
  5. 输入Name: nyc_roads ,URI: http://opengeo.org/nyc_roads, 这个URI可以用来唯一指定中个Workspace, http://opengeo.org可以替换成你自己的域名。
  6. 点击“Submit”提交,GeoServer将会创建nyc_roads Workspace.

创建 Data Store

  1. 转到 Data -> Store 页面。
  2. 为了添加 nyc_roads 数据,需要在GeoServer中创建一个新的Data Store, 点击“Add new Store?按钮,可以看到GeoServer支持很多种数据源: PostGIS NG , Shapefiles 等等。
  3. 因为我们使用的是shapefile,因此选择Shaprfile -ESRI(tm) Shapefile (*.shp)
  4. 在?New Vector Data Source?页面 来配置这个Store的基本信息,如Workspace, Data Source Name, Description (这些都可以根据需要自己定义)
  5. 在?Connection Parameters?下指定nyc_roads.shp 的路径
  6. 点击“Save”,页面将转到Layer 的配置页面。

Layer 配置

  1. 在“New Layer Chooser” ,选择 nyc_road.
  2. 配置“publish?的参数
  3. 为shape文件生成边界矩形参数 (点击? Compute from Data? 自动产生)
  4. 为Shaprfile 指定显示风格 (在Publsih页面)
  5. 选择?line?的缺省风格
  6. 保持配置?Save?

预览Layer

可以通过 Layer Preview 来检验nyc_roads 发布成功,

选择使用OpenLayers来显示地图

使用引路蜂离线地图工具,参见上篇将 MapDigit.ext.config 中 Layers名称改为nyc_roads:nyc_roads

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

同样的方法可以为nyc_roads 生成离线地图包

由此可见,GeoServer可以用来架设自定义的地图服务器,引路蜂地图开发包(Android,Java ME, Blackberry等平台)支持这种自定义的服务器,离线地图工具生成的离线地图包可以直接用在引路蜂地图开发包中。