arcgis10.1 实现地图的在线编辑

文章来源于:http://blog.csdn.net/arcgis_cs/article/details/7750893
ArcGIS 10.1如何连接数据库
最 近在使用ArcGIS 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用Postgresql),根据使用过程,我 将内容分为两个部分(这两个部分,是我在使用完分出来的,并重新整理,其中穿插我自己的想法,欢迎大家跟我们一起交流。)
如何使用直连方式连接数据库
1,
2,
http://my.csdn.net/uploads/201207/16/1342412675_6544.jpg实现地图的在线编辑" />
3,
4,
Database |
Supported Operating Systems |
Minimum OS Version |
Maximum OS Version |
PostgreSQL 9.0.5 (64-bit) |
Red Hat Enterprise Linux Server 5 (64-bit) |
Update 7 |
|
Red Hat Enterprise Linux Server 6 (64-bit) |
|||
SUSE Linux Enterprise Server 11 (64-bit) |
SP1 |
||
Windows Server 2003 Standard, Enterprise, and Datacenter (64-bit [EM64T]) |
SP2 |
SP2 |
|
Windows Server 2008 R2 Standard, Enterprise, and Datacenter (64-bit [EM64T]) |
SP1 |
5,
6,
7,
8,
http://my.csdn.net/uploads/201207/16/1342412690_2830.jpg实现地图的在线编辑" />
9,
10.1在创建地理数据库的时候,提供了三个,Oracle,SQL Server和Postgresql,我们用这个工具创建地理数据库,这个过程相当于早起的POST过程,创建数据库并写入一堆系统表等,创建界面如下图:
http://my.csdn.net/uploads/201207/16/1342412709_7075.jpg实现地图的在线编辑" />
创建成功后就可以在pgAdmin中看到sde这个数据库,并且看到很多系统表,如下图:
http://my.csdn.net/uploads/201207/16/1342412716_2837.jpg实现地图的在线编辑" />
10,
在 上面说了ArcGIS 10.1对数据库连接做了统一,那如何判断是关系型数据库还是空间数据库呢?其实这点并不难,因为在创建空间数据库的时候,我们同时创建了用户名和密码, 那么用这个用户名连接,并选择创建的这个数据库,那么这个数据库就是空间数据库,连接界面如下图:
http://my.csdn.net/uploads/201207/16/1342412724_3074.jpg实现地图的在线编辑" />
连接成功后,我在数据库里创建了要素数据集添加了几个数据,做了一个拓扑分析(做这个的目的不是为了做拓扑,而是为了验证能否做拓扑分析,所以拓扑分析的结果我们不做讨论),结果如下:
http://my.csdn.net/uploads/201207/16/1342412733_9094.jpg实现地图的在线编辑" />
同理,做了一个几何网络,效果如下:
http://my.csdn.net/uploads/201207/16/1342412744_4732.jpg实现地图的在线编辑" />
现 在我们想一个问题,上面我们使用的是直连的方式访问数据库,大家觉得是否缺少什么呢?我们会想以前如何使用数据库的,首先装了关系型数据库 (Postgresql),这一步我们有了,然后就是安装ArcGIS SDE for postgresql,这一步我们没有,然后就是创建数据库,连接数据库。从整个过程来看,我们没有安装SDE,那为什么也可以创建空间数据库呢?
这 也是我自己发现的一个,在开始的时候,我的确是安装了SDE,但是我发现这个安装不想ArcGIS 10 或者之前的弹出一个post的界面,装了之后什么反应都没有,我去安装目录下看了看,发现这个安装其实就是解压了一些东西,而我的空间数据库还没有建立 呢?再后来发现连接数据库的时候,没有服务这个选项,当初我就觉得这个安装跟我连接数据库没有关系,于是卸载了,根据:http://resources.arcgis.com/en/help/main/10.1/index.html#/Setting_up_a_geodatabase_in_PostgreSQL/002p00000001000000/仔细看了一遍,发现这个过程的确不安装SDE是可以的,跟售后的同事确认了下,得出的结论:如果是使用直连方式,ArcGIS 10.1 是不用安装SDE的任何组件。新的问题来了,我们知道在以前的版本中SDE还有一种方式就是服务连接,那如何使用服务连接呢?
如果细心的话,我们可以发现在安装SDE的时候,有两个组件让我们安装:
http://my.csdn.net/uploads/201207/16/1342412753_9646.jpg实现地图的在线编辑" />
根据组件右边的描述,我们知道这个安装就是针对服务连接的,也就是说如果要使用服务方式连接,就需要安装SDE,如何创建服务,如何使用服务连接(我们明显看到连接中根本就没有服务这个选项)就是我们下来要讨论的问题。
如何使用服务的方式连接数据库
服务连接的额外步骤
- 安装ArcSDE for PostgreSQL 10.1;
- 修改ArcSDE安装目录中services.sde文件和Windows中的hosts文件,分别增加“esri_sde 5151/tcp”记录;
- 创建ArcSDE服务。分别键入以下两个命令以完成在注册表中创建服务的工作:
sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0
sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 -r ADMIN_DATABASE -v sde - 启动服务。可以用“sdemon –o start”命令或从Windows服务面板中启动ArcSDE服务;
- 创建连接。在catalog中只能创建直连服,因此需要使用新的Create ArcSDE Connection File GP工具来创建ArcSDE服务连接文件。创建成功后,在catalog中找到这个连接双击就可以打开。
http://my.csdn.net/uploads/201207/16/1342412761_5659.jpg实现地图的在线编辑" />
通过这个工具,如果我们的数据库是ArcGIS 10 或者之前的,并且采用服务的方式,那么在使用10.1的时候,应该用这个工具吧(没有测试,根据向下兼容,我自己猜想)
对于arcgis发布的地图实现在线编辑的主要思路就是,调用对应的服务,前提必须是和数据库进行对应交互的,只有这样才能进行编辑之后的保存,arcgis提供的demo代码:
?xml version="1.0" encoding="utf-8"?> xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags" initialize="application1_initializeHandler(event)" pageTitle="Editor with all toolbar options"> @namespace esri "http://www.esri.com/2008/ags"; esri|InfoWindow { background-color : #FFFFFF; border-thickness : 2; }