ArcGis Server开发Web GIS新手体验Word文档格式.docx

上传人:b****5 文档编号:15840981 上传时间:2022-11-16 格式:DOCX 页数:13 大小:79.42KB
下载 相关 举报
ArcGis Server开发Web GIS新手体验Word文档格式.docx_第1页
第1页 / 共13页
ArcGis Server开发Web GIS新手体验Word文档格式.docx_第2页
第2页 / 共13页
ArcGis Server开发Web GIS新手体验Word文档格式.docx_第3页
第3页 / 共13页
ArcGis Server开发Web GIS新手体验Word文档格式.docx_第4页
第4页 / 共13页
ArcGis Server开发Web GIS新手体验Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ArcGis Server开发Web GIS新手体验Word文档格式.docx

《ArcGis Server开发Web GIS新手体验Word文档格式.docx》由会员分享,可在线阅读,更多相关《ArcGis Server开发Web GIS新手体验Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

ArcGis Server开发Web GIS新手体验Word文档格式.docx

  好,打开Default.aspx文件,发现网页包含一个Map组件,一个Toolbar组件,一个TOC组件,一个OverviewMap组件等等。

看来与C/S开发模式下很像嘛,爽啊。

其中Map组件和OverviewMap组件有两个必填属性:

Host和ServerObject,就分别对应着我们在ArcCatelog中添加的的Server和ServerObject,输入它。

然后设置TOC组件和Toolbar组件的Buddy属性,OK,大功告成!

  运行!

咦,发生错误,定睛一看,原来是访问拒绝,这是怎么回事呢?

记得以前看到一篇文章,说在A中使用COM组件,经常由于权限原因,产生访问拒绝,而ArcGISServer本身就是对ArcObjects这些COM组件的再封装,看来就是这么回事了。

找出这篇文章来,原来要在Web.config中加入一行就可以了:

<

identityimpersonate="

true"

userName="

Administrator"

password="

123456"

/>

  再运行,哇塞,酷毙了,一个漂亮的WebGIS展现在眼前。

可以浏览,查询,图层管理,鹰眼导航,还有指北针...

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

  一行代码都不用写,爽。

可是又很失落,心里没有底,这个WebGIS究竟是怎样实现的呢?

我们知道,.netadf提供的map组件、toc组件等都是标准的组件。

这些组件在运行时,会生成相应的html代码,将自己展现出来。

一般还会通过ViewState来保存状态,并生成_doPostBack(javascript)函数,在必要的时候,通过javascript来调用该函数,将客户端数据返回来服务器端,从而激发服务器的响应。

总之,我们通过分析生成的html页面,应该可以大致窥见组件是怎么运行的。

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

  

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

ID函数中有两行:

variddiv=document.getElementById("

MapDiv_Map1"

);

if(iddiv!

=null)iddiv.onmousedown=MapIdClick;

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

  为什么要放在这里呢,为什么单单只有点击查询的javascript要在这里定义呢,其它如放大、缩小、平移为什么不在这里处理?

这是因为Toolbar组件对放大、缩小、平移等提供了默认的处理方式,而identify没有,这样可以更方便进行扩展。

在后面的代码中有一行<

esri:

ToolToolTip="

Identify"

DefaultImage="

Images/identify.gif"

ClientToolAction="

ID()"

Name="

...>

,可以看到,这个调用是模板为我们生成的(并且这个调用是可以修改的)。

待会我们在进一步分析中可以看到这一点。

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

 

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

  <

scriptlanguage="

Javascript"

src="

/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript/common.js"

>

<

/script>

/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript/map_functions.js"

/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript/overview_functions.js"

/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript/toolbar_functions.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/文件夹下可以找到这些文件。

原来,为了重用的方便,在安装ArcgisServer时,安装程序就已经建立了一个虚拟目录,用于提供这些共享的资源。

在这个文件夹上一级目录中,还可以看到images和treeimages两个子目录,以及treeview.htc文件。

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

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

tvns:

treenodeExpanded="

False"

DefaultStyle="

color:

silver;

"

ImageUrl="

/aspnet_client/esri_arcgis_server_webcontrols/9_1/images/outscale.gif"

CheckBox="

道路注记<

True"

ESRI.Web.Controls.MIMEImage.aspx?

ImgID=Default.aspx_Toc1_0_1_0_0&

NoCache=true"

/tvns:

treenode>

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

ESRI.Web.Controls.MIMEImage.aspx..."

,这个ESRI.Web.Controls.MIMEImage.aspx是什么东东,是一个网页吗?

在机器里找一下,发现根本就不存在这个网页,那它又是何方神圣,竟然可以作为一个图片的地址?

我们先往下看看。

 5、<

divid='

OverviewMap1backdrop'

style='

position:

absolute;

left:

16px;

top:

400px;

width:

204px;

height:

124px;

Z-INDEX:

104;

border-color:

LightSteelBlue;

border-width:

3px;

border-style:

Solid;

overflow:

hidden;

'

tablecellspacing=0cellpadding=0style='

width:

198px;

118px;

tr>

tdid=OVCell_OverviewMap1>

/td>

/tr>

/table>

/div>

  是鹰眼导航图的代码。

怎么只有一个空的Div层和一个空的表格呢?

唉,比较简单,我懒得分析了,同志们自己去找吧~

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

tdnowrapwidth="

29"

height="

32"

align='

Center'

id="

Toolbar1ZoomIn"

onMouseDown="

ToolbarMouseDown('

Toolbar1'

'

ZoomIn'

Tool'

event);

onMouseOver="

ToolbarMouseOver('

onMouseOut="

ToolbarMouseOut('

style="

background-color:

font-family:

Arial;

font-size:

Smaller;

font-weight:

bold;

>

imgid="

Toolbar1ZoomInImage"

alt="

ZoomIn"

Images/zoominD.gif"

align="

absMiddle"

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

JavaScript"

cs_dynamic_Map1"

Maps[mapCounter]=newMapCreat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1