GIS Portal Toolkit (GPT) 9.3

GIS Portal Toolkit (GPT) 9.3

2023年6月25日发(作者:)

GIS Portal Toolkit (GPT) 9.3

GIS Portal Toolkit (GPT) 9.3 安装配置 - 1.环境需求

【本教程环境】SuSE Linux Enterprise Server 10(目前不能安装MetadataServer,建议Windows)

【操作系统】

GIS Portal Toolkit(以下简称GPT)9.3在Windows 2003 SP2 Server 和 Windows XP

SP2 Professional上进行了测试,不过应该支持以下操作系统:

• Red Hat Enterprise Linux AS/ES 4.0 Update 2

• SUSE Linux Enterprise Server 10

• Sun Solaris 9, 10 (SPARC)

• Windows 2000 SP4 Server

• Windows 2003 SP2 Server

• Windows Vista SP1 Ultimate, Enterprise, Business

• Windows XP SP2 Professional Edition

【数据库】

• Oracle 9i 9.2.0.7

• Oracle 10g 10.2.0.2

• Microsoft SQL Server 2000 SP4

• Microsoft SQL Server 2005 SP2

• PostgreSQL

【JAVA】

需要JDK 1.5,文档说1.5.0_06 和1.5.0_14 都可以,估计在这两个平台上进行了测试。不能用JDK1.6!

【ESRI相关软件】

• ArcGIS Server 9.3 Standard Enterprise – Java Edition

• ArcGIS Desktop 9.3 (可选, 不过建议安装)

• ArcSDE 9.3

另外,还需要一下内容: a. 一个ArcGIS Server Map Service, 你需要知道它的REST地址

b. 一个ArcGIS Server Locator Service. 如果你不想创建这样一个服务,你可以使用这个在线服务:/ArcGIS

/rest/services/Locator/ESRI_Geocode_USA/GeocodeServer

注意: 如果在需要安装GPT 9.3的机器上装有ArcIMS,你首先需要卸载ArcIMS,并确认webapps下不再有“servlet”目录。

【Web服务器和Servlet引擎】

• Apache 2.0.58 或 IIS

• Tomcat 5.5.17 或5.5.26,不能使用Tomcat 6.0.

【目录服务器】

• Apache Directory Server

• Sun OpenDS

GIS Portal Toolkit (GPT) 9.3 安装配置 - 2.选择验证机制

GPT提供两种验证机制:

1. 简单验证

2. LDAP验证

它们之间的区别见下表

简单验证意味着GPT只有一个用户:管理员。使用这种验证机制不需要再安装其它任何软件,但是GPT和其它应用之间使用单点登录将不可能实现。一般来说,这种验证机制仅在测试的时候使用,在部署真实应用的时候通常应使用LDAP。

下面叙述下如何配置LDAP,以Apache Directory Server(ApacheDS)为例。

首先,安装ApacheDS,建议另外再安装管理客户端JXplorer(SLES10默认仅支持JXplorer 3.0)。在Linux上ApacheDS安装完以后其配置文件在/var//conf目录下,启动通过命令//apacheds

start default命令。JXplorer默认的端口为10389,DN为:“uid=admin,ou=system”,密码为“secret”,连接成功会出现如下界面:

在此基础上,我们需要新建一个GPT的管理员帐号。注意,这里的教程是基于ApacheDS的,其余情况需要详细查看ESRI的文档。注意,在点击“Add”以后出现的面板中,sn输入“gptadmin”,其余根据情况填写,一般需要填写“mail”“uid”“userPassword”,uid可以设为“gptadmin”。

新建一个group,命名为gpt_administrators,其中uniqueMember可填刚刚新建的gptadmin用户的DN:“cn=gptadmin,ou=users,ou=system”。重复这个过程,在新建2个组“gpt_publishers”和“gpt_registeredUsers”。

注意,以上过程是基于新建一个LDAP服务器,如果使用已经已有的LDAP服务器,那么配置过程将有所不同,更加详细的信息可以参考安装文档。

GIS Portal Toolkit (GPT) 9.3 安装配置 - 3.配置数据库

GPT9.3支持Oracle、SQL Server和PostgreSQL,我这里使用的是Oracle 10g sp4。

