Gradient.aspx.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:2k
源码类别:

GIS编程

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Drawing;
  4. using System.Configuration;
  5. using System.Collections;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Web.UI.HtmlControls;
  12. public partial class Gradient : System.Web.UI.Page
  13. {
  14. private double Zoom;
  15. private SharpMap.Geometries.Point Center;
  16. protected void Page_Load(object sender, EventArgs e)
  17. {
  18. if (Page.IsPostBack) 
  19. {
  20. //Page is post back. Restore center and zoom-values from viewstate
  21. Center = (SharpMap.Geometries.Point)ViewState["mapCenter"];
  22. Zoom = (double)ViewState["mapZoom"];
  23. }
  24. else
  25. {
  26. //This is the initial view of the map.
  27. Center = new SharpMap.Geometries.Point(12,48);
  28. Zoom = 45;
  29. //Create the map
  30. GenerateMap();
  31. }
  32. }
  33.   
  34. protected void imgMap_Click(object sender, ImageClickEventArgs e)
  35. {
  36. //Set center of the map to where the client clicked
  37. //We set up a simple empty map so we can use the ImageToWorld() method for easy conversion from Image to World coordinates
  38. SharpMap.Map myMap = new SharpMap.Map(new Size(Convert.ToInt32(imgMap.Width.Value), Convert.ToInt32(imgMap.Height.Value)));
  39. myMap.Center = Center; myMap.Zoom = Zoom;
  40. Center = myMap.ImageToWorld(new System.Drawing.Point(e.X, e.Y));
  41. //Set zoom value if any of the zoom tools were selected
  42. if (rblMapTools.SelectedValue == "0") //Zoom in
  43. Zoom = Zoom * 0.5;
  44. else if (rblMapTools.SelectedValue == "1") //Zoom out
  45. Zoom = Zoom * 2;
  46. //Create the map
  47. GenerateMap();
  48. }
  49.   
  50. /// <summary>
  51. /// Creates the map, inserts it into the cache and sets the ImageButton Url
  52. /// </summary>
  53. private void GenerateMap()
  54. {
  55. //Save the current mapcenter and zoom in the viewstate
  56. ViewState.Add("mapCenter", Center);
  57. ViewState.Add("mapZoom", Zoom);
  58. string ResponseFormat = "maphandler.ashx?MAP=Gradient&Width=[WIDTH]&Height=[HEIGHT]&Zoom=[ZOOM]&X=[X]&Y=[Y]";
  59. System.Globalization.NumberFormatInfo numberFormat_EnUS = new System.Globalization.CultureInfo("en-US", false).NumberFormat;
  60. imgMap.ImageUrl = ResponseFormat.Replace("[WIDTH]", imgMap.Width.Value.ToString()).
  61.   Replace("[HEIGHT]", imgMap.Height.Value.ToString()).
  62.   Replace("[ZOOM]", Zoom.ToString(numberFormat_EnUS)).
  63.   Replace("[X]", Center.X.ToString(numberFormat_EnUS)).
  64.   Replace("[Y]", Center.Y.ToString(numberFormat_EnUS));
  65. }
  66. }