本篇文章我们会简单分析一下 ArcMap、ArcGIS Server 及 PostgreSQL 这三者之间的关系,并实现他们三者的互联。成功连接之后,我们就可以直接通过 ArcMap 方便的管理 ArcGIS Server 中的地图服务,以及处理和分析 PostgreSQL 中保存的地理数据。
本文也会在讲解如何建立连接时附带介绍 ArcMap 的相关功能。本专栏的核心可以说是 ArcMap 的学习与使用。
1. ArcGIS Desktop、PostgreSQL、ArcServer三者的关系
2. ArcMap 连接 PostgreSQL
3. ArcMap 连接 ArcGIS Server
4. ArcGIS Server 连接 PostgreSQL
5. 创建企业级地理数据
6. ArcMap、GIS 服务器连接 sde 数据库
由于在地图制作时我们需要在 ArcMap 中读取 PostgreSQL 中的地理数据,并且在发布地图服务时。ArcGIS Server 也需要从 PostgreSQL 中读取数据并发布。所以我们需要建立起 ArcMap → PostgreSQL 和 ArcGIS Server → PostgreSQL 的数据库连接。并且,由于我们可以在 ArcMap 对 ArcGIS Server 进行管理,所以也需要建立起这两者的连接。具体关系如下:
首先我们来讲一下最基础的连接,首先打开 arcMap。选择上面操作栏中窗口 > 目录,然后就可以在右侧看到打开的目录选项卡:
接下来我们就开始连接数据库,在数据库连接中选择添加数据库连接,然后会弹出左侧对话框,我们依次填写如下信息:
点击确认后在数据库连接中就会出现我们刚才创建的数据库连接了,我们可以双击将其打开,如果正常显示了其中的示例数据就代表连接成功了:
注意,这里创建的只是示例连接,在阅读完本文后你可以选择将其删除,不要现在删,我们一会还会用到它。而在下文中我们会创建企业级地理数据库(SDE)并将其作为主要的数据库存储。
接下来我们来连接 arcGIS Server,双击目录窗口中的 GIS 服务器后选择管理
GIS 服务器,这三个操作的区别如下:
点击下一步后会跳出创建连接对话框,我们只需要填写服务器 URL 和身份验证信息。注意:图中给出的连接是 http 连接,ArcGIS Server 10.8 默认是 HTTPS 连接,默认应该为 https://localhost:6443/arcgis
,如果你对服务器进行过自定义的话请填写对应的域名 / IP和端口号,这里我用到了ArcGIS Webadptor进行ip代理,所以输入了localhost/server。用户名密码写创建 GIS 服务器时指定的即可:
点击完成后会卡顿几秒的时间,之后我们就可以在右侧找到我们刚才创建好的 GIS 服务器连接,双击打开后,如果能正常看到两个文件夹 System
、Utilties
和示例地图服务 SampleWorlCities
后就代表连接完成:
接下来我们来让 GIS Server 也可以访问到数据库,首先右键我们刚刚创建的 GIS 服务器连接,然后选择“服务器属性”:
然后在弹出的 ArcGIS Server 属性(下图左侧)中选择数据存储,并点击右侧的 + 号,在弹出的注册数据库(下图右侧)中点击导入来添加一个数据库连接。你可以看到我已经添加了一个名为ArcGIS DataStore 的数据库,默认情况下已注册的数据库里应该为空:
在查找范围中选择数据库连接,就可以看到我们上文中创建好的示例数据库连接了,这里直接添加即可。
注册完成后你就可以看到你刚刚添加的数据库了,前面的对号表示数据库连接正常,如果没有的话你可以点击下面的全部验证来测试服务器连接是否正常。至此 arcGIS Server 添加 postgreSQL 数据库完成。
注意,这里添加的数据库同样是示例数据库,你现在可以将其删除。在下文中,我们会创建 sde 数据库并将用同样的方法将其连接进 GIS 服务器。
想要创建 SDE,我们首先需要对 PostgreSQL 进行一些额外“拓展”。首先访问 ArcMap 根目录的 DatabaseSupport\PostgreSQL\11\Windows64
文件夹(注意自己安装的数据库版本和系统版本:这里我的PG数据库是11版本的,因此对应拷贝11文件夹下的.dll补丁 ),我们可以找到如下两个 dll 文件:
接下来将其复制到 PostgreSQL 根目录的 lib
文件夹下即可,可千万别复制到根目录下:
至此我们的“拓展”就算完成了,接下来我们开始正式创建 sde,首先还是打开 arcMap,在上方操作栏里选择 地理处理 > ArcToolbox 来打开工具箱:
然后在弹出的窗口中依次选择 数据管理工具 > 地理数据库管理 > 创建企业级地理数据库:
然后我们需要在弹出的创建对话框中输入以下信息,虽然下面带有“可选”字样,但还是请认真填写,你可以点击对话框右下角的“显示帮助”来查看更多信息:
在上述填写检查无误后,点击确认按钮即可开始创建 sde,创建时间约为25秒左右。成功的日志信息如下:
创建完了之后我们就可以按照 连接 ArcMap、ArcGIS Server 和 PostgreSQL 中提到的数据库连接方式来完成 与 sde 的连接,这里有一点需要注意,数据库连接方式一定要输入 sde 和它的密码。输入默认 PostgreSQL 的账号密码虽然也可以连接,但是在向 SDE 数据库添加数据时就会报错。
ArcMap 添加完成后我们就可以用 连接 ArcMap、ArcGIS Server 和 PostgreSQL 中相同的连接方法将数据库添加至 GIS 服务器了,由于会直接导入刚才添加的数据库连接,所以这里不需要修改什么用户名密码。