SilverLightViewer 开发人员指南Word文档格式.docx
- 文档编号:21086052
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:41
- 大小:14.46MB
SilverLightViewer 开发人员指南Word文档格式.docx
《SilverLightViewer 开发人员指南Word文档格式.docx》由会员分享,可在线阅读,更多相关《SilverLightViewer 开发人员指南Word文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
简述
本文档用于帮助开发人员使用SilverLightViewer框架,开发基于ArcGISforSilverlight/WPFAPI2.0的RIA地图应用。
背景
ESRI发布了ArcGISSilverLightAPI等快速Web开发包,受到了广大用户及开发商的关注。
但一直以来开发商和用户都只是使用在线的文档及零散的在线例子,开发商或用户准备使用ArcGISSilverLightAPI进行开发的时候,总是感到无从下手。
基于以上原因,本方案旨在为客户提供一个可扩展、移植的SilverLightAPI开发框架,并向用户展示ArcGISSilverLightAPI的功能及魅力。
术语和定义
GIS(地理信息系统)
地理信息系统(GeographicInformationSystem,简称GIS)是建立在地球科学基础上的边缘科学,是以地理空间数据库为基础,在计算机软硬件的支持下,对空间相关资料进行采集、管理、操作、查询分析、模拟、显示和制图输出,并采用地理模型分析方法,适时提供多种空间和动态的地理信息,为地理研究和地理决策服务而建立起来的计算机技术系统。
是融地理学、几何学、计算机科学及各类应用对象为一体的综合性高新技术。
GPS(全球卫星定位系统)
GPS是全球卫星定位系统(GlobalPositioningSystem,GPS)的英文缩写,GPS利用导航卫星进行测时和测距,以构成全球定位系统,能提供个人候的定位、授时、测速功能。
GPS是一种精密的卫星导航系统。
该系统由24颗绕地球旋转的卫星组成,卫星连续不断地发送位置和时间信息。
这些卫星均匀地分布在6个轨道上,每个轨道有4颗卫星。
地面GPS接收机可接收5到12颗卫星信号。
为实现地面定位功能,GPS接收机至少需要接收4个卫星信号,其中3个信号用来计算GPS接收机的纬度、经度和海拔高度,第四个信号提供同步时间校准。
RIA(富因特网应用程序)
RIA是RichInternetApplication的简称,也称富因特网应用程序,是由Macromedia(现Adobe)最先提示的概念,以示与传统Web应用程序相区别。
自从B/S架构迅速流行开来之后,我们就一直面临着这样一个问题:
如何做到当初C/S那样的表示层精确控制以及良好的用户体验?
当然,大量的利用DHTML以及JavaScript我们可以实现接近C/S时代的表示层控制和展现,比如Bindows,但是我们需要付出比C/S时代更多的人力物力才能做到接近于C/S客户端的表现方式,这不是我们想要的。
在我们从当初狂热的B/S浪潮中逐渐冷静下来的时候,我们发现单纯的瘦客户端/胖服务器模式并非是一个万能的模式-世间能量终究是守恒的,有得必有失,我们在获得了B/S带来的种种好处之后,也同样失去了C/S带给我们的帮助,因此RIA(RichInternetApplications)的出现就显得极其自然了。
RIA意味:
不同凡响的Web功能、更好的用户体验、更强大的用户界面、更好的交互性、更先进的开发模型、更强大的多媒体功能、更好的数据管理、更好的程序控制
目前RIA开发的技术主要有,AdobeFlex、Ajax、WPF、OpenLaszlo、GoogleWebToolkit、JavaSWT、XUL、JavaFX、Silverlight。
Flex
随着当今信息技术飞速发展和Internet带宽的增加,传统的文字+图片的方式已经不能满足人们对Web内容的需要。
随着Web2.0的概念越来越深入人心,Flex技术作为RIA技术的领航者已经快速的发展到了第三个版本Flex3.0。
Flex技术是完全基于矢量图形技术的,这样使得用户能够获得更多的用户体验。
只要浏览器可以播放Flash,就可以显示Flex的网站。
由于FlashPlayer的高市场占有率,基于Flex的RIA技术已经逐渐成为Web2.0开发的主要技术手段。
Flex的定位是提供丰富Internet应用的企业级开发框架。
轻便的开发模式和良好的服务端兼容性使得Flex已经成为主流的网站和电子商务的发展方向。
SilverLight
Silverlight是微软推出的一个跨平台跨操作系统的插件,使Web开发者能够在浏览器中建造丰富的媒体体验和RIA应用。
可用于Windows平台上的IE和Firefox浏览器,以及MacOSX平台上的Firefox和Safari浏览器。
Silverlight是一种新的Web呈现技术,能在各种平台上运行。
借助该技术,您将拥有内容丰富、视觉效果绚丽的交互式体验,而且,无论是在浏览器内、在多个设备上还是在桌面操作系统(如AppleMacintosh)中,您都可以获得这种体验。
支持创建3D模型、可以更轻松的现实视频播放和分享的播放器一类的东西,支持搜索引擎。
开发环境
WindowsXp/2003/2008/7
IIS
MicrosoftVisualStudio2010
MicrosoftExpressionBlend4
Silverlight_4_Toolkit
SilverLightToolsforVisualStudio2010
ArcGISforSilverlight/WPFAPI2.0
SilverLightViewer1.0
必备知识
熟练使用VisualStudio开发SilverLight(C#或VB)
熟悉ArcGISforSilverlight/WPFAPI
SilverLightViewer开发框架
概述
SilverLightViewer开发框架帮助开发人员,快速的开发和部署基于ArcGISforSilverlight/WPFAPI2.0的RIA地图应用。
SilverLightViewer开发框架有以下特点:
1.轻松配置,以满足客户业务需求和要求
2.通过Widget来实现各种功能,提供许多核心的Widget如:
图层管理、鹰眼等
3.轻松扩展,可根据自己的业务需求,轻松的编写或下载widgets
4.Widgets采取按需下载管理模式,最小化服务器网络负载。
5.类似于ArcGISViewerforFlex
系统框架图
WidgetFramework基础
Widget是被封装在一起的一段或一组孤立的可执行代码,它实现了用户的一种或一组功能或业务逻辑(包括可视化的界面)。
对于面向服务的应用,Widget甚至可以是一个服务(数据、业务流程等)。
用户可以轻松的执行这个Widget。
同时Widget也支持被共享和重用。
IBaseWidget接口(IBaseWidget.cs)
定义了Widget的一系列通用接口,会被WidgetManager调用。
publicinterfaceIBaseWidget
{
intID{get;
set;
}
voidsetTitle(stringvalue);
voidsetIcon(stringvalue);
stringconfig{get;
ConfigDataconfigData{get;
voidsetState(stringvalue);
Mapmap{get;
voidsetPreload(stringvalue);
voidsetXYPosition(doublex,doubley);
voidsetRelativePosition(doubleleft,doubleright,doubletop,doublebottom,stringhorizontal,stringvertical);
BooleanisDragable{get;
BooleanisResizeable{get;
stringproxyUrl{get;
voidrun();
BaseWidget类(BaseWidget.xaml、BaseWidget.xaml.cs)
Widget的基础类,所有Widget都继承自这个基类。
它实现了IBaseWidget接口和一些通用的方法。
一些通用的方法:
publicvoidshowInfoWindow(Dictionary<
string,Object>
infoData);
publicvoidsetMapAction(stringaction,stringstatus,EventHandler<
DrawEventArgs>
callback);
publicvoidsetMapNavigation(StringnavMethod,Stringstatus);
publicvoidshowError(stringerrorMessage);
一些通用的事件:
publicdelegatevoidWidgetConfigEventHandler(objectsender,AppEvente);
(配置文件加载事件代理)
publiceventWidgetConfigEventHandlerWidgetConfigEvent;
(配置文件加载事件)
publiceventWidgetConfigEventHandlerWidgetConfigErrorEvent;
(配置文件加载失败事件)
注:
所有的Widget必须继承自这个类。
IWidgetPanel接口(IWidgetPanel.cs)
这个接口定义了Widget模板(通用的界面及行为)在BaseWidget中被调用的接口。
publicinterfaceIWidgetPanel
intwidgetId{get;
stringwidgetTitle{get;
stringwidgetIcon{get;
WidgetPanel类(WidgetPanel.xaml、WidgetPanel.xaml.cs)
一个Widget模板。
提供了widget的基本的用户界面布局(面板、窗口、标题栏、图像按钮等)和行为(最大化、最小化、关闭等).通过使用Widget模板,Widget开发人员可以花更多的他们对自己的核心业务需求的开发时间。
开发人员可以自定义自己的widget模板,一定要实现IWidgetPanel接口。
publicvirtualvoidaddTitlebarButton(Stringicon,Stringtip,MouseButtonEventHandlermouseLeftButtonDown);
publiceventEventHandlerWidgetMinimizedEvent;
(最小化事件)
publiceventEventHandlerWidgetMaximizedEvent;
(最大化事件)
publiceventEventHandlerWidgetClosedEvent;
(关闭事件)
Widget界面元素
titleBar
txtTitle
imgIcon
widgetPanel
Content
LayoutRoot
界面元素嵌套关系如下图:
WidgetBar
Widget和WidgetBar
Widget控制条
Widget
Widget:
接受WidgetContorl管理。
WidgetBar:
不受WidgetContorl管理。
系统配置文件
我们可以通过修改配置文件,轻松完成系统界面的定制。
全局配置文件(默认为config.xml)
<
userinterface>
标签段
定义用户的UI界面。
包括title、subtitle、logo、stylesheet、等标签段。
title>
:
SilverLightViewer应用程序的标题。
(HeaderControllerWidget的左上角显示标题)
subtitle>
SilverLightViewer应用程序的子标题。
(HeaderControllerWidget的标题下方显示)
logo>
SilverLightViewer应用程序的Logo。
(HeaderControllerWidget的左上角显示)
stylesheet>
SilverLightViewer应用程序的风格描述文件。
widgetlayout>
Widget的布局方式。
有下面几种布局方式:
horizontal:
横向布局
vertical:
纵向布局(默认)
float:
随意布局,widget可拖动、调整大小
map>
定义Map相关的信息,<
Map>
标签段包括下面的一些属性:
initialExtent:
安装时地图显示的区域(XMinYMinXMaxYMax)
fullExtent:
地图显示的最大区域(XMinYMinXMaxYMax)
left:
地图距离最左边的距离
right:
地图距离最右边的距离
top:
地图距离最上边的距离
bottom:
地图距离最下边的距离
还包含下面的标签段:
<
basemaps>
定义背景地图信息,包含mapservice标签段
<
mapservice>
定义一个地图服务信息,包含下面的一些属性及值域
Label:
地图服务的标题名
type:
地图服务类型(tiled\dynamic\virtualearth\image)
visible:
地图服务的可见性
token:
token串
alpha:
透明度
icon:
地图服务的图标
style:
图层风格(Road、Aerial、AerialWithLabels)(只适用于virtualearth)
值域:
地图服务的访问地址
operationallayers>
定义操作地图信息,包含layer标签段
layer>
定义一个操作图层信息,包含下面的一些属性及值域
图层的标题名
图层的类型(tiled\dynamic\feature)
图层的可见性
图层的图标
图层的访问地址
widgets>
定义Widgets的信息。
包含多个<
widget>
定义一个Widget的信息,包含下面的属性及值域
Label:
Widget的标题名
Widget的图标
Widget的类名(创建Widget时使用)
preload:
启动应用系统时是否自动加载(true/false)
config:
Widget的独有的配置文件。
resdict:
Widget的独有的资源文件。
group:
Widget的分组信息
x:
Widget的X轴绝对位置
y:
Widget的Y轴绝对位置
Widget所在DLL或Xap包的名称(含路径)
widgetbars>
定义Widgetbars的信息。
bar>
定义一个Widgetbar的信息,包含下面的属性及值域
Widgetbar的标题名
Widgetbar的图标
Widgetbar的类名(创建Widget时使用)
Widgetbar的独有的配置文件。
Widgetbar的独有的资源文件。
Widgetbar相对于最左边的距离(没有设置时不参与计算)
Widgetbar相对于最右边的距离(没有设置时不参与计算)
Widgetbar相对于最上边的距离(没有设置时不参与计算)
Widgetbar相对于最下边的距离(没有设置时不参与计算)
Widgetbar横向计算模式(left(默认):
自左向右,right:
自右向左)
Widgetbar纵向计算模式(top(默认):
自上向下,bottom:
自下向上)
Widget配置文件(*.xml)
Widget独有的配置文件,定义Widget需要的配置信息,配置文件格式及内容由Widget自己处理(开发人员在WidgetConfigEvent事件中处理)。
ConfigData类
publicclassConfigData
publicDictionary<
string,string>
UI{get;
Map{get;
int,Dictionary<
>
Basemaps{get;
publicDictionary<
OperationalLayers{get;
Widgets{get;
string,Dictionary<
Controls{get;
系统常用事件(AppEvent)
定义了一些列系统常用的事件,包含在AppEvent.cs文件中。
使用监听和发起系统事件必须使用ViewerContainer全局类。
监听事件例子:
ViewerContainer.addEventListener(AppEvent.CONTAINER_INITIALIZED,newViewerEventHandler(containerInitialized));
触发事件例子:
ViewerContainer.dispatchEvent(AppEvent.WIDGET_RUN,newAppEvent(ItemId));
APP_ERROR
应用程序出错事件,在应用程序出错时触发。
AppEvent类的data属性为字符串类型。
触发事件示例:
Stringdata=“出错了!
”;
ViewerContainer.dispatchEvent(AppEvent.APP_ERROR,newAppEvent(data));
CONFIG_LOADED
系统全局配置文件加载成功后,触发事件。
AppEvent类的data属性为ConfigData类型实例。
监听事件示例:
ViewerContainer.addEventListener(AppEvent.CONFIG_LOADED,
newViewerEventHandler(ConfigLoaded));
privatevoidConfigLoaded(objectsender,AppEvente)
……
MAP_LOADED
地图控件加载成功时触发的事件。
AppEvent类的data属性为ESRI.ArcGIS.Client.Map类型实例。
ViewerContainer.addEventListener(AppEvent.MAP_LOADED,
newViewerEventHandler(MapLoaded));
privatevoidMapLoaded(objectsender,AppEvente)
map=(Map)e.Data;
MAP_RESIZE
用于改变地图控件大小事件。
AppEvent类的data属性为Dictionary<
string,Double>
类型实例,包含以下的元素:
"
left"
:
左边的空白距离
"
right"
右边的空白距离
top"
上边的空白距离
bottom"
下边的空白距离
Dictionary<
data=newDictionary<
();
data.Add("
0);
ViewerContainer.dispatchEvent(AppEvent.MAP_RESIZE,newAppEvent(data));
LAYER_LOADED
基础地图图层加载成功时触发的事件。
AppEvent类的data属性为Null。
ViewerContainer.addEventListener(AppEvent.LAYER_LOADED,
newViewerEventHandler(OnlayerLoaded));
privatevoidOnlayerLoaded(objectsender,AppEvente)
{
……
}
MAP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SilverLightViewer 开发人员指南 开发人员 指南
![提示](https://static.bdocx.com/images/bang_tan.gif)