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

简介: 在开发中动态在地图上添加文字信息,可以使用TextSymbol添加文字//动态添加文本TextSymbol textSymbol = new TextSymbol(){ FontFamily = 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, 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(), System.Globalization.CultureInfo.InvariantCulture), double.Parse(item.Longitute.ToString().Trim(), System.Globalization.CultureInfo.InvariantCulture))),new MapPoint(double.Parse(item.Latitute.ToString().Trim(), System.Globalization.CultureInfo.InvariantCulture), double.Parse(item.Longitute.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,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(), System.Globalization.CultureInfo.InvariantCulture), double.Parse(item.Longitute.ToString().Trim(), System.Globalization.CultureInfo.InvariantCulture))),
         Symbol = textSymbol
   };
   graphicText.Attributes["TextSWZMC"] = item.ZDMC; //注意这里的TextSWZMC,和前台xaml代码中要一致
   graphicsLayer11.Graphics.Add(graphicText);



 

 

相关文章
|
6月前
|
JSON API 数据格式
在钉钉开放平台中,创建或更新OA审批表单模板需要通过API接口进行操作
在钉钉开放平台中,创建或更新OA审批表单模板需要通过API接口进行操作【1月更文挑战第20天】【1月更文挑战第97篇】
171 1
|
6月前
|
编译器 API C++
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
296 0
|
6月前
|
小程序 IDE Java
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
75 11
|
6月前
|
小程序 IDE Java
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
64 11
|
6月前
|
JavaScript 前端开发 IDE
Vue3【为什么选择Vue框架、Vue简介 、Vue API 风格 、Vue开发前的准备 、Vue项目目录结构 、模板语法、属性绑定 、 】(一)-全面详解(学习总结---从入门到深化)
Vue3【为什么选择Vue框架、Vue简介 、Vue API 风格 、Vue开发前的准备 、Vue项目目录结构 、模板语法、属性绑定 、 】(一)-全面详解(学习总结---从入门到深化)
107 1
|
6月前
|
JavaScript 前端开发 算法
Vue 3.0 组合式API 模板引用
Vue 3.0 组合式API 模板引用
39 0
|
人工智能 数据可视化 API
ArcGIS API for Python
ArcGIS API for Python
71 0
|
安全 Java fastjson
企业微信API-https请求模板-获取access_token-Java
企业微信API-https请求模板-获取access_token-Java
271 0
|
JavaScript 前端开发 应用服务中间件
Arcgis api for javascript 详细部署
Arcgis api for javascript 详细部署
|
人工智能 数据可视化 数据管理
ArcGIS API for Python
ArcGIS API for Python
114 0