Arcgis server开发web GIS 新手体验

Arcgis server开发web GIS 新手体验
Arcgis server开发web GIS 新手体验

Arcgis server开发web GIS 新手体验

ArcGIS Server是ESRI公司最新推出的服务器端品,主要可以实现两大功能:1、强大的Web GIS系统的开发;

2、分布式GIS系统的开发;

ArcGIS Server其内核与ArcGIS Desktop和ArcGIS Engine一样,都是ArcObjects 库。其所谓的Web GIS,其实无非就是用Web技术来封装ArcObjects而已;而分布式的开发则是通过DCOM来实现的。

小弟前几个月搞了一下ArcIMS,发觉开发起来确实痛苦啊,整天就是折腾

javascript+arcxml,郁闷死了,听闻有ArcGIS Server这种好东西,稍稍了解一下,便向老板建议转向ArcGIS Server,老板居然同意了。于是便开发学习了。网上四下里找了一下,发现可用的资源非常少,只好自己琢磨。从零开始真不容易啊,这不,刚上手就碰到了两个问题,好在都已经解决,现在写下来,希望对和我一样的新手有所帮助。

ArcGIS Server的安装非常简单,先安装ArcGIS Server,然后安装DotNet ADF,最后用ArcCatelog添加一个Server,然后再添加一个ServerObject,这样就可以进行开发了。这里的ServerObject与ArcIMS中的Service很像,其实应该是一个概念上的东西吧。添加一个ServerObject需要一个mxd或pmf文件,用来保存和管理需要发布的数据。

好了,现在可以开始开发了。

打开Visual Studio 2003,打开新建项目对话框,发现ESRI公司已经为我们准备好了一些ArcGIS Server Projects的模板,包括Map Viewer Web Application,Page Layout Web Applicaiton等等,我们就建一个Map Viewer Web Application吧,选中它,输入项目名称,然后点击“确定”按钮,我们发现一个已经包含了基本数据浏览和查询功能的Web GIS程序已经建好了。

好,打开Default.aspx文件,发现网页包含一个Map组件,一个Toolbar组件,一个TOC 组件,一个OverviewMap组件等等。看来与C/S开发模式下很像嘛,爽啊。其中Map组件和OverviewMap组件有两个必填属性:Host和ServerObject,就分别对应着我们在ArcCatelog中添加的的Server和ServerObject,输入它。然后设置TOC组件和Toolbar 组件的Buddy属性,OK,大功告成!

运行!咦,发生错误,定睛一看,原来是访问拒绝,这是怎么回事呢?记得以前看到一篇文章,说在https://www.360docs.net/doc/f28848260.html,中使用COM组件,经常由于权限原因,产生访问拒绝,而ArcGIS Server 本身就是对ArcObjects这些COM组件的再封装,看来就是这么回事了。找出这篇文章来,原来要在Web.config中加入一行就可以了:

password="123456"/>

再运行,哇塞,酷毙了,一个漂亮的WebGIS展现在眼前。可以浏览,查询,图层管理,鹰眼导航,还有指北针...

(后来发现页面上还一个组件叫impersonation没用上,看了一下它的属性,只有一个identity,点击它,你会发现...呵呵,原来这个组件就是用来干这个事的,晕,又浪费了我两个小时的宝贵时间...)

一行代码都不用写,爽。可是又很失落,心里没有底,这个Web GIS究竟是怎样实现的呢?

待续

ArcGis Server开发Web GIS新手体验(二)

接(一)

我们知道,.net adf提供的map组件、toc组件等都是标准的https://www.360docs.net/doc/f28848260.html,组件。这些组件在运行时,会生成相应的html代码,将自己展现出来。一般还会通过ViewState来保存状态,并生成_doPostBack(javascript)函数,在必要的时候,通过javascript来调用该函数,将客户端数据返回来服务器端,从而激发服务器的响应。总之,我们通过分析生成的html页面,应该可以大致窥见https://www.360docs.net/doc/f28848260.html,组件是怎么运行的。

好,我们现在按F5运行首页,然后在浏览器中查看网页的源代码,赶快看下一吧:

1、首先会看到ID,MapIdClick,start等javascript函数,这些函数是模板为我们生成的,在default.aspx文件中定义的。ID函数中有两行:

var iddiv = document.getElementById("MapDiv_Map1");

if (iddiv!=null) iddiv.onmousedown = MapIdClick;

可以看到,这几个函数的作用是对地图的Identify(点击查询)作出处理。

为什么要放在这里呢,为什么单单只有点击查询的javascript要在这里定义呢,其它如放大、缩小、平移为什么不在这里处理?这是因为Toolbar组件对放大、缩小、平移等提供了默认的处理方式,而identify没有,这样可以更方便进行扩展。在后面的代码中有一行,可以看到,这个调用是模板为我们生成的(并且这个调用是可以修改的)。待会我们在进一步分析中可以看到这一点。

2、再向下,是几个隐藏域,其中包含__VIEWSTATE隐藏域,还有__doPostBack函数,这些是https://www.360docs.net/doc/f28848260.html,组件生成的,作用是向服务器提交数据,从而与服务器进行交互。

3、往下我们看到了一些引入js脚本文件的代码:

可以看到,共引入了四个js脚本文件,这些文件的地址也比较奇怪,不是与当前网站在同一个虚拟目录下,而是在

http://localhost//aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript目录下。在

c:/inetpub/webroot/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript

/文件夹下可以找到这些文件。原来,为了重用的方便,在安装Arcgis Server时,安装程序就已经建立了一个虚拟目录,用于提供这些共享的资源。在这个文件夹上一级目录中,还可以看到images和treeimages两个子目录,以及treeview.htc文件。

知道了这些javascript文件的藏身之所,各位可以把这些javascript文件逐个看一遍,可以发现其作用主要是与浏览器进行交互。

4、再往下,是TOC组件的Html代码,代码片断如下:

ImageUrl="/aspnet_client/esri_arcgis_server_webcontrols/9_1/images/outscale.g if" CheckBox="False">

道路注记

ImageUrl="ESRI.Web.Controls.MIMEImage.aspx?ImgID=Default.aspx_Toc1_0_1 _0_0&NoCache=true">

这一段代码有一个特别之处就是

ImageUrl="ESRI.Web.Controls.MIMEImage.aspx...",这个

ESRI.Web.Controls.MIMEImage.aspx是什么东东,是一个网页吗?在机器里找一下,发现根本就不存在这个网页,那它又是何方神圣,竟然可以作为一个图片的地址?我们先往下看看。

5、

是鹰眼导航图的代码。怎么只有一个空的Div层和一个空的表格呢?唉,比较简单,我懒得分析了,同志们自己去找吧~

6、再往下是Toolbar组件的代码,没什么特别的:

id="Toolbar1ZoomIn"

onMouseDown="ToolbarMouseDown( 'Toolbar1', 'ZoomIn', 'Tool', event);"

onMouseOver="ToolbarMouseOver('Toolbar1', 'ZoomIn');"

onMouseOut="ToolbarMouseOut( 'Toolbar1', 'ZoomIn');"

style="background-color:LightSteelBlue;font-family:Arial;font-size:Smaller;font -weight:bold;"

>Zoom In

src="Images/zoominD.gif" align="absMiddle">

7、再下面是生成地图组件的代码:

又看到了MIMEImage这个东东!它究竟是什么东东呢?

如果对https://www.360docs.net/doc/f28848260.html,不是很熟悉的话,要破解这个秘密可能确实比较困难。