首先,新建GPT的表空间和用户:

通过sqlplus进入SQL命令行

执行:

create tablespace GPT93 datafile '/opt/oracle/app/oracle/oradata/'

size 500M AUTOEXTEND ON;

create user gpt93 identified by gpt93pwd default tablespace GPT93 temporary

tablespace temp;

commit;

quit;

然后,运行一下几个sql脚本来创建schema:

通过sqlplus进入SQL命令行

我这里使用的是Oracle,脚本位于安装盘的“Database Scripts/Oracle”目录下

首先执行grants_:

@grants_ sys syspwd gpt93 sde;

然后执行schema_:

@schema_ gpt93 gpt93pwd;

再然后,用sde用户登录,并执行一下命令:

sdetable -o register -t gpt_admin -C none -i 5151 -s machineName -u gpt93 -p

gpt93pwd 下面要配置数据库支持XML列

详细查看:/arcgisdesktop/9.3/?TopicName=Configuring_a_database_to_support_XML_columns

最后可以使用AcrCatalog来测试上述的配置是否正确:

新建一个Spatial Database Connection,server:服务器ip,service:5151,username:gpt93,password:gpt93pwd

GIS Portal Toolkit (GPT) 9.3 安装配置 - 4.安装配置MetadataServer

目前的GPT9.3中只有Windows版本安装包,Linux上的暂无。

GIS Portal Toolkit (GPT) 9.3 安装配置 - 5.部署并配置GPT9和servlet Application

首先部署(安装盘Web Applications/GPT9下)。建议使用Tomcat

manager来部署,确保你的$CATALINA_BASE/conf/中设置了manager用户,用这个用户来登录localhost:8080/manager/html后选择部署到服务器。

下面进行GPT9的配置,首先进入$CATALINA_BASE/GPT9/WEB‐INF/classes/gp/config目录。开始编辑文件。200多行的参数配置……自己看吧。

完成以后部署(安装盘Web Applications/Servlet下)。进入$CATALINA_BASE/servlet/WEB‐INF目录,编辑文件。这里只有几个参数需要修改,见安装文档。

GIS Portal Toolkit (GPT) 9.3 安装配置 - 6.配置MapViewer 首先,打开安装盘Database Scripts/Map Viewer目录,执行数据库对应的sql脚本。注意,登录数据库的时候采用前面配置数据库环节新建的gpt93用户,以下是Oracle上的命令:

sqlplus

gpt93

gpt93pwd

@.../MVS_Personalization_;

下面就开始正式安装MapViewer Application:

打开安装盘的Web Applications/Map Viewer目录,将mvs_部署到tomcat上。

打开$CATALINA_BASE/webapps/mvs_viewer/WEB-INF,编辑ties文件,详细参数见安装文档。

GIS Portal Toolkit (GPT) 9.3 安装配置 - 7.其余Tomcat配置

复制$CATALINA_BASE/webapps/GPT9/WEB-INF/lib/到$CATALINA_BASE/common/lib下

复制安装盘的Other/JNDI Configuration/到$CATALINA_BASE/conf/Catalina/localhost目录下

编辑文件,找安装文档进行参数配置。

安装文档上还有一些其他配置,可能是apache版本或者操作系统的缘故,并没有找到。

GIS Portal Toolkit (GPT) 在线案例

/

/

/

/Portal/ptk

/wps/portal/gos

/nsdiportal/

/ /Portal/ptk

/Portal/

/geonova/

/Portal/

GIS Portal Toolkit 管理员的一些工作流程

【环境】GPT9.3,服务器Win2003 SP2,客户端WinXP SP3

1.从互联网搜索并保存元数据

通过GPT的CSW Client工具可以在ArcMap或者ArcGIS Explorer中对CSW(Catalog

Service for the Web)进行查询,从而获得元数据信息。

以ArcGIS Explorer为例(照说明文档安装CSW Client并在ArcGIS Explorer添加工具):

比如我想搜索北京的服务,输入beijing,通过默认的/aimscsw/csw2.0入口搜索到若干结果如下:

选择“china”那项,点击View Metadata按钮,查看这个服务的详细信息。从元数据详细信息可以看到,这个服务来自(测绘科学数据共享网)。

点击Download Metadata按钮将元数据下载到本地。

