如何打开arcgismap缓存文件怎么打开

扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ArcGIS 高级地图缓存技术
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口& & 移动GIS中,通常将数据分为两大类:basemap layer和operational layer。前者是指漫游或导航时起参考作用的图层,这些图层内容通常不会变化,只起到视觉辅助作用,称为底图图层;后者是指存储GIS数据的图层,比如可通过这些图层来提供属性/空间查询操作,或者对其内容进行编辑,然后与服务器端进行同步,称为业务图层。
  目前ArcGIS移动产品有5种,基于Windows Mobile平台的ArcPad和ArcGIS Mobile,这两个产品已经很成熟了,都有各自的离线缓存格式,其中ArcGIS Mobile从10版本开始,可以直接读取ArcGIS Server缓存地图服务的切片文件做为basemap layer,支持exploded和compact两种格式。
  相对于以上两个老牌移动产品,三个刚出道的小弟ArcGIS for iOS,ArcGIS for Android和ArcGIS for Windows Phone就走了不同路线:依赖于ArcGIS Server的REST服务。因此几乎所有操作,包括显示地图,都需要用到ArcGIS Server发布的各种服务。这三个产品的离线功能将来肯定是会有的,但具体的时间表还无法确定。
  针对ArcGIS for iOS/Android/Windows Phone,本文提出3种可行的离线底图(basemap layer)的解决方案,供各位参考。以ArcGIS for Windows Phone为例。
1、ArcGIS Server地图服务的Exploded格式缓存文件
  ArcGIS API for Windows Phone中,提供了用来加载ArcGIS
Server发布的缓存地图服务,它的原理是Map控件计算好需要加载的切片的row,col,level参数,利用ArcGISTiledMapServiceLayer里的方法提供如何获得指定参数的切片文件,最后拼接成完整的地图。
  因此我们可以通过继承ArcGISTiledMapServiceLayer的父类,或,来实现自己的自定义图层,比如用它来加载,等各种地图。加载这些在线地图都是通过重写GetTileUrl()方法来实现的。
  对于已经存放在硬盘上的缓存文件,该如何加载呢?这几个图层还有一个方法,。这个方法有一个onComplete
action,可以传入ImageSource类型的参数,它比GetTileUrl来的更直接。其实GetTileSource方法中调用了GetTileUrl方法的结果(一个获得tile的url字符串),利用这个字符串向服务器端发送请求,请求回来的结果就是切片图片的二进制流,再将这个二进制流形成ImageSource,通过onComplete方法返回。
  所以我们可以抛开GetTileUrl,直接重写GetTileSource方法,来根据row,col,level参数,读取地图服务的缓存文件。首先将Exploded格式的地图服务缓存文件拷贝到手机中:
  包含conf.cdi(ArcGIS Server 10版本中才有,记录了缓存的全图范围)和conf.xml文件的好处是,我们可以在代码中读取这两个文件来动态生成我们的,以完成图层初始化的工作。从配置文件中读取参数后,就可以重写GetTileSource方法了。部分代码如下:
1:&protected&override&void&GetTileSource(int&level,&int&row,&int&col,
Action&System.Windows.Media.ImageSource& onComplete)
3:&string&f =&string.E
4:&if&(_cacheTileFormat.ToLower().Contains(&png&))
5:&f =&&.png&;
6:&else&if&(_cacheTileFormat.ToLower().Contains(&jpeg&)
|| _cacheTileFormat.ToLower().Contains(&jpg&))
7:&f =&&.jpg&;
9:&throw&new&Exception(&切片格式不明:&&+
_cacheTileFormat);
10:&#region&Exploded读取
11:&if&(_storageFormat == StorageFormat.esriMapCacheStorageModeExploded)
13:&string&baseUrl = _// &/WP_LocalCacheRcomponent/Assets/usa_exploded/&
14:&baseUrl +=&@&/_alllayers&;
15:&string&l =&&L&;
16:&l = level.ToString().PadLeft(2,&'0');
17:&string&r =&&R&;
18:&r = String.Format(&{0:X}&, row).PadLeft(8,&'0');
19:&string&c =&&C&;
20:&c = String.Format(&{0:X}&, col).PadLeft(8,&'0');
21:&string&str = baseUrl
22:&+&@&/L&&+ l
23:&+&@&/R&&+ r
24:&+&@&/C&&+ c +
25:&BitmapImage img =&new&BitmapImage(new&Uri(str,UriKind.RelativeOrAbsolute))
27:&CreateOptions = BitmapCreateOptions.DelayCreation
29:&img.ImageFailed += (s, a) =&
31:&string&uri = _path +&&/missing&&+
_tileRows.ToString() +
32:&BitmapImage image =&new&BitmapImage(new&Uri(uri,
UriKind.RelativeOrAbsolute))
34:&CreateOptions = BitmapCreateOptions.DelayCreation
36:&onComplete(image);
37:&return;
39:&onComplete(img);
41:&#endregion
  当指定的切片文件不存在(也许还未创建)时,可以加载事先准备好的missing图片来替换。
