GeoRssLayer.cs
上传用户:huazai0421
上传日期:2008-05-30
资源大小:405k
文件大小:2k
源码类别:

SilverLight

开发平台:

C#

  1. using System;
  2. using System.Windows;
  3. using ESRI.ArcGIS.Client;
  4. using ESRI.ArcGIS.Client.Symbols;
  5. namespace ESRI.ArcGIS.Samples
  6. {
  7.     public class GeoRssLayer : GraphicsLayer
  8.     {
  9. ESRI.ArcGIS.Samples.GeoRss.GeoRssLoader loader;
  10.         #region Constructor:
  11.         public GeoRssLayer() : base()
  12.         {
  13. loader = new ESRI.ArcGIS.Samples.GeoRss.GeoRssLoader();
  14. loader.LoadCompleted += loader_LoadCompleted;
  15. loader.LoadFailed += loader_LoadFailed;
  16.         }
  17. private void loader_LoadFailed(object sender, ESRI.ArcGIS.Samples.GeoRss.GeoRssLoader.RssLoadFailedEventArgs e)
  18. {
  19. this.InitializationFailure = e.ex;
  20. if (!IsInitialized)
  21. base.Initialize();
  22. }
  23. private void loader_LoadCompleted(object sender, ESRI.ArcGIS.Samples.GeoRss.GeoRssLoader.RssLoadedEventArgs e)
  24. {
  25. this.Graphics.Clear();
  26. foreach (Graphic g in e.Graphics)
  27. {
  28. g.Symbol = Symbol;
  29. this.Graphics.Add(g);
  30. }
  31. if(!IsInitialized)
  32. base.Initialize();
  33. }
  34.         #endregion
  35.         #region Overriden Methods:
  36.         //Overriding the Initialize method to fetch the RSS feed first
  37.         public override void Initialize()
  38.         {
  39.             Update();
  40.         }
  41.         #endregion
  42.         #region Dependency Properties:
  43.         //The ESRI picture marker symbol used while rendering the layer
  44.         public MarkerSymbol Symbol
  45.         {
  46. get { return (MarkerSymbol)GetValue(SymbolProperty); }
  47.             set { SetValue(SymbolProperty, value); }
  48.         }
  49.         public static readonly DependencyProperty SymbolProperty =
  50. DependencyProperty.Register("Symbol", typeof(MarkerSymbol), typeof(GeoRssLayer), null);
  51.         //The URL of the RSS feed
  52. public Uri Source
  53.         {
  54. get { return ((Uri)GetValue(SourceProperty)); }
  55. set { SetValue(SourceProperty, value); }
  56.         }
  57.         public static readonly DependencyProperty SourceProperty =
  58. DependencyProperty.Register("Source", typeof(Uri), typeof(GeoRssLayer), null);
  59.         
  60.         #endregion
  61. public void Update()
  62. {
  63. if (Source != null)
  64. {
  65. loader.LoadRss(Source, null);
  66. }
  67. }
  68. }
  69. }