2.将元数据发布到GPT

通过GPT的Publish Client将元数据发布到GPT服务器:

打开ArcCatalog(照说明文档安装Publish Client并在ArcCatalog中添加工具),找到刚才下载的元数据文件。点击工具栏的Publish Metadata按钮。

在弹出的对话框中,按照GPT的配置填入相关信息,完成后点击Publish按钮,如果成功,将会弹出成功信息的对话框。 3.审核元数据并标记为公开

管理员可以查看元数据并进行审核,如果没有问题,可以将此元数据编辑为公开状态,使之可以被GPT用户搜索到。

在浏览器中输入SERVER_IP:8080/GPT9/,使用GPT的管理员帐号登录,进入Administration选项卡。在这可以看到刚才发布的china元数据,状态是Posted

勾选中这个元数据,在下拉框中选择“Set as Approved”,点击Excute Action按钮。

这个时候,用户已经可以通过GPT对这些元数据进行搜索了。还记得那个数据不负责任的描述“ddd”么?在首页搜索一下已经可以搜索到了。

数据库复制的几种常见方式

有三种分发数据的方法:(1)Copy和Paste:这种方法能够实现数据的分发以及更新,但是不能保证数据完全更新,并且无法保证数据库的同步;(2)Geodatabase Replication:能够在两个或者多个Geodatabase之间实现数据的复制与同步。Geodatabase Replication是建立在版本化数据的基础上的,支持拓扑与网络等完全的数据模型,并且能够在不同类型的数据库之间实现数据的复制与同步,例如Oracle与SQL Server之间;并且还支持在联网和非联网的方式下实现,在支持本地数据库连接的基础上,还支持通过Internet 所获得的GeodataServer对象;(3)DBMS复制:能够实现数据的复制与同步,要求数据库之间必须是直接连接的,不支持跨类型的数据库,不支持拓扑、网络等高级数据模型,并且更新的是所有的版本,而Geodatabase Replication只针对特定的版本。

分布式数据库的多种应用场景

Geodatabase Replication是在ArcInfo和ArcEditor中提供的

(1)Replica Tree

Geodatabase Replication能够用于创建复制树,允许企业在层状机构中间分发数据,每个下级部分获得的是与自己业务相关的一部分数据,而最上级机关负责管理所有的数据。

(2)Central Hub

为了使得某些操作能够快速进行,可以将中心Geodatabase作为一个Hub,其它地方对中心数据库复制一份,用于数据编辑,然后将编辑的结果同步到中心数据库中。

(3)Mobile Users

将中心数据库的一部分拷贝到移动设备上,拿到野外进行离线编辑,最后连接到中心数据库,利用移动设备上的数据来更新中心数据库。 (4)Contractors

能够将中心数据库中的数据复制下来,作为产品卖出,每个一段时间给用户实现同步以更新数据

(5)Load Balancing

为了实现机构内部数据编辑和访问的负载均衡,可以建立两套Geodatabase ,一个提供只读数据,方便用户进行数据浏览,另外一个提供可编辑的数据,方便用户进行数据更新。然后定期用可编辑的数据库去同步只读的数据库,实现数据库的同步,并且达到负载均衡、提高效率的目的。

(6)Multi-Group Data Management

在一个机构内部,一个中心数据库可能需要多个部门分别来管理,因此会将中心数据库分开拷贝到子数据库,由分中心进行维护,维护后的结果需要同步到中心数据库。

Replica和Geodatabase

实现Geodatabase的Replication包括两个步骤:将数据从源数据库拷贝到目的数据库,在源数据库和目的库之间创建Replica。这个Replica包含了数据源的信息以及用于数据同步的信息。在源数据库中的Replica叫做父复本,在目的库中的Replica叫做子复本。每一对父复本和子复本称为一个Replica对。其中源数据库必须是ArcSDE Geodatabse ,而目的数据库则可以是多种类型的Geodatabase。一个ArcSDE Geodatabase可以同时包含子复本和父复本,也可以包含多个子复本或者是多个父复本。File Geodatabase和Personal Geodatabase只能用于Check Out的子复本。

Replication Type

