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 for js FeatureLayer文字标注

FeatureLayer显示文字标注featureLayer = new FeatureLayer(serverUrl, { "outFields": "*" }); var statesLa...
  • qq451354
  • qq451354
  • 2017年02月24日 11:16
  • 2124

arcgis中的标注和注记

一直都分不清楚标注和注记的区别。这不,发布服务遇到了高级别的警告,说“00017: 数据框中至少有一个包含图形的已启用注记组文档中的数据框包含地图图形”,一头雾水,找不到哪有什么地图图形。先mark一...
  • sophiasy
  • sophiasy
  • 2016年09月07日 09:26
  • 2866

ArcGIS API For JS 文本标注换行

ArcGIS API For JS 文本标注换行
  • hao7834232
  • hao7834232
  • 2017年05月11日 18:43
  • 805

ArcGIS API for JavaScript——给图层添加标注

ArcGIS在发布服务的前可以设置图层的标注,也可以在发布服务后调用Arcgis API来修改要素的标注。 修改标注主要利用图层的setLabelingInfo(labelingInfo)方法,其中...
  • agisboy
  • agisboy
  • 2017年05月25日 18:46
  • 2810

arcgis 进行中文分类标注相关说明

一、分类标注   分类标注适用于为同一图层中的不同要素设置不同的标注样式,例如河道,道路(可分为一级,二级)不同级别有不同的大小和颜色。而标注默认会应用于整个图层,这就需要我们为默认的标注增加一...
  • pangpi814961437
  • pangpi814961437
  • 2015年12月02日 14:54
  • 1467

arcgis for js文本标注背景设置

arcgis for js文本标注背景设置    在样式上添加:.dijitTooltipContainer {     background-color: #ffffff !important...
  • goodjie_12
  • goodjie_12
  • 2015年03月02日 16:06
  • 2297

Arcgis server for js 只FeatureLayer显示label的问题

只要在初始化地图的加下面这句话即可: var map = new Map("map", {showLabels : true });...
  • shileimohan
  • shileimohan
  • 2016年08月31日 15:49
  • 1466

ArcGIS 在地图上添加标注

dojo.require("esri.map"); dojo.ready(function () { var MyMap = new esri.Map("MyM...
  • change2970955076
  • change2970955076
  • 2017年09月22日 09:21
  • 589

《ArcGIS10.2》 Part1 在地图上标注地名或坐标

《ArcGIS10.2》 Part1 在地图上标注地名或坐标       这个是用来给生物学的人画地图做标记的,为了方便下次阅读,所以做了个笔记记录下来。 1、下载安装ArcGIS10.2,注意安装L...
  • sinat_24206709
  • sinat_24206709
  • 2016年12月26日 11:27
  • 3646

在ArcGIS中计算震中到周边城市的距离,并连线标注

在ArcGIS中计算震中到周边城市的距离,并在图上连线标注,效果如下图所示:650) this.width=650;" width="779" height="679" title="捕获.PNG" ...
  • huohe2009
  • huohe2009
  • 2014年02月27日 11:04
  • 1603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGIS Server 中的动态文字标注(及其他图形)
举报原因:
原因补充:

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