如何在sharpMap地理信息系统的ajax网页里填色?

mrxiaoan 2009-09-02 04:08:53
按照sharpMap的demo,ajax简单功能和填色分别是两个demo。但当我想用ajax功能的网页里填色的时候,却始终无法实现。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using SharpMap.Rendering.Thematics;
using System.Drawing;
public partial class Ajax : System.Web.UI.Page
{

private SharpMap.Styles.VectorStyle GetCountryStyle(SharpMap.Data.FeatureDataRow row)
{
SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();
switch (row["RANK"].ToString().ToLower())
{
case "1": //1为绿色
style.Fill = Brushes.Green;
return style;

case "2": //2为蓝色
style.Fill = Brushes.Blue;
return style;

case "3": //3为黄色
style.Fill = Brushes.Yellow;
return style;

case "4"://4为橙色
style.Fill = Brushes.Orange;
return style;

case "5"://5为红色
style.Fill = Brushes.Red;
return style;

default:
style.Fill = Brushes.White;
return style;

}
}
protected void Page_Load(object sender, EventArgs e)
{
//ajaxMap.Map = MapHelper.InitializeMap(new System.Drawing.Size(10, 10));
ajaxMap.Map = MapHelper.InitializeMap(new System.Drawing.Size(10, 10));
SharpMap.Rendering.Thematics.CustomTheme iTheme = new SharpMap.Rendering.Thematics.CustomTheme(GetCountryStyle) ;
SharpMap.Styles.VectorStyle defaultstyle = new SharpMap.Styles.VectorStyle();

defaultstyle.Fill = Brushes.White;
iTheme.DefaultStyle = defaultstyle;
(ajaxMap.Map.Layers[0] as SharpMap.Layers.VectorLayer).Theme = iTheme;

if (!Page.IsPostBack && !Page.IsCallback)
{
//Set up the map. We use the method in the App_Code folder for initializing the map
ajaxMap.Map.Center = new SharpMap.Geometries.Point(116.0, 27.0);
ajaxMap.FadeSpeed = 10;
ajaxMap.ZoomSpeed = 10;
ajaxMap.Map.Zoom = 5.2;
GenerateMap();

}
ajaxMap.ResponseFormat = "maphandler.ashx?MAP=SimpleWorld&Width=[WIDTH]&Height=[HEIGHT]&Zoom=[ZOOM]&X=[X]&Y=[Y]";
}
private void GenerateMap()
{
//Save the current mapcenter and zoom in the viewstate
ViewState.Add("mapCenter", ajaxMap.Map.Center);
ViewState.Add("mapZoom", ajaxMap.Map .Zoom);
System.Drawing.Image img = ajaxMap.Map .GetMap();
string imgID = SharpMap.Web.Caching.InsertIntoCache(1, img);
ajaxMap.Map.ImageUrl = "getmap.aspx?ID=" + HttpUtility.UrlEncode(imgID);
}
}
关键是最后一行代码,ajaxMap.Map是没有ImageUrl方法的,原demo的这个位置是“imgMap.ImageUrl”,是一个imagelabel控件。既然sharpMap的ajaxMapControl控件没有提供ImageUrl控件,那到底应该如何去给ajax控件里填色呢?
...全文
326 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
whizmjf 2011-01-19
  • 打赏
  • 举报
回复
ajaxMap.Map.ImageUrl = "getmap.aspx?ID=" + HttpUtility.UrlEncode(imgID);
imageurl是一个控件,用来接收生成的图片。
你若在ajaxmap中修改样式,应该用ajaxmap的map中的layers来控制,而不是 imageur.
asyaofeng 2010-06-30
  • 打赏
  • 举报
回复
问题决绝没?
泡面之夏 2009-09-03
  • 打赏
  • 举报
回复
帮顶~
mrxiaoan 2009-09-02
  • 打赏
  • 举报
回复
有没有知道的高人,帮帮忙啊
mrxiaoan 2009-09-02
  • 打赏
  • 举报
