- 浏览: 647759 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
Bing Maps与Google Earth一样都提供了可以二次开发的AP I,用户通过控件可以自由定制基于浏览器的应用系统,可以在网页上使用服务商提供的数据服务,Bing Maps可以在浏览器中观察到世界上的每一个角落,并可以逐级地改变地图的比例尺,提供矢量地图和卫星地图这两种常见的显示模式。新版的Bing Maps使用了Silverlight技术,极大地增进了Bing Maps的用户体验,比如,缩放地图时可以取得更平滑的效果,同时也使得使用一些更佳的特效成为可能。
网络服务(Web Service)提供了跨平台、跨语言的互操作能力,为地理信息互操作提供了有效的解决途径。网络地图服务(WebMap Service,WMS)是开放地理信息系统联盟(OGC)制定的网络服务模型中一个基于HTTP协议的地图服务,在WMS中地图被定义为地理数据的可视 化表现,通过一系列操作用户可以获得需要的地图数据。必应地图Silverlight Control SDK下载地址为:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=beb29d27-6f0c-494f-b028-1e0e3187e830
为了使用必应地图Silverlight Control,必须拥有必应地图Key,Key为微软为用户开通的一个授权开发密匙,与开发者账号进行绑定才能正常使用,按以下步骤可获得:
◎进入到必应地图账户中心https:/ / www.bingmapsportal.com,然后点击创建账户链接。
◎ 使用Windows Live ID登录后,需要提供账户名称、联系人姓名、公司名称等信息。
◎ 在必应地图账户中心的左侧,点击“Create or view keys”。
◎ 在创建界面上,填写应用程序名、对应程序的网址等信息后,点击“Create Key”后将获得key。
创建项目后,在Silverlight项目中添加必应地图程序集的引用。
打开MainPage.xaml文件,引入相应命名空间的支持:
xmlns:m="clr-
namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl" 如下面简单的XAML,运行后,就可看到地图了。
<UserControl x:Class="SilverlightApplication7.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <m:Map x:Name="myMap" CredentialsProvider="Apl2yNzBAE7KuwPFxwSMoQRQnvj2u3LgJaxHEPfcaSzTCcbOucxgJDhCJeXpWaX4" Mode="Road"/> </Grid> </UserControl>
CredentialsProvider值就是通过Bing Maps账户管理中心创建的所需的Key,Mode为显示模式,有路况模式(Road)和卫星模式(Aerial),分别显示路标和不显示路标,控件默认 加载为路况模式。卫星模式中若要显示路标则设Mode为“AerialWithLabels”。
地图Map控件其它一些属性有:
◎ Center:中心点坐标。
◎ ZoomLevel:放大级别。
◎ NavigationVisibility:导航菜单显示。
水文部门及时、准确的水文监测信息,及时捕捉公众对水信息的需求,为区域经济发展、人民生活水平提高,提供了主动、及时、优质、高效的水文信息 服务。这些服务,不少仍以纸质媒体为主,如:《水文年鉴》、《水资源质量状况月(年)报》、《地下水通报》、《水资源公报》等,其实还可通过网络等媒介发 布信息,在提供丰富的水文产品、全面的水文服务的同时,平台的整体的外观和功能同样需要做得丰富多彩,Silverlight 是一种融合了微软的多种技术的Web 呈现技术。它提供了一套开发框架,并通过使用基于向量的图层图像技术,支持任何尺寸图像的无缝整合,对基于ASP.NET、AJAX在内的Web 开发环境实现无缝连接。Silverlight 使开发设计人员能够更好的协作,有效地创造出能在Windows 和Macintosh上多种浏览器中运行的内容丰富、界面绚丽的Web 应用程序———Silverlight 应用程序。
水文服务器不少并不是基于.Net的,但这不影响推广使用,Silverlight 的开发是需要. net Framework 的。但是,这并不要求客户端需要任何版本的. net Framework。客户端只需要一个Runtime 插件,就可以执行所有内容,包括托管代码。Silverlight 的所有内容都是客户端运行的,因此,服务器端不需要执行任何代码。这样,SilverLight 对于服务器端来讲,只不过是一组文件而已,存放编译后XAP 文件的ClientBin 目录。因此,SilverLight 可以放在任何现有的网站服务器上,不论这个服务器是否有. net 环境,是php 服务器,或者ASP 或者ASP. net 等等。
水文信息网络地图服务案例使用了Bing Maps Silverlight 控件,结合Silverlight Toolkit中的图表控件,利用Bing Maps地图切片数据实现网络地图服务,方便快捷地获取地图和影像数据,并加载所需的水文信息,从而以较小的成本提供了全方位的水文网络地图服务。
主要操作步骤及代码如下:
(一)加载中国地图是信息显示的基础
◎ 新建项目,启动Mircrosoft Visual Studio 2010,命名为水文信息ShuiWenInfo,
◎在Silverlight项目中,添加必应地图程序集的引用,并声明地图Map控件对应的命名空间的支持。
xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
◎ 在MainPage.xaml中添加Map控件,并添加站网信息图层layStation和中国地图图层layChina,XAML代码如下:
<Grid x:Name="LayoutRoot" Background="White"> <m:Map CredentialsProvider="AmreePcQ50WyjCYvxNo0xUQDwiYVM8VFVTxmcW_1RmOb2x_7T1muW-fSTQQkOok1" x:Name="mapWater" Center="30.4837830422421,108.974539287109" ZoomLevel="6" > <m:MapTileLayer x:Name="layChina"></m:MapTileLayer> <m:MapLayer x:Name="layStation"></m:MapLayer> </m:Map> </Grid>
◎ 在程序中加载中国地图,XAML如下:
ublic MainPage() { InitializeComponent(); UriBuilder tileSourceUri = new UriBuilder("http://r2.tiles.ditu.live.com/tiles/r{quadkey}.png?g=41"); //初始化LocationRectTileSource对象,设定显示范围及放大级别 LocationRectTileSource tileSource = new LocationRectTileSource(tileSourceUri.Uri.ToString(),new LocationRect(new Location(60, 60), new Location(13, 140)), new Range<double>(6, 16)); //设置中国地图图层对象属性 layChina.TileSources.Add(tileSource); layChina.Opacity =1.0; }
(二)站网信息的显示。
站网信息是其它信息显示的基础,开发站网信息平台后再加上其它水情、水质等信息,Bing Maps定义了一些web地图服务, 如点位的图钉标签显示功能,站网信息中的站点图标直接用Bing Maps Silverlight Control中的地图图钉控件Pushpin来表示,具体操作步骤有:
◎ 站点信息使用站点类Station来表示,站点类有站名、经度、纬度等信息。
public class Station { public string StationName{get;set;} public double Longitude {get;set;} public double Latitude{get;set;} } ◎ 定义全局站网变量listStation,并加载示例数据: public List<Station> listStation; public void LoadStations() { listStation = new List<Station>(){ new Station {StationName="大龙山",Longitude=119.02494046378,Latitude=32.0085534220129}, new Station {StationName="高峰",Longitude=118.98099515128,Latitude=32.5588631877063}, new Station {StationName="张家山",Longitude=118.884864780186,Latitude=31.5345470817377}, …………………………………………… }; }
◎ 在站网图层上面显示所有站点图标:
public void ShowStation() { Pushpin station; for (int i =0; i < listStation.Count;i++ ) { station = new Pushpin(); Location location = new Location(listStation[i].Latitude,listStation[i].Longitude); ToolTipService.SetToolTip(station, listStation[i].StationName); layStation.AddChild(station, location); } }
◎ 在MainPage.xaml中添加“站网信息”命令按钮以控制站网信息图层layStation的显示。
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal" Background="Gray"> <Button Margin="5" Width="100" Height="30" x:Name="btStation" Click="btStation_Click" > <TextBlock FontSize="15">站网信息</TextBlock> </Button> </StackPanel>
对应的单击处理事件为:
private void btStation_Click(object sender, RoutedEventArgs e) { if(layStation.Visibility ==Visibility.Visible ) layStation.Visibility = Visibility.Collapsed; else layStation.Visibility = Visibility.Visible ; }
(三)实时水位显示
水情信息中主要是水位,现添加实时水位显示的功能,具体步骤有:
◎ 在站点类Station的变量中,增加水位变量WaterLevel。
public class Station { public string StationName{get ;set ;} public double Longitude {get ;set ;} public double Latitude{get ;set ;} public double WaterLevel{get ;set ;} }
加载数据时,也添加水位值 ,如下
listStation = new List<Station>(){ new Station { StationName="大龙山" ,Longitude=119.02494046378 ,Latitude=32.0085534220129 ,WaterLevel=15.63 } , new Station { StationName="母山" ,Longitude=117.687355014561 ,Latitude=31.8733710133861 ,WaterLevel=18.33 } , …………………………………… .. }
◎ 在Silverlight项目中添加水位显示的用户控件WaterLeverl,界面设计如下:
<Grid x:Name= "LayoutRoot" Background= "White" > <Border BorderBrush= "Red" BorderThickness= "1.0" > <StackPanel > <TextBox x:Name= "txtWater" TextWrapping= "NoWrap" /> </StackPanel> </Border> </Grid>
定义一个水位变量,代码如下:
public partial class WaterLever : UserControl { public WaterLever () { InitializeComponent(); } public double lever { set{ txtWater.Text = value .ToString (); } get{ return double .Parse(txtWater.Text); } } }
◎ 在Main.xaml文件中添加水位图层。
◎ 在水位图层上显示水位。
public void ShowWater () { WaterLever water; for (int i = 0 ; i < listStation.Count; i++) { water = new WaterLever(); Location location = new Location(listStation[i].Latitude, listStation[i].Longitude); ToolTipService.SetToolTip(water, listStation[i].StationName); water.lever = listStation[i].WaterLevel; layWater.AddChild(water, location); } }
◎ 控制水位图层的显示。
private void btWater_Click (object sender, RoutedEventArgs e) { if (layWater.Visibility == Visibility.Visible) layWater.Visibility = Visibility.Collapsed; else layWater.Visibility = Visibility.Visible; }
运行后效果如图:
本文出自 “蓝海战术” 博客,请务必保留此出处http://wanxl.blog.51cto.com/2129901/405221
发表评论
-
silvelright酷站
2011-03-22 18:47 770http://completit.com/# -
silverlight翻转代码
2011-03-13 18:46 1071using System; using System.Net ... -
silverlight独立存储示例
2011-03-07 17:17 1016void CreateDir(string dirNam ... -
silverlight SDK和toolit中控件英文如何转换为英文
2010-11-11 15:50 958解决方法: 设置 ... -
通过JS创建silverlight对象
2010-10-12 13:04 1595前言: 对于我们开发的silverlight应用来讲,有的时 ... -
silverlight childwindow源码
2010-09-18 21:17 1933<!-- // (c) Copyright Micro ... -
精彩的 Silverlight 开源项目
2010-08-18 14:32 2887Silverlight 物理模型 http://www.c ... -
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
2010-08-12 10:34 896本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
2010-08-12 10:03 567本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
2010-08-12 09:52 504本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
2010-08-12 09:24 822本系列文章非原创,转载自: 作 者:Beniao ... -
MEF程序设计指南一:在应用程序中宿主MEF
2010-08-12 09:17 984本系列文章非原创,转 ... -
silverlight应用程序库缓存
2010-08-10 14:22 1466应用程序库缓存可在用户重新访问网站时帮助改善启动性能。 ... -
Prism动态模块加载
2010-08-10 10:27 1546这篇介绍模块在silverlight的特殊应用. sil ... -
Silverlight中Json数据的转换方法(中文)
2010-08-04 11:36 1206[DataContract] public clas ... -
silverlight万花筒效果
2010-07-28 16:14 832见附件。 -
silverlight如何将颜色字符串转换为颜色
2010-07-02 10:42 1499public class ColorUtil { ... -
silverlight中Tab转Enter的实现方法
2010-06-04 17:38 1690silverlight项目中要求界面全键盘操作,并且在光标移动 ... -
在两个Silverlight应用间数据通信(包括与Flash通信)
2010-05-13 17:06 971声明:该博文转载自:http://daizhj.blog.51 ... -
silverlight和js相互调用
2010-05-13 16:56 1627步骤一:在silverlight后台代码类中声明被js调用的方 ...
相关推荐
第一章 主要工具安装 1.1 安装Visual Studio 2010 1.2 安装Silverlight 4工具包 1.3 安装Expression Blend 4 1.4 安装SQL Server 2008 Express 第二章 Expression Blend入门 ...第十章 网络地图服务
示范使用iClient For Silverlight客户端调用SuperMap IS.NET地图服务。演示的功能点包括地图操作、行踪分析、社交网络可视化、预测分析等功能。
示范使用iClient For Silverlight客户端调用SuperMap IS.NET地图服务。演示的功能点包括地图基本操作(放大、缩小、量算等)、个人社交网络管理、社交网络最新动态、基于位置的签到。
希望大家上传的东西都不要积分就好了。免得想下载没积分下载不了!这个是本人收藏的!包括C#开发的WPF_Silverlight游戏 .rar和sliverlight游戏地图编辑器 .rar不过都是单独运行的!想研究网络游戏的可以看下
1.1.4 要点4:ASP.NET运行在公共语言运行库内 1.1.5 要点5:ASP.NET是面向对象的 1.1.6 要点6:ASP.NET支持所有的浏览器 1.1.7 要点7:ASP.NET易于部署和配置 1.2 ASP.NET的演变 1.2.1 ASP.NET1.0和ASP...
GeoWeb始于网络地图和GIS(地理信息系统),由Web 2.0领域的LBS(基于地点服务)兴起,到开始走入多领域应用的今天,很多网络技术起到了关键作用。RIA技术与GeoWeb的结合就是一个连横共进的例子。 在本次演讲中,我...
至于Amazon,最大的挑战是填补或者加强目前缺乏的各种必需服务(统一通信、社交、地图、开发者社区),并从纯粹的电子商务网站(大部分用户过来基本上满脑子想的是买东西)扩展为更通用的平台。以Bezos的长线思维,...
Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与...