ArcGISServer开发指南Esri中国(北京)有限公司朱政简介•从开发者的角度来解读ArcGISServer提供的各种各样的开发方式和机会:-应用-服务ArcGISServerArcGISOnlineWebAPIs开发者的机会无所不在DesktopWebApp(JavaScript)WebApp(Flex)WebApp(Sliverlight)iPhoneWindowsMobile3rdPartyApplications?ServersClientsJavaScriptAPIFlexAPISliverlightAPIiOSAPIWinMobileAPIRESTSOAPOGCGDBServicesRESTAPIAndroidAPIApplicationsServices开发者有很多的机会和选择这个讲座将和你一起看看这些选择•理解什么时候选择什么•开发者大会上还有其他哪些你感兴趣的讲座―TheDesktopEffect‖说不不要尝试创建Web上的ArcMapApplications各种应用类型Goal:使用ArcGISServerservices创建良好的用户体验的应用DesktopsWebBrowsersMobileDevices主要开发方式WebADFsWebMappingAPIsWebADFs•从ArcGISServer9.0开始就有•到ArcGISServer10.1是最后一个版本WebAPIs•从ArcGISServer9.2开始有第一个版本•以后会不断加强成为主流开发方式ArcGISServer10.0ArcGISServer架构将发生变化•纯提供GIS服务的Server•更简单,易维护,更快,易扩展GISServices各种客户端Http应用趋势的变化ArcGISServerADF应用浏览器ArcGISServer浏览器针对即将到来的变化?如何应对?•放弃ADF,采用WebAPIs,那功能怎么办?•典型场景:-----打印?-----改变地图符号?-----编辑?-----复杂逻辑?•采用SOEs把ArcGISServerManager上的应用移植到各种Viewers更快,更好看,更多功能ArcGISServerManagerAppArcGIS.comViewerArcGISExplorerOnlineArcGISViewers(SilverlightorFlex)打印高质量的地图(类似ArcMap)•创建可以打印的文档(比如PDF)•需要打印到正确的比例尺•可以使用到ArcMaplayouts•而且要打大图•显示webmap上的所有内容-Services,graphics,selections•在10.0:写ArcObjects或者Python代码•在10.1:有新方法10.1让这个变得简单和高效介绍‗Exportwebmap‘service(10.1新的)•一个现成的服务•Webmap-in(json),mapout(PDF,EPS,PNG,JPEG…)•预配置你自己的ArcMaplayoutsMapServiceImageServiceFeatureServiceGraphicsExtentTitle…myMap.exportWebMap()JSONExportWebMapServiceOutputMapLayout1Layout2介绍ArcPy.Mapping(10.1中将增强)•Pythonscriptingmodule:和GPServer一起工作•主要为了mapdocument和layer的操作和输出•在server上获得maplayouts•In10:-仅限于webmapprinting-如果你不需要客户端graphics-需要比较多的代码(当然已经比ArcObjects简单多了)•In10.1:-在处理graphics和webmapcontents做了增强地图自动化作为一个WebService打印高质量的地图(类似ArcMap)•熟悉ArcPy.Mapping-10.1讲继续增强-对于自定义打印任务是最合适的方式-强大的脚本环境t•了解即将到来的10.1‗printservice‘•仍然可以使用ArcObjects—SOE方式小结改变地图服务中的图层及符号•添加,删除,对图层重新排序•改变符号•In10:-使用非池化服务,ArcObjects以及LocalConnections-或者使用WMSStyleLayerDescriptors•In10.1:-10.1MapServices中的Dynamic图层10.1会使得这个非常简单介绍10.1MapServices‘DynamicLayers’10.1MapServiceREST/SOAPApplicationhttpjsonWorkspaces配置地图服务指向你的工作空间*添加数据到某一个文件夹或者数据库中(工作空间)你可以在任何时间添加数据告诉mapservice绘制什么,以什么样的顺序以及什么样的符号123TheWebADF编辑任务将停止使用•10.0使用的是‗LocalConnection‘•10.1都将移植到‗Viewers‘FlexViewerSilverlightViewerOOTBAppinManagerEdittoolbarYESYES*YESChangeversionNO**NO**YESUndo-RedoYESYES*YESSnappingYESYESYES*Willbeavailablearound2011UserConference**WearetryinghardtomakethisaYESby10.1DemoWebAPIs:―哪一个适合我?‖•Javascript?•Silverlight?•Flex?•根据下面因素来考虑:-根据你的技术和兴趣-复杂的程度-其他约束条件(企业标准,传统应用…)JavascriptAPI的讲座….•ArcGISJavaScriptAPI开发—初级篇•6月17日周五金辉厅10:10—11:10白明•ArcGISJavaScriptAPI开发—高级篇•6月17日周五金辉厅13:30—14:30白明ArcGISAPI‘sforFlex和Silverlight•功能类似于JavaScriptAPI•用plug-ins运行的应用-Silverlight-Flash•强大的IDE‘s和Web设计环境•跨浏览器,跨平台•强大的graphiclayers以及‗componentmodel‘•可配置的OOTB应用…-FlexViewer-SilverlightViewer–inBeta富互联网应用开发讲座:ArcGISAPIforFlex…-ArcGISFlexAPI—初级篇王坚-6月17日周五鸿运2厅10:10—11:10-ArcGISFlexAPI—高级篇吴泳锋-6月17日周五鸿运2厅14:40—15:40-ArcGISViewerforFlex的配置及定制秦桐-6月17日周五鸿运2厅11:20—12:20讲座:ArcGISAPIforMSSilverlightandWPF-ArcGISMicrosoftSilverlight/WPFAPI—初级篇马克玲-6月17日周五鸿运2厅9:00—10:00-ArcGISMicrosoftSilverlight/WPFAPI—高级篇马克玲-6月17日周五鸿运2厅13:30—14:30-ArcGISViewerforMicrosoftSilverlight的应用与扩展开发刘姗-6月17日周五鸿运2厅11:20—12:20MobileSDKs•iOS-ObjectiveC-iPhone,iPad,iPod•Android-Java/XML-2.1,2.2devices•WindowsPhone-Silverlight•能力…•View•Collect/Update•Analyze•Track讲座:MobileSDKs•移动GIS开发概览王知方•6月17日周五鸿运1厅9:00—10:00•ArcGISAPIforiOS进阶张宝才•6月17日周五鸿运1厅10:10—11:10•ArcGISAPIforWindowsPhone进阶王知方•6月17日周五鸿运1厅11:20—12:20•ArcGISAPIforAndroid进阶程轩昂•6月17日周五鸿运1厅13:30—14:30Services从开发者角度来看Services•目标:-让server去做你想要做的•如何:-理解‘outoftheboxservices’-根据需要创建新的,但是需要知道里面是什么!GlobeServicesMapServicesAnalysis&ModelingServicesImageServicesGeometryFeatureServicesNetworkServicesGeocodeServicesGeodataServicesYOURServices!!MapServicesMapTilesDynamicMapsQueriesDisplayMapimagesorClient-sidegraphics•webmaps的来源•支持地图的诸多能力-缓存和动态地图-要素-网络分析-WCS,WFS,WMS--更多•强大的查询功能讲座:MapServices•高级地图缓存技术王知方/刘姗•6月16日周四鸿运2厅15:50—16:50GeoprocesingServices•通过webservices提供高级的GIS功能•几百个现成的工具•可以把它们揉入到工作流中去(models)•执行-同步-异步•可以在Desktop,OOTBViewers,以及自定应用中使用使用自定义工具来扩展Geoprocessing•WithPython,C#,VB.NetandJava讲座•客户化GP工具许哲•6月16日周四金辉厅14:40—15:40•在Web应用中使用Geoprocessing服务王坚•6月17日周五鸿运3厅14:40—15:40创建自定义的ArcGISServerServicesServerObjectExtensionsServerObjectExtensionArcGISServerWebMobileDesktopOtherRESTorSOAP创建SOEs之前的考虑•这是一个比较复杂的开发工作-是ArcGISServer最高级的开发选项了-如果写的好,可以是最快/最可扩展的解决方案•使用现成的服务能否完成你的目标?-使用mapservices以及geometryservice-Geoprocessing:你熟悉OOTB的工具以及python?•用SOEs:-执行非常快速的自动化操作-对于长事务行的工作将使用GP(可以异步执行)创建SOEs之前的考虑(续)•不要写基于MXD的mapservices的SOEs-10.1已经不支持了-仅仅写针对msd的SOEs-使用这个接口IMapServerDataAccess•不要使用Desktop-onlyArcObjects库-比如:reports,ArcMapextensions等•写无状态的代码-非池化服务在10.1已经不支持了创建SOEs之前的考虑(续)•你原来ArcObjects10的逻辑将能继续使用•你需要用64bitSDK重新编译(10.1)•你将通过Webservice来部署你的SOEs-部署一次,以rest方式使用-SOE就是Server的Add-in讲座:扩展ArcGISServices-ArcGISServer服务扩展—.Net篇马克玲-6月16日周四鸿运3厅14:40—15:40-ArcGISServer服务扩展—Java篇秦桐-6月16日周四鸿运3厅15:50—16:50开发思路•首先考虑OOTB•其次考虑GPServices•最后考虑SOEs开发小结•从应用的角度:开发方式的选择•从服务的角度:了解几种重要的服务并知道如何使用他们谢谢!