回复
仔细分析了一下,在GenerateMap里的System.Drawing.Image img = ajaxMap.Map .GetMap()语句已经开始在GetCountryStyle循环了,但循环后,根据RANK得到的颜色无法在图上显示出来。
conan19771130 2009-09-02
  • 打赏
  • 举报
回复
我用Google地图啊,帮顶
红街咖啡 2009-09-02
  • 打赏
  • 举报
回复
帮你顶一个。
内容概要:本文研究了计及碳排放的多微网电能交互分布式运行策略,提出了一种基于交替方向乘子法(ADMM)的优化方法,旨在实现多微电网系统在满足能源供需平衡的同时降低碳排放。文中构建了包含分布式电源、储能系统、可控负荷及碳排放约束的多微网协同优化模型,通过ADMM算法将全局优化问题分解为各微网子系统独立求解的子问题,实现分布式协同调度,在保障各微网自治性的同时兼顾系统整体的经济性与低碳性。研究通过Matlab代码完成了算法仿真,验证了所提策略在提升能源利用效率、减少碳排放、增强系统鲁棒性与可扩展性方面的有效性,为低碳化、去中心化的能源互联网运行提供了理论支持与实践参考。; 适合人群:具备电力系统分析、优化理论及Matlab编程基础的科研人员、电气工程及相关专业的研究生,以及从事智慧能源、分布式能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于多微电网系统的分布式能量管理与协同优化调度;②支持“双碳”目标下的低碳电网运行策略设计与政策评估;③为ADMM等分布式优化算法在能源系统中的工程化应用提供完整的模型构建、算法实现与仿真验证案例。; 阅读建议:读者应结合Matlab代码深入理解ADMM算法的迭代流程、拉格朗日函数构造与收敛条件设定,重点关注模型中碳排放因子的引入方式、变量分解机制与子问题求解过程,建议通过调整微网数量、碳价参数及通信拓扑结构进行多场景仿真,以深化对分布式协同机制与环保经济权衡关系的理解。
下载代码方式:https://pan.quark.cn/s/cc130f55eddd BUCK变换器,亦称为降压型转换器,在开关电源技术中属于一种基础电路拓扑,其核心功能在于实现从高电压到低电压的转换,并且在转换过程中确保输出端电压的稳定性。本文的核心内容集中在对BUCK变换器的运行机制进行剖析、阐释电流连续模式(CCM)与断续模式(DCM)之间的差异,并深入探讨这两种模式在稳态下的相互关系,同时研究BUCK变换器的交流等效电路模型以及电压与电流补偿回路的构建方法。BUCK变换器的原理示意图如图1所示,其显著特征在于输出电压值低于输入电压值,输出电流保持连续状态,而输入电流则呈现出脉动特性。变换器的工作过程可以划分为两个主要阶段:在第一个阶段,即开关管导通期间,电感元件负责储存能量,电流呈现出线性增长的趋势,并且同时向负载提供能量;在第二个阶段,即开关管截止期间,电感通过二极管实现能量的续流,电流则表现出线性递减的态势。依据电感元件的伏秒平衡原理,可以推导出涉及开关管占空比、电感元件电感量、输入电压以及输出电压之间关系的数学公式,这些公式对于深入理解和设计BUCK变换器具有关键性的指导意义。 接下来,文章对CCM和DCM两种模式进行了详细的比较分析。在CCM模式下,电感电流在整个开关周期内均保持连续的状态,而在DCM模式下,电感电流则会出现中断现象。确定BUCK变换器工作模式的关键依据是其电感电流纹波值与输出电流值相等这一边界条件。当电流纹波值等于零,即在整个开关周期内电感电流保持完全连续时,BUCK变换器被归类为CCM模式;相对地,若电流纹波值大于零,则表明变换器处于DCM模式;介于两者之间的情况则界定为CCM与DCM的过渡状态。 在DCM模式下,对BUCK...

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