2011年Esri中国合作伙伴技术丏场ArcGISServer应用开发模式客户与合作伙伴支持部马克玲2011年Esri中国合作伙伴技术丏场主要内容•ArcGISServer开发模式概览•基石:ArcGISServerRESTAPI•利器:ArcGISWebAPIs(Javascript/Flex/Silverlight)•ArcGISServer服务器端扩展2011年Esri中国合作伙伴技术丏场ArcGISServer开发模式概览2011年Esri中国合作伙伴技术丏场ArcGIS是一个完整的系统云企业级本地•发掘•创建•管理•可视化•分析•协作移动和轻量级GIS桌面Web2011年Esri中国合作伙伴技术丏场ArcGISServer支持的客户端MicrosoftVirtualEarthFlex/FlashGoogleEarthArcMapPHPPopFlyYahooPipesGoogleMapsSilverlightYahoo!MapsRubyPython.NetJavaOpenLayersWindowsMobile/iOS/WindowsPhone/AndroidSAPArcGISExplorer2011年Esri中国合作伙伴技术丏场ArcGISServer开发模式SOA——一切皆服务ADF程序桌面程序JavaScript/Flex/Silverlight/iOS/WindowsPhone/Android直接访问SOAP2011年Esri中国合作伙伴技术丏场SOAPvs.REST•SimpleObjectAccessProtocol-基于Internet的通信协议-独立于平台/编程语言-基于XML-W3C标准-…•RepresentationalStateTransfer-是设计风格而不是标准-轻量级-易使用,不需要编程工具-URI即资源,通过HTTP谓词访问-…2011年Esri中国合作伙伴技术丏场基石:ArcGISServerRESTAPI2011年Esri中国合作伙伴技术丏场初识ArcGISServerRESTAPI•一系列有层次结构的资源(资源/操作)•对应于ArcGISServer所发布的服务及其能力…2011年Esri中国合作伙伴技术丏场初识ArcGISServerRESTAPI•根节点地址-[:port]/instance/rest/services/folder•访问资源/操作-=value1¶meter2=value2-=json-=-185.3,-28.8,-59.5,118.1•管理页面-清空缓存/禁用servicesdirectory/生成admintoken(v10)2011年Esri中国合作伙伴技术丏场初识ArcGISServerRESTAPI•GET与POST-GET:只读操作(v9.3.1乊前)-POST:写操作,add/update/delete(v10)•响应格式-通过指定请求参数f-html/json/pjson/image/amf/…-例如:http://...?param1=xx¶m2=xx&f=json•API参考手册-[:port]/instance/sdk/rest2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作MapService:地图显示/各种查询/图例/SOE•MapService-ExportMap-Identify-Find-MapTile-Layer/Table-Query-Feature-…•…2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作FeatureService:要素信息/CRUD/附件管理•FeatureService-Layer-AddFeatures-UpdateFeatures-DeleteFeatures-ApplyEdits-…-Feature-AddAttachment-…-…•…2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作ImageService:提供影像数据各种能力•ImageService-ExportImage-Query-Identify-DownloadRasters-…2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作GeometryService:处理几何对象•GeometryService-Project-Simplify-Buffer-AreasandLengths-Lengths-Relation-…2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作NetworkService:•NetworkService-NetworkLayer-SolveRoute-SolveClosestFacility-SolveServiceArea2011年Esri中国合作伙伴技术丏场常用的RESTAPI资源/操作GPService•GPService-Task-ExecuteTask-SubmitJob-Job-Result-Input2011年Esri中国合作伙伴技术丏场基石:ArcGISServerRESTAPI•基于RESTAPI的开发是ArcGISServer应用的主要开发方式•ArcGISServerRESTAPI的实践者-ArcGISAPIfor-Javascript-Flex-Silverlight/WPF-ArcGISRuntimeSDKfor-iOS-WindowsPhone-Android-WPF-Java-Qt2011年Esri中国合作伙伴技术丏场ArcGISAPIforJavascript/Flex/Silverlight利器:ArcGISWebAPIs2011年Esri中国合作伙伴技术丏场RichInternetApplication背景•具有丰富交互性,良好用户体验的网络应用程序•主流RIA技术-Flex-Silverlight-JavaFX-…2011年Esri中国合作伙伴技术丏场ArcGISWebAPIs简介•ArcGISAPIfor-Javascript-Flex-Silverlight/WPF•基于ArcGISServerRESTAPI•框架/功能/开发思路一致2011年Esri中国合作伙伴技术丏场ArcGISWebAPIs学习资源•ArcGIS资源中心-API下载-概念帮劣-在线示例(在线应用/源码)-API参考-CodeGallery•ArcGISOnline-在线服务-应用示例-…2011年Esri中国合作伙伴技术丏场ArcGISWebAPIs基本概念•Map•Layers-服务的载体•GraphicsLayer/FeatureLayer-显示交互信息/网络编辑-Graphic/Renderer/Clustering/Draw•Editing-现有控件/EditorClass•Tasks-Identify/Find/Query/Geometry/Route/Geoprocessing/…•WebMap2011年Esri中国合作伙伴技术丏场Map——GIS应用主场景•属性-Layers/SpatialReference/Extent/TimeExtent/WrapAround/…•方法-Zoom/Pan/ScreenToMap/MapToScreen/…•事件-ExtentChange…•需要注意的问题-跨域访问策略文件(Flex/Silverlight)-空间参考2011年Esri中国合作伙伴技术丏场Layers——地图控件主要内容•ArcGISDynamicMapServiceLayer•ArcGISTiledMapServiceLayer•ArcGISImageServiceLayer•GraphicsLayer-FeatureLayer•其他-GPResultImageLayer-KMLLayer-OpenStreetMapLayer-WMSLayer-WMTSLayer-…2011年Esri中国合作伙伴技术丏场GraphicsLayer——显示交互信息•Graphic-Geometry-Symbol-Attributes•InfoWindow•Renderer-SimpleRenderer-UniqueValueRenderer-ClassBreakRenderer-TemporalRenderer•Clustering•DrawNAME:xx市TYPE:地级市…2011年Esri中国合作伙伴技术丏场FeatureLayer——网络编辑•继承自GraphicsLayer,此外提供-Editing/Definitionexpressions/Timedefinitions/Selection-数据可来源于:MapService/FeatureService•常用属性/方法-Url:内容过滤(where/definitionExpression)-Mode:Snapshot/OnDemand/SelectionOnly-MaxAllowableOffset:允许服务器端对图形节点抽希-保存编辑(applyedits/saveedits)-…2011年Esri中国合作伙伴技术丏场Editing——编辑工具•基于FeatureService•功能-属性、图形、附件:增加/删除/编辑•封装好的EditorWidget-编辑功能、GeometryService、TemplatePicker、Draw…•通过代码完成编辑功能-Editor类(Silverlight)-FeatureLayer+Draw2011年Esri中国合作伙伴技术丏场Tasks——GIS能力的工具箱•ArcGISServer分析能力的体现•相同的调用步骤-初始化相应Task类-设置参数-异步调用-处理结果•Identify:获取与某图形相交的要素(针对多个图层)•Find:获取包含某字符串的要素(针对多个图层)•Query:属性/空间查询(针对单个图层)•Geometry:几何图形操作-Buffer/Project/Simplify/Densify/Generalize/Area/Length/Relation/Union/Offset/Reshape/Cut/ConvexHull/…•Route:最佳路线/最近设施点/服务区范围分析•Geoprocessing:高级/复杂地理分析功能-剖面图/漂流瓶2011年Esri中国合作伙伴技术丏场WebMap——基于ArcGIS.com的地图规范•Oneintelligentmap,usingeverywhere.•使用JSON定义•包含内容-Basemaplayer-Operationallayers-Tasks-Featurecollections-Pop-upwindows•ArcGISWebAPIs中有相应的处理类2011年Esri中国合作伙伴技术丏场ArcGISViewerforFlex/Silverlight•应用程序框架-可直接部署-可配置已有功能-可扩展自定义功能-可自定义外观2011年Esri中国合作伙伴技术丏场ArcGISW