2、ArcGIS Server地图服务的Compact格式缓存文件
  这是ArcGIS Server 10推出的新的缓存格式,缓存图片都保存在.bundle文件中,一个bundle目前可存储128*128张切片。切片文件更少,主要目的是为了迁移方便。文档中并未给出读取这种格式文件的方法,不过,这里就借鉴了他的方法。还是先将缓存文件拷贝到手机中:
  利用conf.cdi和conf.xml获得tiling scheme,之后重写GetTileSource方法。具体思路牛魔王文中已经给出,感兴趣的同学还是看原文,学习牛牛的思路比较好。
  下面是读取两种缓存文件的效果:
3、第三方离线地图文件
  除了ArcGIS Server的缓存切片之外,我们还可以读取第三方的离线地图文件来做为我们的底图。比如以为例,我现在已经有了很多自己下载好的离线地图,如果能在ArcGIS移动客户端使用起步两全其美?其实在目前的离线导航软件中,很多都用sqlite数据库做为地图存储格式,因为它应用广泛,轻巧,紧凑,Android,iOS,Symbian等系统对它都有原生的支持。Mobile
Atlas Creator中,RMaps和OruxMaps都用Sqlite保存离线地图。这里以应用较为广泛的RMaps格式为例,进行试验。
创建好的RMaps地图文件如下:
  我们利用FireFox里的插件先来查看一下数据库的内容:
  可以看出,我们所需的内容都保存在tiles这张表中,而x,y,z三个参数与我们所需的row,col,level很像。经过试验(保存一个全球范围的地图),很快验证出level=17-z。
  参数有了,要如何读取切片呢?对于Sqlite,虽然目前Windows Phone还没有提供原生的支持,不过codeplex上已经有不少项目都提供了解决办法。我选择来读取RMaps的地图文件。下面是RMaps离线地图(Bing Maps)和ArcGIS Online上StreetMap叠加的效果:
  需要说明的是,不论是RMaps还是OruxMaps,都没有在数据库中保存tiling scheme的相关参数,所以我们不能为图层提供诸如FullExtent之类的参数。但这丝毫不影响我们的使用,我们可以为Map控件显示指定Extent,这样就可以直接显示我们的离线地图了。除了自己的地图数据之外,基本上所有数据源都使用一种空间参考,102100或者3857,你懂的。
  这样即使我们没有ArcGIS Server软件,也能制作自己的底图了。。
  相对于RMaps之类的离线地图软件,ArcGIS的移动产品的优势除了不仅能够任意叠加地图数据,还有GraphicsLayer和服务器端强大的功能支持,在配合Windows Phone本身的SDK功能,你也可以做出一个功能全面的导航软件来。
  关于离线地图文件的打包。1、在Silverlight程序中,Build Action的选择决定了文件最后的保存位置,比如你选择Resource,则会嵌入到工程的dll中,如果选择Content,则会保存在dll之外,xap文件之内。以上三种解决方案里,我们可以选择任意的Build Action,这样地图都会通过xap部署到手机里;如果有需要,我们还可以。2、对于Exploded格式的缓存,WP的编程建议中提到,。3、对于Exploded格式的缓存,如果为了拷贝方便,我们也可以将其打包为.zip文件,部署到手机中,在程序加载的时候再将其解压缩来读取。
  本文以ArcGIS for Windows Phone为例,讨论了3种离线底图的解决方案,文中所涉及的所有功能,和ArcGIS for Android同样适用。