Geodatabase复制允许将数据拷贝分布在2个或更多的Geodatabase中,可以将数据库独立编辑,需要的时候再将它们同步。Geodatabase复制包括三种类型:

(1) Check In/Out:允许对子复本进行编辑,然后同步到父复本中,但是只能同步一次。如果希望将子数据库中的其它编辑情况再次同步到父数据库,则需要创建新的Check Out

Replica,其中Check In/Out的子复本的数据库可以是ArcSDE Geodatabase、File或者Personal

Geodatabase。

(2) One Way:父复本可以向子复本发送多次同步,而子复本不能将变化同步到父复本。同步的时候不会产生冲突,因为子版本的编辑均被父版本覆盖。One Way的子复本必须是建立在ArcSDE Geodatabase中。

能够复制的类型包括Full:包括拓扑和网络数据模型,要求子复本的数据被版本化;Simple:只能复制简单数据类型,子复本不一定要求被注册版本。

(3) Two Way:父复本和子复本之间可以多次同步,并且是双向的。在同步的过程总可能会发生冲突。子复本必须建立在ArcSDE Geodatabase中。

Replication的数据准备工作

在进行数据库复制的时候,可以将整个数据集复制,也可以是将子库进行复制,或者只是Schema。数据库用户必须对数据源具备读写权限,数据库必须是版本化的。不能将数据库注册为“Move edits to base ”。对于One Way/Two Way复制,有以下额外条件:每个数据库都必须具备Global colum,每个空间数据都必须保存在High Precision的空间参考系中。

复制的时候可以通过设定Filters和Relationship Classes来实现数据复制。Filters包括:Spatial、Selections、Querydefs;

Replica Creation 和Versioning

版本化的数据库方可实现数据库的复制。创建Replica后,在Source和Target数据库之间创建的是Replica Versions,同步时该Replica Version之间的变化进行交换。Default

Version或者其它的Version都能够被用为Parent Replica的Replica Version。很多Replica能够共享相同的Replica Version,也可以根据相同的Version创建多个Replica。

对于Check In/Out来说,子复本也可以创建在File和Personal Geodatabase中,但是这些数据库不支持版本化,因此需要其它的机制以实现版本化。

Replicating Related Data

有多种复制方向可以选择:Forwards、Backwards、Circulation

Raster Catalog和Raster Dataset不能够版本化,因此不能够被复制。但是在Create

Replica Wizard面板中能够从源数据库中提取Raster数据集和Raster Catalog,只要这些Raster数据是包含在ArcMap文档中的 。

Terrain和Network也不能被复制,但是只要构成它们的要素能够被版本化,它们也可以复制。在复制过程中忽略Terrain和Network,只有在复制完成以后,才能重建Terrain和Network

Synchronization

同步是将一个Replica中的数据变化,如插入、更新和删除,提交到相应的Replica中。为了能够同步,必须用创建复制时的同一个数据库用户进行同步。

在同步的时候会创建Synchronization Version,它是Replica Version的子类,暂时保存变化信息,直至被Reconcile和Post到Replica Version中。

对于Two Way复制来说,通过Filters和Relationship决定哪些数据被同步,同样也可以利用Logic来分辨哪些数据已经通不过。对于Check Out来说,对Check Out Replica的所有编辑都将被同步。

数据库同步时的数据交换是基于交换Replication Message的。在Connected 环境下,消息的传递是由系统管理的,可以确定同步的方向,一旦发生错误,则可以回退。而在Disconnected环境下,消息的传递需要人为控制,借助于CD、DVD、USPS等。

在数据同步过程中,Data Sender和Data Recevier之间的Acknowledgement Message是非常关键的。并且Sender和Reveiver之间的角色根据复制的类型是可以调换的。在进行下一次同步的时候,同步的数据包括新产生的更新,以及Un-Acknowledge的数据。

数据库复制的步骤

(1)决定把数据库复制多少次:复制一次,还是复制多次;

(2)采用什么样的复制类型:Check In/Out,One Way,Two Way;

(3)采用什么样的工具实现数据库的复制:Create Replica Wizard;Create Replica

Geoprocessing Tool;ArcObjects API

(4)将复制集成到Versioning Workflows中:一旦建立复制,则在父复本和子复本之间建立了复制对。要决定是对其它版本创建复制,还是直接对Default版本创建复制,这将决定同步时数据是否直接提交到Default版本。

