ArcGIS API for Silverlight 之ElementLayer使用及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使用注意點API
- ArcGIS API for Silverlight程式碼中使用Template模板API
- ArcGIS API for Silverlight 動態新增點的同時,新增文字說明(利用TextSymbol新增多文字資訊 )APISymbol
- ArcGIS API for Silverlight 學習筆記API筆記
- ArcGIS API for Silverlight 載入google地圖APIGo地圖
- ArcGIS API for Silverlight動態標繪的實現API
- ArcGIS API for Silverlight 點選地圖上的要素,彈出視窗(使用Telerik RadWindow)API地圖
- ArcGIS API for Silverlight 繪製降雨路徑動畫API動畫
- ArcGIS API for Silverlight開發入門準備API
- 建立第一個ArcGIS API for Silverlight應用API
- ArcGIS API for Silverlight 地圖載入進度條類之MapProgressBarAPI地圖APP
- ArcGIS API for Silverlight實現地圖測距功能API地圖
- ArcGIS API for Silverlight 查詢點閃爍顯示API
- ArcGIS API for Silverlight 查詢點聚焦的一個注意點API
- ArcGIS API for Silverlight地圖載入眾多點時,使用Clusterer解決重疊問題API地圖
- ArcGIS API for Silverlight之配準JPG圖片地圖文字傾斜解決方案API地圖
- ArcGIS API for Silverlight 呼叫GP服務繪製等值面API
- ArcGIS API for Silverlight載入google地圖(後續篇)APIGo地圖
- ArcGIS API for Silverlight載入BingMap遙感地圖API地圖
- ArcGIS API for Silverlight開發中常用問題彙總API
- ArcGIS API for Silverlight 滑鼠移動顯示地理座標API
- ArcGIS API for Silverlight中載入Google地形圖(瓦片圖)APIGo
- ArcGIS API for Silverlight 實現修改地圖上的工程點位置API地圖
- 收集的一些關於ArcGIS API for Silverlight開發的連線API
- ArcGIS API for Silverlight 解決眾多密集點分層顯示API
- ArcGIS API for Silverlight 點選地圖彈出自定義窗體API地圖
- ArcGIS API for Silverlight 呼叫GP服務載入等值線圖層API
- ArcGIS API for Silverlight 動態圖層(ArcGISDynamicMapServiceLayer)的顯示與隱藏API
- Django之mako模板使用Django
- ArcGIS API for Silverlight 地圖中解決點眾多的簇解決方法API地圖
- HBase (三)之 API的使用API
- Django學習(二) 之 模板的使用Django
- ArcGIS API for Silverlight 呼叫WebService出現跨域訪問報錯的解決方法APIWeb跨域
- 解決ArcGIS API for Silverlight 載入地圖的內外網訪問問題API地圖
- ArcGIS API for JS 中的styleAPIJS
- ArcGIS API for Silverlight 地圖元素點閃爍,線流動顯示的處理方式API地圖
- Telerik Silverlight 之Charting控制元件的使用控制元件
- ArcGIS API for Silverlight 中根據座標點在地圖上打標記API地圖