转自:http://blog.chinaunix.net/uid--id-3023158.html
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3019次
排名:千里之外文章编号: 33686
软件: ArcGIS&Server&9.2,&9.3,&9.3.1
操作系统: Windows 2000, XP, 2003 Server
这篇文章描述了如何将map或globe的缓存移动到新服务器的方法。
下面是确保在Web Mapping Application中缓存可以访问的检查列表.1)确保已经为新的服务器目录(新缓存目录)赋予ArcGISSOC账户适当的权限?&在地图缓存所在的新服务器上创建本地ArcGISSOC账户,确保与原有ArcGIS
Server缓存所在服务器的ArcGISSOC用户名和密码相同。?&为缓存目录授予ArcGISSOC账户&读&访问权限。共享目录,并为ArcGISSOC账户授予&读/写&权限。提示:关于为ArcGIS
Server 目录设置权限的更多信息,可以查询帮助文档《配置多服务器部署》,Appendix B: 目录框图。2)&改变IIS
arcgiscache目录到新的位置,并且设置连接用户和密码&&&& &1、&在IIS控制台,展开SOM服务器名&Web sites &
Default Web site。&&&&& 2、&右击arcgiscache 虚拟目录并选择properties。&&&&&
3、&在Virtual Directory tab,选择使用&A Share located on another computer&选项。&&&&&
4、&在Network Directory,输入路径\\{Server}\{share}.&&&&&
5、&单击Connect按钮,输入信任用户,可以共享访问缓存目录。接受其它的设置并单击OK.设置可以参见以下视图:3)添加缓存目录到ArcGIS Server
Properties。&&&&& 1、&在ArcCatalog中,展开GIS Server 的目录。&&&&&
2、&右键Server的管理连接,并选择Server Properties。&&&&& 3、&单击Directories tab.&&&&&
4、&展开Directory Type下拉菜单,选择Cache Directory.&&&&& 5、&单击Add 按钮。&&&&&
6、&输入缓存目录路径,格式\\{server}\\{share}&&&&& 7、&输入虚拟目录路径,格式:http://{ArcGIS Server
Host} /arcgiscache.&&&&& 8、&如果愿意,也可以添加描述。&&&&& 9、&单击OK.&&&&&
10、&新的缓存目录被添加到列表。4)在服务属性中设置地图缓存目录&&&&&
1、&在地图服务运行的情况下,在Server管理连接中右击地图服务,并选择Service Properties。&&&&& 2、&单击Caching
tab.&&&&& 3、&在Server Cache Directory下拉菜单中选择新缓存目录。&&&&&
4、&单击Apply。&&&&& 5、&对话框刷新后,通过检测各种属性验证缓存已经被适当读取。&&&&& 6、&单击OK,确认改变。
随笔 - 329
评论 - 110电话咨询:010-
邮件咨询:
电话咨询:400-819-2881
邮件咨询:
当前位置>>
2015Esri杯中国大学生GIS软件开发竞赛数据支持单位:
数据提供单位一:北京捷泰科技有限公司,提供全国底图数据(),使用办法如下介绍:
开发竞赛中,常有同学对获取基础底图发愁,下面我们就详细介绍一下在Web开发中如何调用中的基础地图服务。我们将重点介绍、以及三种开发模式下的调用办法。
ArcGIS API for JavaScript调用方法
ArcGIS API for JavaScript是Esri 2008 年推出的一套基于JavaScript 语言的编程接口,其为创建WebGIS应用提供了向Web应用程序中嵌入轻量级制图功能的解决方案。开发人员在客户端可以轻松地利用JavaScript API来调用ArcGIS Server所提供的服务,实现地图应用和地理分析功能。
ArcGIS API for JavaScript由3部分组成,其分别为 ArcGIS API for JavaScript、Extension for the Google Maps API、Extension for Bing Maps。 ArcGIS API for JavaScript 采用后端 REST API,可以通过无状态方式检索服务器信息。ArcGIS API for JavaScript 基于Dojo框架,另外两个API分别构建于 Google Maps API 和 微软 Bing Maps API之上,在下面提到的API的都是 ArcGIS API for JavaScript 。
使用ArcGIS API for JavaScript可以实现如下功能:
1)显示用户数据的交互式地图
2)在服务器上运行GIS模型并显示结果
3)在自己GIS数据中搜索功能或属性,并显示结果
4)查找地址并显示结果
进行ArcGIS API for JavaScript的应用开发,需要安装开发工具:Aptana Studio、Notepad++和Microsoft Visual Web Developer等工具中的一种即可。在本例中我们采用Notepad++为开发工具。
Aptana Studio下载地址:
NotePad++下载地址:
Visual Web Developer下载地址:
在线API 地址:/jsapi/arcgis/3.3/,其中后面的数字为 api 版本号。在这里引用的是最新版本 3.3版API。
离线API:Esri 提供一张离线API光盘,其中包括ArcGIS API for JavaScript 和开发帮助,如需要光盘请联系您购买ArcGIS软件的销售。
第一个 ArcGIS API for JavaScript 程序
我们现在来创建一个ArcGIS API JavaScript应用,加载ArcGIS Online中国地图。打开Notepad++,创建文件名为&创建第一个应用.html&的文件,其中文件类型为HTML格式,如图1 所示。
图1 Notepad++下创建HTML文件
编写程序代码,整个API应用程序代码如下:
1 &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01//EN& &http://www.w3.org/TR/html4/strict.dtd&&
3 &&&&&&&& &head&
4 &&&&&&&& &title&创建第一个应用&/title&
5 &&&&&&&&&&&&&&&&&& &meta http-equiv=&Content-Type& content=&text/ charset=utf-8&/&
6 &&&&&&&&&&&&&&&&&& &meta http-equiv=&X-UA-Compatible& content=&IE=7,IE=9& /&
7 &&&&&&&&&&&&&&&&&& &link href=&/jsapi/arcgis/3.3/js/dojo/dijit/themes/claro/claro.css& rel=&stylesheet& type=&text/css& &
8 &&&&&&&&&&&&&&&&&& &link rel=&stylesheet& type=&text/css& href=&/jsapi/arcgis/3.3/js/dojo/dijit/themes/tundra/tundra.css&&
9 &&&&&&&&&&&&&&&&&& &link rel=&stylesheet& type=&text/css&
10 &&&&&&&&&&&&&&&&&& href=&/jsapi/arcgis/3.3/js/esri/css/esri.css& /&
11 &&&&&&&&&&&&&&&&&&
12 &&&&&&&&&&&&&&&&&& &script type=&text/javascript&
13 &&&&&&&&&&&&&&&&&& src=&/jsapi/arcgis/3.3/&&&/script&
14 &&&&&&&&&&&&&&&&&&
15 &&&&&&&&&&&&&&&&&& &script type=&text/javascript& language=&Javascript&&
16 &&&&&&&& &&&&&&& &&&&dojo.require(&esri.map&);
17 &&&&&&&&&&&&&&&&&&&&&&&&&&&
18 &&&&&&&& &&&&&&& &&&&function init() {&&&&
19 &&&&&&&& &&&&&&& &&&&&&&&&&&& map = new esri.Map(&mapDiv&, {&&&&&&&&
20 &&&&&&&& &&&&&&& &&&&&&&&&&&&&&&&&&&&&& center: [-56.049, 38.485],&&&&&&&&
21 &&&&&&&& &&&&&&& &&&&&&&&&&&&&&&&&&&&&& zoom: 3,&&&&&&&&
22 &&&&&&&& &&&&&&& &&&&&&&&&&&&&&&&&&&&&& basemap: &streets&&&&&&&
23 &&&&&&&& &&&&&&& &&&&&&&&&&&&&&&&&&&&&& });
24 &&&&&&&& &&&&&&& &&&&&&&&&&&& //create and add new layer
25 &&&&&&&&&&&&&&&&&& &&&&&&&&var layer = new esri.layers.ArcGISTiledMapServiceLayer(&/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer&);
26 &&&&&&&&&&&&&&&&&& &&&&&&&&map.addLayer(layer);
27 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&
28 &&&&&&&&&&&&&&&&&&&&&&&&&&& dojo.addOnLoad(init);
29 &&&&&&&&&&&&&&&&&& &/script&
30 &&&&&&&& &/head&
31 &&&&&&& &body&
32 &&&&&&&&&&&&&&&&&& &&div id=&mapDiv& class=&tundra& style=&width:900 height:600 border:1px solid #000;&&&/div&
33 &&&&&&& &/body&
34 &/html&
下面将详细介绍这段代码的组成:
a)&&&&&&&& 页面样式以及api脚本的引用
使用ArcGIS JavaScript API 首先需要在HTML Head中引用两个外部文件:css样式文件与JavaScript脚本文件。
&link rel=&stylesheet& type=&text/css& href=&/jsapi/arcgis/3.3/js/dojo/dijit/themes/tundra/tundra.css&&
&script type=&text/javascript& src=& /jsapi/arcgis/3.3/ &&&/script&
b)&&&&&&&& 脚本的编写
完成上面的API引用后,就可以在脚本标签中添加地图应用,因为ArcGIS JavaScript API是建立在Dojo框架之上,所以需要用到一些dojo的方法,如果想获得更多的dojo信息请访问dojo 官方网站。
首先调用所需要的包。
dojo.require(&esri.map&);
声明两个新建esri.Map和esri.layers.ArcGISTiledMapServiceLayer类返回值的全局变量。
初始化方法,在这里我们通过新建一个 esri.Map类来创建一个地图,其中 mapDiv是要把这个地图放入的容器,也就是 HTML页面中的DIV元素的名称 。
map = new esri.Map(&mapDiv&);
layer是ArcGIS Online China地图服务,因为这个服务是做了缓存的服务,所以通过esri.layers.ArcGISTiledMapServiceLayer把这个服务构造为一个图层,加载到先前创建的地图中。
layer = new esri.layers.ArcGISTiledMapServiceLayer ( & /ArcGIS/rest/services/ChinaOnlineCommunity/MapServer & );
把构建好的layer 作为一个图层加载到myMap中 。
myMap.addLayer(layer);
浏览器中内容显示格式设置
在HTML页面创建DIV元素,以容纳地图控件的显示,这个DIV名称为mapDiv,样式为最开始在HTML Head 中引用的css 的tundra类,自身宽900像素,高600像素,带黑色1像素边框 。
&div id=&mapDiv& class=&tundra& style=&width:900 height:600 border:1px solid #000;&&&/div&
当程序编写完成后,左击NotePad++工具菜单栏中&运行&-&&Launch in IE&,如图2所示。
图2 运行程序
接着将以IE浏览器打开该API连接,效果图如图3所示,我们此时完成了一个ArcGIS API for JavaScript应用。
图3 ArcGIS API for JavaScript应用实例效果图
ArcGIS API for Flex调用方法
ArcGIS API for Flex是Esri 2008年新推出的WebGIS客户端开发包,用于富互联网应用程序RIA(Rich Internet Applications)的开发,为ArcGIS Server 提供了一套全新的开发方式,其优点是运行速度快,为用户提供优秀的用户体验。
使用ArcGIS API for Flex可以实现如下功能:
1)显示一副可与自己的数据交互的地图
2)在服务器上执行地理信息系统模型并显示结果
3)基于ArcGIS Online的地图服务显示自己的业务数据
4)根据属性或者位置查找数据并显示结果
5)查找地址并显示结果
6)可编辑你的数据(如果发布为要素服务)
7) 创建Mushups应用
开发ArcGIS API for Flex的程序需要flex环境的支持。
首先我们在Esri官网下载ArcGIS API for Flex压缩包并解压,然后下载Flex Builder并安装,此时开发环境搭建完成。相关软件下载如下。
Flex Builder开发环境,需要从Adobe 官方网站下载试用版:
ArcGIS API for Flex 下载地址:
下载ArcGIS API for Flex ,需要注册一个Esri Global 账户,现在最新版本为v3.1。
第一个ArcGIS API for Flex程序
打开Flex Builder,点击菜单栏&开始&-&&新建&-&&flex项目&,创建一个Flex 工程(名称Demo),如图1所示,点击&完成&则完成工程创建。
图1 创建Flex工程
右键单击工程名,选择属性,在属性对话框中选择&Flex 构建路径&,接着选择&库路径&选项卡,单击&添加 SWC&,把下载的ArcGIS API for Flex(相对路径为解压文件夹下\ArcGIS_Flex\libs中的swc文件)添加进去,如图2所示,点击&确认&后可以进行开发。
图2开发环境中添加ArcGIS API for Flex配置文件
在Demo.mxml文件中进行api开发的代码编写,具体代码如下:
1 &?xml version=&1.0& encoding=&utf-8&?&
2 &s:Application &xmlns:fx=&/mxml/2009&
3 &&&&&&&&&&&&&&&&&&&&&&&&&&& &&xmlns:s=&library:///flex/spark&
4 &&&&&&&&&&&&&&&&&&&&&&&&&&& &&xmlns:esri=&/2008/ags&
5 &&&&&&&&&&&&&&&&&&&&&&&&&&& &&xmlns:mx=&library:///flex/mx& minWidth=&955& minHeight=&600&&
6 &&&&&&&& &esri:Map&
7 &&&&&&&&&&&&&&&&&& &esri:ArcGISTiledMapServiceLayer
8 &&&&&&&&&&&&&&&&&&&&&&&&&&& url=&/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer& /&
9 &&&&&&&& &/esri:Map&
10 &/s:Application&
下面将详细介绍这段代码的组成:
下面代码中,xmlns:mx、xmlns:s和xmlns:esri获取url资源。
xmlns:fx=&/mxml/2009
xmlns:s=&library:///flex/spark
xmlns:esri = /2008/ags
使用ArcGIS API for Flex创建一个地图,在mxml文件中直接使用标签。其中标签定义一个map对象。map创建好之后,使用layer把需要访问的数据加载到map上,在标签下面创建子标签。
标签定义一个layer对象,其中最重要的属性是url,url定义了访问数据的地址,该代码中url指向一个ArcGIS Online提供的TiledMap服务。如下:
&esri:ArcGISTiledMapServiceLayer url = &http:// /ArcGIS/rest/services/ChinaOnlineCommunity/MapServer &/&
当程序编写完成后,运行该工程,效果如图3所示:
图3 ArcGIS API for Flex 应用实例效果图
ArcGIS Server SilverLight/WPF API调用方法
SilverLight是MicroSoft推出的跨浏览器、跨平台的解决方案。它是通过小巧的浏览器插件将视频、交互性内容以及其他应用融合在一起。ArcGIS API for Silverlight可以把ArcGIS Server中基于地理信息系统的Web services与其他网页内容关联在一起,快速生动地展现那些可以部署在网络中的制图程序。
使用ArcGIS API for Silverlight可以实现如下功能:
1)用自己数据的创建一个地图
2)在ArcGIS Online或者Bing Maps basemap中显示数据
3)在地图中交互式的添加图形和标记
4)根据属性或者位置在地理信息系统(GIS)中查找数据,并显示结果
5)通过ArcGIS服务器运行一个GIS模型,并显示结果
6) 查找地址并显示结果
7)计算路径,并图形化显示结果
8)编辑几何特性和属性
9)改变渲染栅格数据内容
10)创建Mashups(从多个网络源收集信息并相结合)
进行ArcGIS API for silverlight的应用开发,需要安装Visual Studio 2010(vs2010)或者Visual Web Developer 2010 Express (vwd2010),由于vs2010安装文件比较大,用户可以选择安装vwd2010进行开发。同时为能够在浏览器显示该Rich Internet Applications(RIA),需要安装Microsoft Silverlight 4 Tools for Visual Studio 2010。
Visual Studio 2010下载地址:
Visual Web Developer 2010 Express下载地址:
Microsoft Silverlight 4 Tools for Visual Studio 2010下载地址:
首先安装vs2010或者vwd2010,然后安装Silverlight Tools for Visual Studio 2010,开发环境就搭建好了。需要注意的是,在安装时必须选择相对应的软件版本(即使用vs2010和vwd2010要求Silverlight Tools的版本为4.0及以上,并且要求它们是相同语言的版本)。在进行开发前,我们需要下载ArcGIS API for Microsoft Silverlight/WPF并安装;下载时需要注册一个Esri Global 账户。
最新版的ArcGIS API for Microsoft SilverlightV3.0版本下载地址:
第一个 ArcGIS API for Silverlight/WPF 程序
打开vs2010,点击菜单栏中&文件&-&&新建项目&,选择&Visual C#&模板中的&Silverlight&模板并选择&Silverlight应用程序&项,开始新建一个Silverlight工程,命名为&ags_api_for_silverlight&,如图1所示,并点击&确定&进入下一步。
图1 创建Silverlight工程
在&新Web项目类型&栏中选择&ASP.NET Web应用程序项目&,在&Silverlight版本&中选择&Silverlight 4&,如图2所示,并点击&确定&完成项目创建。
图2 项目相关属性配置
打开&解决方案资源管理器&,右击该工程&引用&项,选择&添加引用&,在&添加应用&项中,在&.NET&栏点击&ESRI.ArcGIS.Clinet&,并点击确定,如图3所示。此时完成了工程创建和环境配置
图3 添加ESRI.ArcGIS.Client组件
在MainPage.xaml文件中进行代码编写,所有代码如下:
1 &UserControl x:Class=&demo.MainPage&
2 &&&&xmlns=&/winfx/2006/xaml/presentation&
3 &&&&xmlns:x=&/winfx/2006/xaml&
4 &&&&xmlns:d=&/expression/blend/2008&
5 &&&&xmlns:esri=&clr-namespace:ESRI.ArcGIS.Cassembly=ESRI.ArcGIS.Client&
6 &&&&xmlns:mc=&http://schemas.openxmlformats.org/markup-compatibility/2006&
7 &&&&mc:Ignorable=&d&
8 &&&&d:DesignHeight=&300& d:DesignWidth=&400&&
10 &&&&&Grid x:Name=&LayoutRoot& Background=&White&&
11 &&&&&&&&&esri:Map x:Name=&MyMap& Extent=&6..&&
12 &&&&&&&&&&&&&esri:ArcGISTiledMapServiceLayer& Url=&/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer&/&
13 &&&&&&&&&/esri:Map&
14 &&&&&/Grid&
15 &/UserControl&
下面将详细介绍这段代码的组成:
下面五段代码表示获取url资源
xmlns=&/winfx/2006/xaml/presentation&
xmlns:mc=&http://schemas.openxmlformats.org/markup-compatibility/2006&
xmlns:esri=&clr-namespace:ESRI.ArcGIS.Cassembly=ESRI.ArcGIS.Client&
下面这段代码中的标签定义了一个name为MyMap的map对象,然后在该标签下创建子标签,该子标签定义了一个layer对象,通过layer把要url上数据加载到map上。其中Url= /ArcGIS/rest/services/ChinaOnlineCommunity/MapServer 定义了访问数据的地址,指向一个ArcGIS Online提供的TiledMap服务。
&esri:Map x:Name=&MyMap& Extent=&6..&&&esri:ArcGISTiledMapServiceLayer& Url=& /ArcGIS/rest/services/ChinaOnlineCommunity/MapServer &/&&/esri:Map&
当程序完成后,选择菜单栏中&生成&-&&生成解决方案&,成功生成后,按&Ctrl+F5&组合键进行执行,在IE浏览器显示地图,效果图如图4所示。
图4 ArcGIS API for Silverlight应用实例效果图

我要回帖

更多关于 arcgismap教程 的文章

 

随机推荐