ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用

ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用,第1张

概述在开发中动态在地图上添加文字信息,可以使用TextSymbol添加文字 //动态添加文本TextSymbol textSymbol = new TextSymbol(){ FontFamily = new System.Windows.Media.FontFamily("Microsoft YaHei"), Foreground = new System

在开发中动态在地图上添加文字信息,可以使用TextSymbol添加文字

//动态添加文本TextSymbol textSymbol = new TextSymbol(){        FontFamily = new System.windows.Media.FontFamily("Microsoft YaHei"),Foreground = new System.windows.Media.solIDcolorBrush(color.FromArgb(255,255,0)),FontSize = 14,Text = item.ZDMC,OffsetX = 12,OffsetY = -5};Graphic graphicText1 = new Graphic(){         Geometry = mercator.FromGeographic(new MapPoint(double.Parse(item.Latitute.ToString().Trim(),System.Globalization.CultureInfo.InvariantCulture),double.Parse(item.Longitute.ToString().Trim(),System.Globalization.CultureInfo.InvariantCulture))),Symbol = textSymbol};graphicText1.Attributes["TextYLZMC"] = item.ZDMC;graphicslayer1.Graphics.Add(graphicText1);

 


如果要考虑给文字加背景颜色的话,该类就无法起作用了

//动态添加带背景颜色的文字信息 border b = new border(); b.Background = new SolIDcolorBrush(colors.Blue); b.Height = 20; b.CornerRadius = new CornerRadius(5); TextBlock tb = new TextBlock(); tb.Text = item.ZDMC; tb.Foreground = new SolIDcolorBrush(colors.White); tb.HorizontalAlignment = HorizontalAlignment.Center; tb.FontSize = 15; b.Child = tb; ElementLayer.SetEnvelope(b,new Envelope(new MapPoint(double.Parse(item.Latitute.ToString().Trim(),new MapPoint(double.Parse(item.Latitute.ToString().Trim(),System.Globalization.CultureInfo.InvariantCulture)))); elementLayer.Children.Add(b);

效果如下

 

提供第二种方法,使用TextSymbol的模板使用:

          <esri:TextSymbol x:Key="SWZTextSymbol">                <esri:TextSymbol.ControlTemplate>                    <ControlTemplate>                        <border Background="White" borderBrush="Black" CornerRadius="5"  borderThickness="1,1,1">                            <TextBlock                                WIDth="70"                                FontSize="14"                                 Text="{Binding Attributes[TextSWZMC]}" //注意这里的TextSWZMC,和后台代码中要一致                                Foreground="Blue"                                FontFamily="Microsoft YaHei"                                HorizontalAlignment="Center" />                        </border>                    </ControlTemplate>                </esri:TextSymbol.ControlTemplate>            </esri:TextSymbol>


 

  TextSymbol textSymbol = LayoutRoot.Resources["SWZTextSymbol"] as TextSymbol; //这里和模板的Key名称要一致  textSymbol.OffsetX = 15;  textSymbol.OffsetY = -15;  Graphic graphicText = new Graphic()   {         Geometry = mercator.FromGeographic(new MapPoint(double.Parse(item.Latitute.ToString().Trim(),Symbol = textSymbol   };   graphicText.Attributes["TextSWZMC"] = item.ZDMC; //注意这里的TextSWZMC,和前台xaml代码中要一致
   graphicslayer11.Graphics.Add(graphicText);


总结

以上是内存溢出为你收集整理的ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用全部内容,希望文章能够帮你解决ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1063404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存