ArcGIS Server 中的动态文字标注(及其他图形)

转载 2012年03月27日 16:39:25

 此处所说的动态标注,是指动态显示地图上某一要素的动态信息。还是通过熟悉的Callback机制来实现。由于获取地图上某一要素的动态信息过程可能不同。本文只描述过程以及共享部分代码。

1、首先写一个javascript函数用来间隔一定时间不停的执行,以保证要素信息的动态性。另外需要在MapResourcemanager 中加入一临时图层(GraphicsLayer),标注的信息就在此图层上显示。

<script type="text/javascript">

        function Show() {

           SetCustomOperation(FSShow)    // Callback前台函数     

        }

 //每间隔20秒执行一次show函数

        Ext.onReady(function() {

          setInterval(Show, 20000);

        });   

function SetCustomOperation(sVal)

       {

            var message ='';

            message +=',' + sVal;

            var context ='Map1'

            <%=sCallBack%>              

   }  

  </script>

2、后台首先要从数据库去动态获取要标注的地图要素的实时信息以及获取到此要素的坐标值。接着就是就是标注了。主要代码如下:

 

 ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer glayer = null;

               //查找ElementGraphicsLayer

 ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality Tempfunc = map.GetFunctionality("TempEle"); // TempEle为动态资源图层名

 ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource  gResource = Tempfunc.Resource as ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource;

 

foreach (System.Data.DataTable dt in gResource.Graphics.Tables)

 {

    if (dt is ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer)

     {

        glayer = (ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer)dt;

         break;

     }

 }

    //如果没有ElementGraphicsLayer就新增加一个ElementGraphicsLayer

 if (glayer == null)

   {

       glayer = new ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer();

      gResource.Graphics.Tables.Add(glayer);

   }

              

 ESRI.ArcGIS.ADF.Web.Geometry.Point point = new ESRI.ArcGIS.ADF.Web.Geometry.Point(X, Y);

//此处X,Y即为需要标注的某一点要素的X,Y坐标值

 //这里我看过,可以加入更多的图形

 ESRI.ArcGIS.ADF.Web.Display.Symbol.TextMarkerSymbol pMarkerSymbol = new ESRI.ArcGIS.ADF.Web.Display.Symbol.TextMarkerSymbol();

 pMarkerSymbol.Text = string.Format("{0}", str); 

/*此处str即为标注要素的动态信息字符串,此处是通过间隔一定时间从数据库获取的*/

 pMarkerSymbol.Font.Size = 20;

 pMarkerSymbol.Transparency = 0;

 ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicElement ge1 = new ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicElement(point, pMarkerSymbol);

 glayer.Add(ge1);

 Map1.RefreshResource(gResource.Name);


相关文章推荐

ArcGIS Server动态读取图层样式(Flex版)

原址:http://virgoooos.iteye.com/blog/794991 在ArcGIS10的rest接口已经提供给我们动态读取图层样式的接口了。  其实当我们在访问ArcGIS Ser...

arcgis server 9.2代码阅读笔记二:在页面上动态加载图层

代码来源 ARCGIS 9.2例子  // Copyright 2006 ESRI // // All rights reserved under the copyright laws of the ...

arcgis server10.1 新功能动态图层渲染

研究了一个arcgisserver10.1动态图层渲染的问题。     环境:       服务器: window server 2008 64位      ...

基于ArcGIS Server的ADF的异步回调机制实现基于动态数据显示问题

在高亮显示、选择中、或者动态数据的时候我们都会使用到GraphicsLayer中的ElementGraphicsLayer或者FeatureGraphicsLayer,我们如何增加动态点以及考虑回调的...

ArcGIS Server代码动态创建发布服务(MapServer,ImageServer)

ArcGIS Server动态创建MapServer #region 创建地图服务 private bool CreateServices(string MapPath, string ...

ArcGIS Server代码动态创建发布服务(MapServer,ImageServer)

#region 创建地图服务     private bool CreateServices(string MapPath, string ServerName)//ServerName为地图服务设...

ArcGIS Server 动态生成缓存

作者:liyuanxi…    文章来源:ESRI China    点击数:2548    更新时间:2009-9-2 摘要:使用ArcGIS Server做地图发布,为了提升浏览性能,通常会使用...

动态发布MXD到ArcGIS Server(包括WMS.WCS,WFS,KML)

private void button2_Click(object sender, EventArgs e)         {         ...

海量图层管理的新希望——ArcGIS Server 动态图层服务

1      众里寻他千百度 “海量数据的发布与共享一直是GIS应用系统建设中的难题,尤其是当数据还在不断增加的时候……”,像是被针扎了般,小崔猛然一惊。然 后他全神贯注,紧紧盯着大屏幕...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)