在https://www.360docs.net/doc/f28848260.html,中,所有的请求,都是通过httpHandler来进行处理的。那httphandler又是什么东东呢?其实只要实现在IHttpHandler接口的类,都可以作为一个HttpHandler。在web.config或machine.config文件中,可以定义哪些请求可以由哪个httphandler来处理。查看一下web.config文件,没有这些声明。那就看一下mapchine.config文件吧,这个文件在WINDOWS\https://www.360docs.net/doc/f28848260.html,\Framework\v1.1.4322目录下,用记事本打开它,查找ESRI.Web.Controls.MIMEImage.aspx,好家伙,果然在这里啊!

type="ESRI.ArcGIS.Server.WebControls.ImageHandler,

ESRI.ArcGIS.Server.WebControls, Version=9.1.0.722, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86"/>

原来ESRI.Web.Controls.MIMEImage.aspx请求是能过

ESRI.ArcGIS.Server.WebControls.ImageHandler来处理的。在Visual Studio中,使用对像浏览器查看一下esri.arcgis.server.webcontrols.dll文件,可以看到ImageHandler类,果然实现了IHttpHandler接口。呵呵,其实很简单嘛,我们也完全可以自己写一个类,来执行自定义的请求。

又写累了,就到这里吧。

待续

接(二)

在(二)中我们分析了HTML代码,也就基本弄清了.net adf怎样封装客户端的交互,以及客户端怎样与服务器端进行交互。下面我们再看一看服务器端的开发方式是怎样的,实际是就是进入了比较简单的实战。用其它工作开发Web GIS的朋友如果能够了解一下AGS的实现,一定会有很的大启发,你会在其中学到一些封装客户端、服务器端以及两者交互的技巧,怎样做到既封装一些常用的功能,又不妨碍我们进行功能的扩充。

好了,废话少说,开始我们新的体验吧。

在(一)中我们已经说了,.net adf提供了一系列的模板,这些模板又根据不同的需要,封装了一些常用的功能。我们的开发一般是从这些模板开始的。如果我们对这些模板生成的程序已经很熟了,当然也可以不需要这些模板,但如果你是新手,请从模板开始,这样可以避免走很多弯路。

首先,我们启动Visual Studio 2003,新建一个项目,在新建对话框中,在“项目类型”中可以看到ArcGIS Server Projects这一项,选择语言Visual C#,在右边的模板列表中可以看到有七种模板可供选择,每种模板可用于新建不同用途的应用,如下图所示:

我们先新建一个Map Viewer Web Application,也就是地图浏览程序。我们待会通过分析可以看到这个地图浏览程序是怎样实现的,以及怎样扩充自己的功能。

新建了一个Map Viewer Web Application之后,界面如下图所示。可以看到,.net为我们新建了一个https://www.360docs.net/doc/f28848260.html, web工程。工程包括三个页面,default.aspx,errorpage.aspx和identify.aspx。其中,default.aspx是主界面,errorpage.aspx用于出错信息的显示,identify 用于点击查询操作的结果的显示。下面我们主要分析default.aspx这个网页。

这个网页的的上部分是一个banner,不用管。下部分由七个https://www.360docs.net/doc/f28848260.html,组件构成。这七个组件分别是:

1、Map组件:地图组件。有两个关键属性:Host和ServerObject,不用我说,也知道这是什么意思。

2、Toc组件:图层控件组件(table of contents)。有一个关键属性BuddyControl,即与哪个Map组件相关联。

3、Toolbar组件:工具条组件。有一个关键属性BuddyControls,表示可以绑定多个Map组件或PageLayout组件。

4、OverviewMap组件:导航图组件。有三个关键属性Host,ServerObject和BuddyControl。

5、Impersonation组件:身份验证组件。有一个关键属性identity,用于设计怎么登录

到服务器,拥有操作的权限。

6、NorthArrow组件:指北针

7、ScaleBar组件:比例尺组件,有一个关键属性BuddyControl。BarFont属性好像有Bug,怎么设置也不起效,字体总是很小,不知为什么,哪位朋友也帮俺一个忙,看看怎么回事?

这七个组件中,显然Map组件最为重要,因为它负责地图显示并与用户交互。我们看一下Map组件有的事件,只有MapChanged的事件包含代码,仔细看一下,是与视图(地图范围)保存相关的代码。那Map组件与用户交互以及服务器端的处理代码,如缩放地图,在哪里呢?

再看一看Toolbar组件,共包含七个按钮,分别是放大,缩小,平移,全图,上一视图,下一视图和点选。点开它的ToolbarItems属性看一下,原来工具条按钮的定义都在这里面。

工具条按钮有两种类型:Tool和Command

Tool:工具按钮。表示点击后并不立即执行某项功能,而是需要用户与地图进行交互再执行。所以需要保存它的状态。并且同时需要有相应的客户端代码(javascript)和服务器端代码。放大、缩小、平移和点选属于这种类型。

Command:命令按钮。立即执行某项操作,不需要有户交互,所以不需要何存状态。全图、上一视图、下一视图属于这种类型。

我们在ToolbarItems的定制界面中,选中identify,看一下它的属性,包括五部份:1、Appearance Images组:定义按钮显示的图片。这些设置会转化成HTML代码。

2、Appearance Text组:有两个子项。Text表示在按钮中显示的文字,也就是说按钮可以由图片和文字两部份组成。ToolTip,即鼠标放在按钮上面时显示的提示信息。

3、Client-side Action组:这组只有一个属性,就是ClientToolAction,这里就是与客户端交互的javascript代码了。内容是ID()。我们打开defaut.aspx,查看HTML,可以看到ID函数的内容。这里交互比较简单的情况,交互比较复杂,如放大时需要拉框,怎么封装?原来,Cient-side Action实际上只是javascript中onmousedown的执行函数,拉框所需的onmousemove和omnouseup去哪里找?其实只是一个小技巧而已,在onmousedown中动态地给onmousemove和onmouseup赋值不就可以了吗?事实上,.net adf封装zoomin 等操作就是这要样做的。

Client-side Action属性有一个下拉选项,包含的是DragImage,DragRectangle,Point,Line,PolyLine,Polygon,Circle,Oval,none,Custom。不用解释,相

信大家也明白了,是Toolbar组件封装了各种不同类型的客户端操作。这些与客户端交互的javascript在哪里呢?(二)中已经介绍了,这里就省略啦。

4、General组。包括Disabled,Name,ShowLoading三个属性。

5、Server-side Action组:有两个属性,ServerToolActionAssembly和ServerToolActionClass,用于定义服务器端要执行的功能。在.net adf中,每个被封闭的服务端操作,都是由一个类来实现的,ServerToolActionAssembly表示这个类在哪个程序集中,ServerToolActionClass就是这个类的名称。我们在ServerToolActionAssembly中选择ESRI.ArcGIS.Server.WebControls,可以清楚的看到该程序集中定义了四个这种类:MapCenterAt,MapPan,MapZoomin,MapZoomout。事件上,我们也可以定义自己的处理类,只要实现ESRI.ArcGIS.Server.WebControls.Tools.IMapServerToolAction接口就可以了。

关于扩展:

1、客户端交互:即Client-side Action组,adf封装了DragImage,DragRectangle,Point,Line,PolyLine,Polygon,Circle,Oval这几种操作,相信已经能够应付我们绝大部份的应用了。如果还不行,别忘了最后还有一项custom,选中它,自己写javascript 就可以了。记得是onmousedown的javascript哦。在交互完毕后的代码中,如果需要返回到服务器端的话,记得执行_doPostback函数。

