ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用
2016-08-09 23:17
537 查看
原文:ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用
在开发中动态在地图上添加文字信息,可以使用TextSymbol添加文字
如果要考虑给文字加背景颜色的话,该类就无法起作用了
提供第二种方法,使用TextSymbol的模板使用:
在开发中动态在地图上添加文字信息,可以使用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);
相关文章推荐
- ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用
- ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用
- ArcGIS API for Silverlight之ElementLayer使用注意点
- ArcGIS API for Silverlight代码中使用Template模板
- 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注
- ArcGIS API for Silverlight代码中使用Template模板
- ArcGIS API for Silverlight 动态添加点的同时,添加文字说明(利用TextSymbol添加多文字信息 )
- (转)扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注
- 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注
- ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层
- [专家讲座] ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层(转)
- ArcGIS API for Silverlight开发入门(4):用户与地理信息之间的桥梁--GraphicsLayer
- ArcGIS API for Silverlight开发入门(8):在程序中使用Virtual Earth的服务<转>
- Arcgis api for silverlight自定义一个Symbol
- ArcGIS API for Silverlight 使用GeometryService求解线与面的交点(一)
- ArcGIS API for Silverlight 点击地图上的要素,弹出窗口(使用Telerik RadWindow)
- [专家讲座] ArcGIS API for Silverlight开发入门(4):用户与地理信息之间的桥梁--GraphicsLayer(转)
- ArcGIS API for Silverlight 使用GeometryService求解线与面的交点(一)
- ArcGIS API for Silverlight开发入门(4):用户与地理信息之间的桥梁--GraphicsLayer
- [专家讲座] ArcGIS API for Silverlight开发入门(4):用户与地理信息之间的桥梁--GraphicsLayer(转)