(5)决定数据复制的数据类型:点线面等简单数据类型,还是网络、拓扑等复杂数据类型

(6)考虑复制的选项:是否Re-use Schema,表示是否利用子复本的数据库模式,仅用于Check Out;Schema Only,只将数据库的模式导出,仅用于Check Out,方便用户直接拿到野外,从头开始添加数据;Register Existing Data:如果要复制的数据量非常大,可考虑选择Register数据库,在复制之前需要做很多操作;Replicate Related Data:对于拓扑、网络等数据,是否也要复制相关的数据

(7)考虑数据库复制时是在Connected环境下,还是在Disconnected环境下,如果网络条件不好并且不稳定,则应该考虑后者。

(8)同步复制:Manul Synchronization,如果只是对小数据量的数据库进行同步更新,并且不是经常进行,则可以利用Distribution Geodatabase Toolbar来实现,能够实现局域网或者Internet数据库的同步;利用Agent实现自动更新:Geoprocessing中的Python脚本,以及通过ArcObjects实现

(9)同步时的冲突解决:如果同步时出现冲突,则可以通过自动或者手动的方式实现冲突解决

(10)决定将哪些数据同步,对于复杂数据要着重考虑

(11)同步的数据量:上一次同步以后产生的数据变化,以及同步以后没有接收到Acknowlegement的数据

(12)同步的先后顺序:由选择的复制类型以及定义的同步顺序所决定;

(13)Shcema变化:最后是否保持数据库的Schema不变

(14)错误信息:同步过程中发生错误,可以回退,并且可以浏览错误信息。

Geodatabase Replication和ArcGIS Server

能够通过LAN、WAN将访问由ArcGIS Server 的geodataserver 所发布的Geodatabase

Service,实现数据的读取和复制,将其加载到ArcSDE Geodatabase、File和Personal

Geodatabase中。如果要是在ArcMap中获取远程的Geodatabase,则需要具备Map Service以及Geodata Service

本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:/Article/

GIS其它

ArcGIS API for Flex 扩展 - 获取Polygon的中心点坐标

ArcGIS API for Flex主要构建于ArcGIS Server REST API之上,客户端的功能比较有限,很多高级功能都通过Geometry Service 和 Geoprocessing Service实现。但是,有时候一些简单的功能,比如获取Polygon的中心点,在这个点上弹出一个自定义的窗口之类的,如果都通过服务来交互,可能用户体验就会变差。所以,你可以自己编写一些代码,在客户端实现这些功能。

这是我写的从一个Polygon获取中心点坐标的代码:

/**

* Author:Wu Yongfeng * MSN/Email:warrenwyf@

*/

package wuyf

{

import ;

import nt;

import n;

public class GeometryUtil

{

/**

* 获取多边形的重心

* @param polygon 多边形

* @return 重心点

*

*/

static public function getGravityCenter(polygon polygon):MapPoint

{

var ext:Extent = ;

var p0:MapPoint = new MapPoint(, );

var momentX:Number = 0;

var momentY:Number = 0;

var weight:Number = 0;

for (var i:int=0; i<; i++ )

{

var pts:Array = as Array;

for ( var j:int=0; j<; j++ )

{

var p1:MapPoint = nt(i, j);

var p2:MapPoint;

if( j==-1 )

{

p2 = nt(i, 0);

}

else

{

p2 = nt(i, j+1); }

var dWeight:Number = (p1.x-p0.x)*(p2.y-p1.y)

- (p1.x-p0.x)*(p0.y-p1.y)/2

- (p2.x-p0.x)*(p2.y-p0.y)/2

- (p1.x-p2.x)*(p2.y-p1.y)/2;

weight += dWeight;

var pTmp:MapPoint = new MapPoint((p1.x+p2.x)/2, (p1.y+p2.y)/2);

var gravityX:Number = p0.x + (pTmp.x-p0.x)*2/3;

var gravityY:Number = p0.y + (pTmp.y-p0.y)*2/3;

momentX += gravityX*dWeight;

momentY += gravityY*dWeight;

}

}

return new MapPoint(momentX/weight, momentY/weight);

}

}

}

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687695168a32406.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信