2、服务器端功能实现:即Server-side Action组。Map组件针对客户端封装的每种行为,都提供了一个事件,表示客户端交互完毕后,立即执行该事件中的代码。这些事件有Oval,Line,Point,Polygon等。如果客户端操作是自己写的javascript,并最后提交了操作到服务器的话,可以在Page_Load中处理你自己的操作。

上面介始的是Tool类型的工具条按钮。至于Command类型的就简单多了,我们可以选中FullExtent看一下,它的属性少了Client-side Action组和Server-side Action组。它的实现代码就直接到Toolbar组件的CommandClick事件中。自己去看吧。

其它组件就不介绍了。

说了这么多,相信您对用.net adf开发Web GIS已经有一个大致的了解,也基本明白了.net adf的封装方式,您已经可以开始偿试修改已有的功能,或者进行一些简单的扩展了。下一节我

就再介绍一下怎样进行简单的功能扩展。

待续

接(三)

这一节主要贴代码算了,通过代码看一下一些简单功能的实现。偶快要放假了,静不下心来写了,写得也不好。说不定贴代码效果更好。

1、获取所有图层

ESRI.ArcGIS.Server.WebControls.WebMap webmap= Map1.CreateWebMap();

try

{

ESRI.ArcGIS.Carto.IMapDescription descr = webmap.MapDescription;

ddlLayers.Items.Clear();

int id;

for (int i=0;i<= https://www.360docs.net/doc/f28848260.html,yerDescriptions.Count-1;i++)

{

id = https://www.360docs.net/doc/f28848260.html,yerDescriptions.get_Element(i).ID;

ddlLayers.Items.Add(id.ToString() + "," + https://www.360docs.net/doc/f28848260.html,yerNameFromID(i d)); //ddlLayers是一个DropDownList控件

}

if (ddlLayers.Items.Count>0)

{

ddlLayers.SelectedIndex=0;

}

}

finally

{

webmap.Dispose();

}

2、通过图层的ID获取图层对象

private IFeatureLayer GetFeatureLayer(int lyid)

{

WebMap webmap = Map1.CreateWebMap();

try

{

ILayer layer = (webmap.MapServer as IMapServerObjects).get_Layer(webmap. DataFrame,lyid);

if (layer==null)

return null;

else

{

return (layer as IFeatureLayer);

}

}

finally

{

webmap.Dispose();

}

}

3、新建一个多边形

private void Map1_Polygon(object sender, ESRI.ArcGIS.Server.WebControls.Po lygonEventArgs args)

{

if (args.ToolName == "newpolygon")

{

IFeatureLayer flayer = GetCurFeatureLayer(); //获取当前活动图层了函数,

这里就不贴了,就是调用GetFeatureLayer(int lyid)函数

if (flayer == null) return;

if (flayer.FeatureClass.ShapeType != ESRI.ArcGIS.Geometry.esriGeometryTy pe.esriGeometryPolygon)

{

string sc;

sc = "";

Page.RegisterClientScriptBlock("ShapeTypeError",sc);

return;

}

//生成多边形

ESRI.ArcGIS.Server.IServerContext context;

ESRI.ArcGIS.Server.WebControls.WebMap webmap = Map1.CreateWebMap();

webmap.ManageLifetime(flayer);

context = webmap.ServerContext;

ESRI.ArcGIS.Geometry.IPolygon poly = context.CreateObject("esriGeometry. Polygon") as ESRI.ArcGIS.Geometry.IPolygon; //'new ag.PolygonClass();

webmap.ManageLifetime(poly);

ESRI.ArcGIS.Geometry.IPoint pt;

ESRI.ArcGIS.Geometry.IGeometryCollection ringcol = context.CreateObject(" esriGeometry.Polygon") as ESRI.ArcGIS.Geometry.IGeometryCollection;// new P olygonClass();

webmap.ManageLifetime(ringcol);

ESRI.ArcGIS.Geometry.IPointCollection ptcol =context.CreateObject("esriGeo metry.Ring") as ESRI.ArcGIS.Geometry.IPointCollection;// new RingClass();

webmap.ManageLifetime(ptcol);

object obj=Type.Missing;

for (int i=0;i<=args.Vectors.Length-1;i++)

{

pt = webmap.ToMapPoint(args.Vectors[i].X,args.Vectors[i].Y);

ptcol.AddPoint(pt,ref obj,ref obj);

}

ringcol.AddGeometry(ptcol as IGeometry,ref obj,ref obj);

poly = ringcol as IPolygon;

//将多边形写入到图层中

ESRI.ArcGIS.Geodatabase.IFeature feature = flayer.FeatureClass.CreateFeat ure();

feature.Shape = poly as IGeometry;

feature.Store();

webmap.Refresh();

webmap.Dispose();

}

}

4、矩形选择,获得选择集,并在地图上显示选中的对象。(这个功能花费了偶一天多的时间。)

private void Map1_DragRectangle(object sender, ESRI.ArcGIS.Server.WebCont rols.ToolEventArgs args)

{

string strTool = args.ToolName.ToLower();

if (strTool=="rectsel")

{

//取得当前层

if (ddlLayers.SelectedValue=="")

return;

IFeatureLayer flayer = GetCurFeatureLayer();

if (flayer == null) return;

//获得选择集

int t1=Environment.TickCount;

ESRI.ArcGIS.Server.WebControls.WebMap webmap = Map1.CreateWebMap();

ESRI.ArcGIS.Server.IServerContext ctx = webmap.ServerContext;

webmap.ManageLifetime(ctx);

ESRI.ArcGIS.Geodatabase.IWorkspace ws = (flayer.FeatureClass as ESRI.Arc GIS.Geodatabase.IDataset).Workspace;

ESRI.ArcGIS.Geometry.IEnvelope env = ctx.CreateObject("esriGeometry.Env elope") as ESRI.ArcGIS.Geometry.IEnvelope;

webmap.ManageLifetime(ws);

webmap.ManageLifetime(env);

IPoint pt = webmap.ToMapPoint(Convert.ToInt32(Request.Params.Get("max x")),Convert.ToInt32(Request.Params.Get("maxy")));

env.XMax = pt.X;

env.YMin = pt.Y;

pt = webmap.ToMapPoint(Convert.ToInt32(Request.Params.Get("minx")),Co nvert.ToInt32(Request.Params.Get("miny")));

env.XMin= pt.X;

env.YMax = pt.Y;

ESRI.ArcGIS.Geodatabase.ISpatialFilter filter = ctx.CreateObject("esriGeodat abase.SpatialFilter") as ESRI.ArcGIS.Geodatabase.ISpatialFilter;

webmap.ManageLifetime(filter);

filter.SpatialRel = ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum.esriSpatialR

elIntersects;

filter.Geometry = env as ESRI.ArcGIS.Geometry.IGeometry;

filter.GeometryField = flayer.FeatureClass.ShapeFieldName;

ESRI.ArcGIS.Geodatabase.ISelectionSet sset = flayer.FeatureClass.Select(filt er,ESRI.ArcGIS.Geodatabase.esriSelectionType.esriSelectionTypeSnapshot,ESRI.A rcGIS.Geodatabase.esriSelectionOption.esriSelectionOptionNormal,ws);

int t2=Environment.TickCount;

int t3=t2-t1; //t3是查询响应的时间,可以用来测试一下性能,呵呵

//显示选择集

int id;

ESRI.ArcGIS.Geodatabase.IEnumIDs ids;

ids = sset.IDs;

webmap.ManageLifetime(ids);

ids.Reset();

ESRI.ArcGIS.Geodatabase.IFIDSet fidset = ctx.CreateObject("esriGeodatabas e.FIDSet") as ESRI.ArcGIS.Geodatabase.IFIDSet;

id = ids.Next();

while (id>=0)

{

fidset.Add(id);

id =ids.Next();

}

IMapDescription desc = webmap.MapDescription as IMapDescription;

webmap.ManageLifetime(desc);

ILayerDescription ldesc = https://www.360docs.net/doc/f28848260.html,yerDescriptions.get_Element(flyid);

webmap.ManageLifetime(ldesc);

ldesc.SelectionFeatures = fidset;

//将选择信息保存在session中

Session["selection"] = sset;

Session["layerid"] = flyid;

webmap.Refresh();

webmap.Dispose();

}

}

5、删除选中的对象

private void DeleteSel()

{

if (Session["layerid"]==null) return;

if (Session["selection"] == null) return;

int layerid = (int)Session["layerid"];

if (layerid == -1) return;

ESRI.ArcGIS.Geodatabase.ISelectionSet sset = Session["selection"] as ESRI.A rcGIS.Geodatabase.ISelectionSet;

if (sset == null) return;

WebMap webmap = Map1.CreateWebMap();

IFeatureLayer layer = GetFeatureLayer(layerid);

if (layer==null) return;

webmap.ManageLifetime(layer);

webmap.ManageLifetime(sset);

ESRI.ArcGIS.Geodatabase.IEnumIDs ids = sset.IDs;

webmap.ManageLifetime(ids);

ids.Reset();

int id;

id = ids.Next();

ESRI.ArcGIS.Geodatabase.IFeature feature;

ESRI.ArcGIS.Server.IServerContext ctx = webmap.ServerContext;

webmap.ManageLifetime(ctx);

//将selectionset转化为featurecursor对象

ESRI.ArcGIS.Geodatabase.IFeatureCursor fcursor;

ESRI.ArcGIS.Geodatabase.ICursor cursor;

sset.Search(null,false,out cursor);

fcursor = cursor as ESRI.ArcGIS.Geodatabase.IFeatureCursor;

ESRI.ArcGIS.esriSystem.ISet pDeleteSet = ctx.CreateObject("esriSystem.Set ") as ESRI.ArcGIS.esriSystem.Set;

webmap.ManageLifetime(pDeleteSet);

//设置ISet对象

feature = fcursor.NextFeature();

while (feature != null)

{

pDeleteSet.Add(feature);

feature = fcursor.NextFeature();

}

ESRI.ArcGIS.Geodatabase.IFeatureEdit fedit;

pDeleteSet.Reset();

fedit = pDeleteSet.Next() as ESRI.ArcGIS.Geodatabase.IFeatureEdit;

while (fedit != null)

{

fedit.DeleteSet(pDeleteSet);

fedit = pDeleteSet.Next() as ESRI.ArcGIS.Geodatabase.IFeatureEdit;

}

Session.Remove("layerid");

Session.Remove("selection");

webmap.Refresh();

webmap.Dispose();

}

webgis应用开发(附源码)

另辟渠道的webgis应用开发(附源码) 在用ARCIMS开发webgis中小型应用程序的时候,我相信很多人和我一样,就是如何将保存在简单数据库(如ACCESS)里的一些专题点信息该如何体现在地图上,这些点多则有3000,4000,另外还可通过地图操作(添加,平移)进行专题点编辑。如果直接用HTML VIEWER,这可是个不大不小的难题。一开始,我们使用了ACETATELAYER方式进行处理,效果不甚理想,在局域网中多用户并发访问时就有明显的速度瓶颈,更何况INTERNET上。 如下代码就是在此问题上做出的一种解决方案尝试,即部分地图信息客户端化。目前我正在开发,只是部分调试仅在局域网中通过,并没有完全成熟,在线面上还是处理开发阶段。现在介绍一下代码的基本思想,希望大家能够加以讨论。该代码使用JAVASCRIPT开发,它以基础图层地图图片为底图,在此之上进行图层扩展,客户端形成一套小型的webgis,与ARCIMS同步刷新,形成无缝整合,给人感觉就是一个整体的webgis系统。该代码在对象层次关系上模拟ACTIVEX CONNECTOR的重点对象。通过不同refres h函数与基础图层同步更新(为提高客户端速度,开放了很多refresh方式,即只refresh发生改变的对象坐标位置,当然放大缩小平移之类的操作就需要整个客户端refresh,因为每个点都发生了位置变化)。之所以如此层次化,一方面是为了增强代码的可读性和可维护性,另一方面通过封装具体VML代码实现来简化开发过程。这样一来,可以大大减轻服务端的处理,客户端和服务端同时处理,提高地图的运行速度。 我想重点说明的是,如果将部分地图信息移到客户端,必然需要自主开发一些原本集成好的功能(比如说在FeatureLayer中的WHEREEXPRESSION,BUFFER等功能)用于客户端。以BUFFER为例,圆形如何画,必然是vml的oval,可以把它作为一个特殊地图图层来看待,它是一个圆,而不是点,线,区(折线),这就是图层类型扩展。同样的道理还用在监控(关于监控的需求可查看https://www.360docs.net/doc/f28848260.html,/bbs/disp bbs.asp?BoardID=23&ID=14998),它是一种特殊的点层,它具体表现内容更丰富,所以也可以把它看成一种图层类型。 当然,之所以费尽心思放在客户端做,还有个很重要的目的就是为了解决地图特殊信息的可编辑。首先说明,此方法对基础图层的属性是无能为力的,它仅是用于在客户端生成的专题信息。 以本代码为例,客户端添加一个新点则需要先在相关对象中add,还需要通过数据库的方式将点保存。如果移动某客户端生成点,则显示客户端的移动过程,然后更改该对象的left和top到XY即可。另外要注意的是,客户端gismap对象中的所有涉及点的坐标都是地图坐标,所以经常需要屏幕坐标和地图坐标之间的转换,以前我说过,现在就不多说了,代码也体现比较明显。 以下是未完成代码的详细内容,以后会将很多实现补充上来,希望给有此需求的人员带来启示,并欢迎大家跟贴讨论,恭请候教。 function GisMap() { var i ; this.control = drawonmap ; //控件名称 this.visible = true ; //是否显示 this.mapXMin = 0 ; //地图最小X this.mapYMin = 0 ; //地图最小Y this.mapXMax = 0 ; //地图最大X this.mapYMax = 0 ; //地图最大Y https://www.360docs.net/doc/f28848260.html,yers = new Layers() ; //图层集合对象 ///返回含屏幕坐标的point对象 this.fromMapPoint=function(mapX,mapY) { var point = new PointObject() ;

ArcGIS Server地图发布详解

ArcGIS Server地图发布详解 1地图服务发布 ArcGIS Server可以支持多种服务类型,用户通过ArcGIS Server发布的这些服务可以享用GIS功能。ArcGIS Server10.0支持的多种服务类型如下: Map Service 是使用最多的一种ArcGIS Server服务。该服务可以支持发布二维地图,支持建模,支持OGC WMS和KML,支持在线编辑空间数据等。本章主要介绍Map Service。 Geocode Service指的是地址编码服务,该服务可以把一个文本描述的地址转化为一个地理坐标。 Geoprocessing服务是一个基于Web的地理处理工具,客户端提交处理请求,服务器执行空间分析和建模,然后把执行结果展现在客户端。 Geodata Service提供了访问Geodatabase数据库内容的功能,支持在线的数据查询,数据提取,数据更新等。该服务在管理分布式的Geodatabase时非常方便。 Globe Service是ArcGIS Server提供的3D服务。首先在ArcGlobe中创建3dd文档,然后通过ArcGIS Server发布即可。用户可以使用免费的ArcGIS Explorer来访问ArcGIS Server发布的3D服务。 ArcGIS Explorer的下载网址: https://www.360docs.net/doc/f28848260.html,/ArcGISExplorer/Build450/ArcGISExplorerDownload.exe 下面几个小节内容主要介绍如何发布一个Map Service。 1.1 制作地图文档 1.从开始菜单启动ArcMap,新建一个空文档。 2.点击Add Data按钮,定位到数据位置,选中.shp文件,点击Add按钮。这样就把shp数据加载到ArcMap中。 3.右键点击图层,选中Properties菜单。 4.编辑渲染方式。点击Add All Values按钮,点击确定按钮。 5.设置符号化方式后,地图信息更丰富。 6.从File菜单中选择保存菜单。定位到某文件夹,在文件名输入框中输入:*.mxd,点击保存按钮。此文档将作为ArcGIS Server地图服务发布的文档。 7. 关闭ArcMap。 1.2 用户权限设置

《WebGIS课程》期末考试复习

网络地理信息系统 第一章绪论 1.名词解释 WebGIS:即互联网地理信息系统,是Internet与WWW技术应用于GIS开发的产物,是利用WEB技术拓展和完善GIS的一项新技术。 2.简答 (1)WebGIS的组成以及各个承担的功能: WEB浏览器:用户通过浏览器获取分布在Internet上的各种地理信息 通信协议:通过相关协议,设定浏览器与服务器之间的通信方式及数据访问接口,是地理信息在Internet上发布的关键技术。 WEBGIS服务器:根据用户请求操作GIS数据库,为用户提供地理信息服务,实现客户端与服务器的交互。 (2)WebGIS的基本架构: (3)WebGIS的特点。 1、基于Internet/Intranet标准 2、分布式体系结构:有效平衡客户端与服务器端的处理负载 3、发布速度快,范围广 4、数据来源丰富,分布储存 5、用户界面友好 6、平台无关 7、成本低廉,操作简单

(4)WebGIS的作用。 <1>促使传统工作站版的GIS走向分布式、大众化,使GIS真正走进人们的生活、工作和学习中; <2>空间数据的分发、获取、浏览更加方便、快捷; <3>更加友好的、互动的可视化界面,是对传统GIS的一种革新; <4>使空间分析无处不在,人们能够随时随地使用GIS的分析功能; <5>将GIS与其他软件系统之间的集成变得更加容易,推动了GIS向纵深快速发展,使GIS走向企业化、社会化、网络化和智能化。 补充知识点: WebGIS基本思想:就是在Internet网上提供地理信息,让用户通过浏览器获得一个地理信息系统中的数据和服务 WebGIS的功能:地图服务、数据查询服务、地理编码服务、要素服务、导航或位置服务、个性化地图服务、远程数据维护功能。 3.论述 结合实例说明当前WebGIS的发展趋势和研究前沿(至少四个)。 大数据、云计算、分布式、三维GIS、移动GIS (1)基于分布式计算的WebGIS 要实现地理信息的分布式计算,必须采用标准的、开放的和广泛支持的分布式对象体系结构。例如,CORBA具有完美的平台无关性和兼容性,如与JAVA结合,可解决代码复杂、实现困难的问题,因而受到日益广泛的支持,必将成为未来WebGIS发展的主流技术 (2)三维GIS 目前GIS大多提供了一些较为简单的三维显示和操作功能,但与真正的三维表示和分析还有很大差距,真正的三维GIS必须支持真三维的矢量和栅格数据模型及以此为基础的三维空间数据库,解决三维空间操作和分析问题。

ArcGIS Server常见问题及解决方案

1.是否可以在同一台计算机上安装ArcGIS Server for the Microsoft .NET Framework 和ArcGIS Server for the Java platform? ArcGIS Server 的.NET 和Java 版本可以共存于同一台计算机上。若要将两者一起安装,则需要遵循以下步骤,以确保服务器目录能够正确地映射到IIS 或Apache Web 服务器的虚拟目录: 1.安装.NET 版本或Java 版本的ArcGIS Server。 2.使用管理器或ArcCatalog 删除默认的服务器目录(arcgiscache、arcgisjobs、 arcgisindex、arcgisinput、arcgisoutput)及其相关联的虚拟目录。 3.安装其他版本的ArcGIS Server。您可以保留此版本的默认服务器目录和虚拟目录。 4.使用文件系统工具为步骤1 中安装的ArcGIS Server 版本创建其他服务器目录。 5.使用ArcCatalog 或管理器,为在步骤1 中安装的ArcGIS Server 注册新服务器目 录及其相关的虚拟目录。 2.应当对SOM 和SOC 帐户使用何种帐户? 服务器对象管理器(SOM) 和服务器对象容器(SOC) 帐户供GIS 服务器进行内部使用,仅需要对计算机拥有有限的权限。仅当您在其他计算机上安装ArcGIS Server 时,或者仅当您授予GIS 服务器访问您的数据的权限时,您才会用到这些帐户。大多数情况下,使用安装后配置(ArcGISSOM 和ArcGISSOC)所建议的默认帐户名称并让向导为您创建帐户即可。出于安全原因,安装后配置将创建较之域帐户更加推荐的本地帐户。 3.计算机名称在安装后配置过程中被截断。 ArcGIS Server 名称不能超过15 个字符;如果超出该长度,则会在安装后配置期间及尝试连接到服务器时遇到错误。这是与活动目录名称的Microsoft 规范相关的已知限制。 4.是否对安装日志或摘要进行存储以供今后查看? 即使从命令行运行安装程序,也不会自动记录安装过程,但是您可以添加用于创建日志文件的参数。要了解有关从命令行进行安装的详细信息,请参阅ArcGIS Server 安装指南。

WebGis的主流技术及发展方向

WebGis的主流技术及发展方向 一、WebGIS技术概述GIS经历了单机环境应用向网络环境应用发展的过程网络环境GIs应用从局域网内客户服务器(ClientServerCS)结构的应用向Intemet环境下浏览器服务器DOwserServerBS)结构的WebGISm应用发展。随着Intemet的发展WebGIS开始逐步成为GIS 应用的主流WebGIS相对于CS结构而言具有部署方便、使用简单、对网络带宽要求低的特点为地理信息服务的发展奠定了基础。 二、WebGIS的特点(1)更广泛的访问范围。全球范围内任意一个客户可同时访问多个位于世界各地不同的WebGIS服务器上的最新数据Internet所特有的这些优势大大方便了WebGIS的数据管理 使分布式的多数据源的数据管理和合成更易于实现。(2)平台独立性。无论客户机与服务器是何种机器操作系统如何或者服务器端使用何种WebGIS软件由于使用了通用的Web浏览器用户都可透明访问WebGIS数据库在本机或某个服务器上进行分布式部件的动态组合和空间数据的协同处理与分布实现远程异构数据的共享。(3)真正大众化的GIS。以往的GIS由于成本高、技术难度大往往成了少数专业人士拥有的专业工具很难推广。而且对于每个用户来说,在每个客户端都要配备昂贵的专业GIS软件但用户经常使用的却只是一些最基本的功能 这在实际上造成了极大的浪费。WebGIS则给更多的用户提供了使用GIS的机会。WebGIS在客户端通常只须使用通用浏览器进行浏览和查询(有时还要加入一些免费使用的插件、ActiveX控件等) 从而大大降低了系统成本。(4)平衡高效的计算负载。以往的G1S大多使用文件服务器结构的处理方式 其处理能力完全依赖于客户端 效率较低。而WebGIS能充分利用网络资源 将基础性、全局性的处理交由服务器执行 而把数据量较小的简单操作交给客户端去完成。这种计算模式能灵活高效地寻求计算负荷和网络流量负载在服务器端和客户端的合理分配 是一种较理想的优化模式。(5)良好的可扩展性。WebGlS很容易与Web中的其他信息服务进行无缝集成 可以建立灵活多样的GIS应用。例如随着通信终端向多媒体和移动化方向发展 数字移动电话、PDA(个人数字助理)将成为webGIs的客户端

ArcGISServer安装与破解图文教程

A r c G I S S e r v e r安装与破 解图文教程 The latest revision on November 22, 2020

A r c G I S S e r v e r10.2安装与破解图文教程 ArcGISServer是ESRI公司的ArcGIS系列产品家族中的服务端产品,基于ArcGISServer可以构建Web地图服务,开发WebGIS系统。 通过万能地图下载器下载的ArcGISServer瓦片服务,可以用ArcGISServer进行发布。 你可以通过以下地址下载安装包: 下载解压之后,用虚拟光盘打开ISO文件(Win10系统直接双击打开),然后双击ESRI.exe 开始安装。 进入安装界面后,点击“Setup”安装ArcGISforServer开始安装。 点击“Next”按钮,进入下一步安装界面。 选择同接受许可协议后,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 设置一个能记住的帐户和密码,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Install”按钮,开始安装软件。 正在安装软件,速度根据电脑运行效率不同而不现,一般大概需要几分钟左右。 点击“Finish”按钮,完成安装。 选择立即用许可文件认片,然后点击“Browse...”按钮。 选择压缩包中的许可文件并点击“打开”按钮。 点击“下一步”按钮开始授权。 授权成功之后,点击“完成”按钮。 安装完成后会自动打开一个Web页面,在该页面中可以创建一个站点,设置一个能记住的管理员帐户。 点击“下一步”按钮进行站点配置。 点击“完成”按钮,进行站点配置。 正在进行站点创建。 创建完成后,用设置的帐号登录。 站点创建完成。

ArcgisServer发布服务时错误

ARCGIS Server 发布服务时出现的问题解决 前言:这类问题解决第一步,看出现问题时提示的错误提示,若没有错误提示,去server 的log中找到产生问题时的日志,看里面这类问题产生的原因。 一、Access to output directory is denied(原创) 一、问题 Access to output directory is denied 二、问题描述 无法启动服务,Access to output directory is denied 三、问题原因 当前用户、SOM、SOC用户没有写权限 四、解决方法 赋予对这些用户对临时文件的写权限 二、Probable cause: The network path is inaccessible to ArcGIS Server Object Container account. 问题描述 arcgisserver发布服务时无法启动服务,没有任何外在的错误提示 问题原因 某些指定路径不存在 解决方法 找到arcgisserver发布服务需要对应的文件夹,若没有,则按照指定路径创建,详情可参考第三条。 三、ArcGIS常见问题解决之Server Object instance creation failed on machine xxx 1.1 问题症状 在客户现场进行开发测试的时候发现,无法在ArcGIS Server上发布新的地图服务,但是可以发布影像服务、GP服务,已经发布的地图服务都可以运行。发布服务时具体的错误信息是:Server Object instance creation failed on machine xxx。 1.2 日志信息 查看日志信息,记录如下: Attempt to start configuration nmdis/topic_binhaishidi of type MapServer. Container 5296 is successfully created on machine IBM3850X5. Thread 18088 is successfully created on container 5296 of machine IBM3850X5.

ArcGIS Server 10安装及破解(亲测通过)

Win7 下ArcGIS Server 10.0的安装 1、插入安装盘,运行,如下图: 与ArcGIS Desktop 10.0的安装一样,如果安装过旧的版本,要首先冲突检测,卸载历史版本,否则会导致安装失败。 2、点击ArcGIS Server for the Java Platform Setup安装,如下图:

按照提示一路下一步,开始进行安装。 4、安装完成,如下图: 5、接下来进入配置阶段,弹出GIS Server Post Install,如下图:

6、下一步,进入SOC和SOM账户的配置,如下图: 7,输入密码后下一步,进入GIS Server Manager Account配置界面,如下图:

8、接下来一路下一步,确认安装,如下图: 9,这里会弹出授权界面,在这里进行破解,如下图:

10、选择第三项,将下面的内容复制到新建文本文档,然后改文本文档的后缀名为ecp,浏览此ecp文件完成授权 3dengine,100,ecp.arcgis.server,none,KGE784S1MGRMMBKYZ161 3dserver,100,ecp.arcgis.server,none,VPH4ENBJ3Y831R1DF089 arcgisserver,100,ecp.arcgis.server,none,D7MFFAZ8THZTPJR67072 bingmapseng,100,ecp.arcgis.server,none,QH1N8J6BZM7PGTJ89232 bingmapssvr,100,ecp.arcgis.server,none,OLPF80PYJCNJJ7GPE158 businessvr,100,ecp.arcgis.server,none,UTE4AE2CXR2XYNEBB205 defenseintleng,100,ecp.arcgis.server,none,TRCZY4S1MGRMMBKYZ067 defenseintlsvr,100,ecp.arcgis.server,none,LHH9HK9J5ZA46EDPN164 defenseuseng,100,ecp.arcgis.server,none,UTF457E50KE00FH23148 defenseussvr,100,ecp.arcgis.server,none,LHH30H4CE00LTJT46024 designer,100,ecp.arcgis.server,none,TRBZMD18RMLSPF002054 gdbedit,100,ecp.arcgis.server,none,WEJFRRF0C6JCE3MXE079 geostatserver,100,ecp.arcgis.server,none,UTF654S1MGRMMBKYZ201 imageextserver,100,ecp.arcgis.server,none,HC4RTXLPE9JEE3CPR167 interopengine,100,ecp.arcgis.server,none,MJJAFH5G1E612RZFF118 interopserver,100,ecp.arcgis.server,none,VPF0TRFN61B75E5HJ074 jtxserver,100,ecp.arcgis.server,none,JFB157E50KE00FH23053 maplexengine,100,ecp.arcgis.server,none,LHH40XLPE9JEE3CPR159 networkengine,100,ecp.arcgis.server,none,YYPMSNCN82E8AZJTR206 networkserver,100,ecp.arcgis.server,none,PMYHHAY5RHHMF5KHT131 schematicengine,100,ecp.arcgis.server,none,YYPDCAZ8THZTPJR67200 schematicsvr,100,ecp.arcgis.server,none,PM0L8NAF20BTKXNCD158 spatialengine,100,ecp.arcgis.server,none,B5JA84S1MGRMMBKYZ159 spatialserver,100,ecp.arcgis.server,none,JFBXLD18RMLSPF002237 standardengine,100,ecp.arcgis.server,none,UTF750PYJCNJJ7GPE061 svradvanced,100,ecp.arcgis.server,none,UTE0RNBJ3Y831R1DF145 svrenterprise,100,ecp.arcgis.server,none,TRB6A7E50KE00FH23206 svrstandard,100,ecp.arcgis.server,none,A3C0LPJ0A5FBAZ8LN139 trackingengine,100,ecp.arcgis.server,none,VPF1RK8GZP4ZXNX8A052 virtualearthsvr,100,ecp.arcgis.server,none,FA0N5C04SE0H9KB10133

WebGIS_网络地理信息系统的应用与实现

WebGIS—网络地理信息系统的应用与实现 黄宪明1,刘就女2 (1.广东工业大学机电工程学院图学与数字媒体系,广州 510090;2.华南理工大学机械工程学院工业设计与图学研究所,广州 510640) 摘要:地理信息系统GIS(Geographical Information System)是在计算机软硬件系统的支持下,对整个或部分地球表层空间中的有关地理分布数据进行采集、存储、管理、运算、分析,以及进行可视化表达的信息处理与管理系统。GIS在商业、农业、水利和交通等行业具有非常广泛而实际的应用。在Internet 引入到GIS,即WebGIS出现后,使GIS的应用进入了一个新的发展阶段。为此,简要地探讨了WebGIS的应用和实现技术。 关键词:自动控制技术;WebGIS;应用;实现技术 中图分类号:TP273+.5 文献标识码:A 文章编号:1003─188X(2005)04─0243─02 WebGIS即网络地理信息系统,是Internet技术应用于GIS开发的产物。GIS通过Internet功能得以扩展, Internet用户可以浏览WebGIS站点中的空间数据、制作专题图以及进行各种空间检索和空间分析,从而使GIS进入千家万户。 1 WebGIS的应用领域 国内的GIS首先是应用在科研部门和测绘与资源环境等领域,然后在城市规划等部门展开,现在已经扩展到农业、商业、土地管理、水利及交通运输等领域。 1.1 WebGIS在农业中的应用 在美国资源部和威斯康星州合作建立了以治理土壤侵蚀为主要目的的多用途、专用的土地GIS中,利用GIS在综合分析评价与模拟预测中的应用功能,不仅对地理空间数据进行编码、存储和提取,而且将对现实世界各个侧面的思维评价结果作用其上,得到综合分析评价结果。该系统通过收集耕地面积、湿地分布面积、季节性洪水覆盖面积、土壤类型、专题图件信息及卫星遥感数据等信息,建立了威斯康星地区的壤潜在的侵蚀模型,探讨了土壤恶化的机理,提出了合理的方案,达到土壤保护的目的;同时,利用它对土地进行长期的动态研究,避免土质的重心恶化。 1.2 WebGIS在商业中的应用 WebGIS在银行网点管理信息系统上的应用,是其商业应用的一个例子。基于WebGIS的银行网点管理信息系统,利用先进的电子地图,使每一网点在地图上可标识;同时运用传统的管理信息系统对网点进行管理,实现管理信息系统的可视化,并且通过Internet在网络上进行发布,使系统不仅具备原有的特点,同时还具备可视化特性及空间分析能力。 2 WebGIS的实现方法 2.1 WebGIS的结构体系 用户是利用浏览器,通过互联网来使用WebGIS 的,所以,WebGIS采用B/S(浏览器/服务器)的网络结构。这是一种3层的结构模式:以地理空间数据、业务数据、设施数据等组成的数据层;以GIS 信息服务平台和业务信息服务平台构成的业务逻辑层;以管理信息系统为平台的系统应用层。图1为系统总体结构框架图。 图1 系统总体结构图 2.2 WebGIS的网络结构 WebGIS的网络设计采用结构化设计方法,图2为某银行网点的网络结构。根据需要,图2中左上 收稿日期:2004-12-15 作者简介:黄宪明(1973-),男,江西定南人,助工,硕士,(E-mail) swordsman730329@https://www.360docs.net/doc/f28848260.html,。

基于ArcGIS+Server的WebGIS开发

基于ArcGISserver的webGIS开发 摘要:胁GISsemr是一个用来构建企业级webGIs的平台.首重研究了A稍IsServer的基本知识和系统架构后,并在.Net平台下结合实际进行了开发应用,同时指出了在开发中的若干注意事项。 关键词:ArcGlsSew%WebGIs;开发 l概述 we嘲s作为GIs新的发展方向,近几年来取得了巨大的发展,但无论是初期采用CGI技术、Plug-III技术,以及之后的采用JavaAp_pleI、Activex作为解决方案,在数据请求方面其始终遵循的是一种请求,响应模式【l】,用户体验差,严重阻碍了WebGIS的进一步发展。典型的解决方案是EsIu提供的AIcGISServ口。妣GIsserver支持GML3.0相关规范以及 OGC的wMS和wFs接口,通过其webAp-pHcati佣和webServiee构架,在8,s模式下,可在普通IE浏览器环境中获得类似ArcInfo的专业空间数据管理和GIs分析功能,使GIs应用系统在分布式环境下的数据共享和互操作 成为可能,还提供后台服务功能扩展机制。着重研究ArcGIsServer中的体系结构及在.№t平台下基于ArcGIsSer"r9.2的应用开发。 2ArcGIsSe竹er体系研究 2.1系统简介 AJeGIsserv日是一个发布企业级Gls应用程序的综合平台,提供了创建和配置GIS应用程序和服务的框架,并实现空问数据管理,空间可视化,空间分析的功能隅。 2.2关键概念 2.2.1服务器对象管理器CsoM)soM是运行在GISServer上的window“Ulli)【服务,管理分布于一个或多个容器服务器中的服务器对象或服务器对象组。当web应用通过LAN或wAN直接连接到GIsserver时,实际是建立—个与soM的连接,连接参数是运行SoM的服务器名称或Ⅲ地址。 2.2.2服务器对象容教Salc)SOC是一个运行一个或多个服务器对象的进程。SOC进程由s0M启动和终止。SOC进程运行于GISServef的容器服务器之上,每一个容器服务器可以宿主多个soc进程。 2.2.3服务器上下文 一个服务器上下文是运行一组服务器对象的服务器上的保留空间。可以将服务器上下文想象成一个进程,由运行服务器对象的服务器管理。服务器上下文提供了一种在相同空间和“进程”中创建对象的方法。并作为一个运行的服

ArcGISServer10.1和10.2安装和服务发布说明

文档编号: ArcGISServer 10.1/10.2 安装和服务发布说明 广州奥格智能科技有限公司 二〇一三年十二月十二六日

文档修订记录 *变化状态:C――创建,A——增加,M——修改,D——删除

目录 第1章数据库安装与配置............................................................................................. - 1 -1.1数据库安装 .. (2) 1.2创建表空间 (15) 1.2.1表空间创建过程 ............................................................................................................ - 15 -1.3创建用户 . (18) 1.3.1用户创建过程 ................................................................................................................ - 18 -第2章ARCGIS DESKTOP10安装 .................................................................................. - 21 -2.1安装准备 . (21) 2.1.1系统要求 ........................................................................................................................ - 21 -2.1.2其它 ................................................................................................................................ - 21 -2.2A RC GIS D ESKTOP10安装. (22) 2.2.1安装ArcGIS License Manager 10 .................................................................................... - 22 -2.2.2安装ArcGIS Desktop 10 .................................................................................................. - 24 -2.2.3破解 ................................................................................................................................ - 28 -2.3附录:SERVICE.TXT内容 ........................................................................ 错误!未定义书签。第3章ARCSDE 安装与配置.............................................................. 错误!未定义书签。 3.1.1ArcSDE安装过程................................................................................ 错误!未定义书签。第4章ARCGISSERVER10安装 ........................................................... 错误!未定义书签。 4.1安装A RC GISS ERVER 10 .......................................................................... 错误!未定义书签。 4.2配置GIS S ERVER P OST............................................................................ 错误!未定义书签。 4.3配置有户权限 ..................................................................................... 错误!未定义书签。 4.4登录测试 ............................................................................................. 错误!未定义书签。第5章ARCGISSERVER10服务发布.................................................... 错误!未定义书签。 5.1制作地图文档(MXD文件) .............................................................. 错误!未定义书签。

ARCGIS SERVER环境配置--安装记录

ARCGIS SERVER 环境配置步骤记录: 第一步:安装.net 3.5 sp1 和 IIS 打开服务器管理器, 在左侧导航栏选择 “功能” 条目。 然后点右侧的 “添加功能” , 选中 “.NET Framework 3.5.1 功能”,然后点“下一步”,
接着会有提示,要求同时安装服务器角色中的“WEB 服务器 IIS”, 下一步,然后按下图所示 进行勾选。
然后再下一步,直到出现:

第二步:安装 VS2012 默认安装, (全选) 。在网上找个激活码就可以了。 第三步:安装 ArcGIS Desktop 10.2 注意: (先把破解文件中“替换 License10.2 ”中的 service 中的 SERVER localhost ANY 27000”localhost”改为电脑名。当然,也可以不改。 )然后按照下面操作。
ArcGIS Desktop 10.2 完全破解安装教程(含 win7 32/64 位+下载地址+亲测可用)
时间: 2014 年 08 月 20 日 阅读: 155,308 分类: GIS 探秘 标签: ArcGIS, ArcGIS 安装破解
在之前的 ArcGIS 10.1 的破解安装教程中,得到了很多人的认可,也帮助了一些 人成功的安装上了 ArcGIS 的软件。这次换了台电脑需要重装 ArcGIS,这次我 选择的是 ArcGIS10.2,并且成功破解安装,过程与 10.1 的破解类似,这里做一 个总结,也希望能帮助到需要的人。 系统环境
win7 32/64 位操作系统
需要文件
(一)ArcGIS Desktop 10.2 原版安装光盘。 下载链接: https://www.360docs.net/doc/f28848260.html,/s/1gd04hMj

arcgisserver的四种开发方式

竟然好几个月没来更新博客了,真为自己羞愧,当然公司禁止了上网也是一大因素吧。希望自己在今后的工作中解决问题后,多记录下,或许回过头来,对自己是 一种帮助,对别人或许也有帮助。 在上一个项目中,经常要对SDE图层进行查询,修改,导入新要素等操作。由于时间紧迫,我全在后台用AE接口来完成, 项目中前台展示用的是ags for flex,目前9.3的版本没有提供编辑功能的相关接口,当然,总不能等到10.0新版本出来后才做吧。 查阅了无数资料,请教了同行们不少朋友,在https://www.360docs.net/doc/f28848260.html,后台用AE的还真没碰到,有朋友提及到用AE是可行的。当然不是最好的。 我就新建了一个有关GIS操作的类项目,完成了项目的要求,其中编辑的问题,版本的问题,出现无数故障。。。。。 这个项目不是太急,考虑到服务器端不一定安装Arcengine Runtime .决定采取arcgis server提供的相关接口来进行编辑,然后发布webservice,可实现跨平台调用, 就算在客户端FLEX里也能完成导入要素的功能。 实现的过程中出现一个错误,花费了不少时间才能完成。。

在给要素赋值时pFeature.shape=pGeo;总是提示不支持此类型("No support for this geometry type.") ?pGeo.GeometryType esriGeometryPolygon ?cFeatureClass.GeometryType esriGeometryPolygon 要素类的类型是esriGeometryPolygon,几何体的类型也是esriGeometryPolygon,分明属于同一类型,怎么就不能赋值咧, 给pGeo添加下监视,里面该有的都有,范围,面积,长度都有值,实在是伤心。。。。 给它赋属性数据时也能成功。 此时想到,是不是图形存在拓朴错误,比如点坐标不能闭合,有别的自相交等错误咧?写出如下代码后,发现还是无法赋值。 if (!pNewPolygon.IsClosed) pNewPolygon.Close(); ITopologicalOperator2 pTop = pNewPolygon as ITopologicalOperator2; pTop.Simplify();

ArcGIS Server集群部署-基于windows

ArcGIS Server 集群部署 1 几个重要的概念 1.1 服务、池化、实例 使用ArcGIS Server 发布一个地图服务,发布服务的同时会要求定义池化的类型、最小最大实例数。用户请求一个service 时,是和该service 的一个instance 打交道。service 有pooled (池化)和nonpooled (非池化)两种。 Nonpooled 创建最小个数实例,一个实例启动一个ArcSOC.exe 。 Pooled :low isolation 是指一个ArcSOC.exe 进程可以保有多个实例(也就是多线程);high isolation 一个实例占用一个进程。lowisolation 的好处是可以启动相对少的ArcSOC.exe 来维持同样数量的instance ,节约服务器的内存资源;但如果一个ArcSOC.exe 崩溃,那么里面的所有instance 都会被销毁。 1.2 SOM 、SOC ArcGISServer 是由一个SOM (Server Object Manager )和若干个SOC (Server ObjectContainer )机器组成。 SOM 会在机器里以ArcGISSOM 账户启动一个ArcSOM.exe 的进程,这个进程负责管理(启动和停止)其他SOC 进程(ArcSOC.exe ),SOC 进程虽然是由SOM 启动,但是以ArcGISSOC 账户运行的。ArcSOM.exe 启动时,会自动启动两个ArcSOC.exe ,一个用于记录AGS 的日志,一个用于清空特定的工作目录。这两个ArcSOC.exe 在任务管理器中可以根据所占用的内存数与其他ArcSOC.exe 区分开来,占用内存较少的两个ArcSOC.exe 便是由SOM 进程自动启动的,而其他的ArcSOC.exe 则是由具体service 启动的。 service pooled low isolation high isolation nonpooled

ArcGISServer配置方案

配置方案 中国(北京)有限公司

通信行业事业部 2011年1月 版权声明 本文档由中国(北京)有限通信技术支持部撰写,由中国(北京)有限公司对相关技术内容负责。未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播。 版本修订记录

目录 1部署方式错误!未指定书签。 1.1单机部署错误!未指定书签。 1.2单多集群部署错误!未指定书签。 1.3多多集群部署错误!未指定书签。 1.4应用案例错误!未指定书签。 2配置建议错误!未指定书签。 2.1建议架构错误!未指定书签。 2.2服务器配置错误!未指定书签。 2.3硬件配置错误!未指定书签。 3性能评估错误!未指定书签。 3.1数据库服务器性能评估错误!未指定书签。 3.2地图服务器()的性能评估错误!未指定书签。 1部署方式 具有可扩展的架构部署,有多种部署选择。大型项目部署需要多个服务器、服务对象管理器()和服务对象容器(),而小型

项目则可能需要将这些资源合并到一个或者两个计算机上。 的部署方式取决于用户项目需求,如果产品用于开发或测试目的或者用户并发数相对较少,则不需要进行大规模部署;如果将服务发布的海量用户社区,则需要考虑一些策略,如处理负载、单一故障点和安全性。 以下针对多机部署进行说明。 1.1单机部署 如果基于开发的系统,用于开发、测试或小用户量的应用,服务器不需要接受大量服务请求,可以把的和安装在同一台服务器中,通过简单的配置即可满足应用需求。 1.2单多集群部署 当用户请求服务并发量比较大时,需要多台服务器做集群部署以满足系统大量用户并发需求。在此部署应用中,由于服务对象管理器占用内存相对比较少,所以它可以和服务器共存在一台计算器上。如下图所示: 单多部署方案主要是将多个计算机集群用于执行用于的任务请求,并可以根据系统需要处理的用户并发数量(于用户的数量以及请求操作的频繁度相关)进行伸缩性扩展。

相关主题
相关文档
最新文档