GeoServer 中的 Neo4j Spatial
Neo4j Spatial 内建了对 GeoTools 数据存储的支持。这意味着原则上它可以直接在 GeoServer 内部使用。本文将讨论如何在 GeoServer 中启动和运行它。如果您对桌面 GIS 感兴趣,可以查看 uDig 中的 Neo4j Spatial。
在 GeoServer 中安装 Neo4j-Spatial
安装 GeoServer
首先,您需要从 http://geoserver.org/display/GEOS/Download 下载并安装 GeoServer。有关详细的安装说明,请参阅 GeoServer 官方文档:http://docs.geoserver.org/stable/en/user/installation/index.html 这里我们提供非常基础的说明,并考虑了使用 Neo4j Spatial 安装 GeoServer 时需要注意的因素。
-
选择适合您将使用的 Neo4j Spatial 版本的 GeoServer 版本。
-
Neo4j-Spatial 的主干分支目前是为与 GeoTools 2.7 配合工作而编码的,这意味着我们需要将其加载到 GeoServer 2.1 或更高版本中。我们测试过的版本是 geoserver-2.1-beta1。
-
如果您想部署在 GeoServer 2.0.2 的稳定版本上,则可以使用较旧的 Neo4j-Spatial,或者修改代码使其与 GeoTools 2.6 兼容(差异很小)。与 GeoServer 2.0 系列兼容的最后一个 Neo4j Spatial 版本发布于 2010 年 9 月底。
-
如果您已经运行了 servlet 容器,可以下载 WAR 版本;否则,下载 BIN 版本(如果在 Windows 上则下载 Windows 安装程序)。按照 GeoServer 中包含的说明进行安装和运行。
-
安装完成后,在网络浏览器中打开 https://:8080/geoserver/web/ (如果您配置了不同的位置)以测试 GeoServer 是否正常运行。
添加 Neo4j Spatial
通过将以下 JAR 文件复制到 GeoServer 目录 webapps/geoserver/WEB-INF/lib 中来安装 Neo4j-Spatial。
-
json-simple-1.1.jar
-
geronimo-jta_1.1_spec-1.1.1.jar
-
neo4j-kernel-1.2-1.2.M03.jar
-
neo4j-index-1.2-1.2.M03.jar
-
neo4j-spatial.jar
获取最后一个 jar 可以通过使用 Maven 从源代码编译来实现,或者直接访问 Maven 仓库网站 http://m2.neo4j.org/org/neo4j/neo4j-spatial/。
在撰写本文时,最新的 JAR 是
-
对于 GeoTools 2.7 和 GeoServer 2.1.x
-
http://m2.neo4j.org/org/neo4j/neo4j-spatial/0.3-SNAPSHOT/neo4j-spatial-0.3-20101021.124131-1.jar
-
对于 GeoTools 2.6 和 GeoServer 2.0.x
-
http://m2.neo4j.org/org/neo4j/neo4j-spatial/0.2-SNAPSHOT/neo4j-spatial-0.2-20100929.153937-103.jar 然后重启 GeoServer。
在 GeoServer 中可视化 Neo4j Spatial 数据
这些说明将引导您开始将 Neo4j Spatial 中的一些测试图层添加到正在运行的 GeoServer 中。
以用户名 'admin' 和密码 'geoserver' 登录,除非您在安装过程中更改了 security/users.properties 文件中的这些信息。

添加数据源
转到“数据存储 (Stores)”并点击“添加新的数据存储 (Add a new Store)”。

命名数据源,并添加您存储图层的 Neo4j 数据库的路径。

-
数据库位置的一种选择是使用 Neo4j Spatial 中的单元测试创建的数据库。本 Wiki 的其余部分假设您运行了 TestDynamicLayers 单元测试,该测试会加载瑞典马尔默市的 OSM 数据集,然后在此数据上创建多个动态图层(或视图),我们可以在 GeoServer 中发布这些图层。
-
如果您确实使用单元测试创建了示例数据库,则数据库的位置将位于 Neo4j 源代码的 target/var/neo4j-db 目录中。
-
将 URL 输入为数据库目录中 neostore-id 文件的完整路径。
从数据源发布
现在我们将从数据源发布一个图层。
在“矢量数据源 (Vector Data Sources)”下点击“Neo4j”,然后点击“添加新图层 (Add new layer)”。

选择“Neo4j 数据存储 (Neo4j Data Store)”。

选择一个图层并点击“发布 (Publish)”。GeoServer 似乎在检测 CRS 和边界时遇到问题,因此我们必须手动输入这些信息。

-
在“声明的 SRS (Declared SRS)”字段中手动输入 CRS。对于 OSM 数据(由 TestDynamicLayers 代码发布),使用 EPSG:4326。
-
点击“从数据计算 (Compute from data)”以获取原始边界框。
-
将所有这些字段复制并粘贴到 Lat/Lon 边界框中(由于某种原因,“从原始边界计算 (Compute from native bounds)”不起作用)。
-
保存图层。
-
对您想发布的任意数量的图层重复此操作。

预览图层
预览其中一个已发布的图层。
转到图层预览页面,选择图层和“OpenLayers”或其他预览选项。

预览多个图层。
-
通过点击“图层组 (layer groups)”来添加一个图层组。

-
然后点击“添加新的图层组 (add new layer group)”。

-
输入名称,并从您计划添加的其中一个图层复制边界。“生成边界 (Generate Bounds)”功能似乎不起作用。
-
输入 CRS,与您计划添加的其中一个图层中使用的 CRS 相同。
-
然后点击“添加图层 (Add Layer)”并选择一个要添加到组中的图层。对您计划添加的任意数量的图层重复此操作。
-
保存图层组,然后转到图层预览,您将看到该组作为预览选项。

-
选择“OpenLayers”以在可缩放的动态地图中预览。
