اعلانات انجمن


ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
feature layer و legend
نویسنده پیام
mohitlog آفلاین
کاربر عادی
*

ارسال‌ها: 5
تاریخ عضویت: مهر ۱۳۹۲
اعتبار: 0
ارسال: #1
feature layer و legend
سلام
چندتا لایه داریم که پابلیش شده اند. حالا میخاستیم این لایه ها رو رو توی برنامه سیلورلایتمون نمایش بدیم. 

توی کد زیر کامپووننت مپ را ایجاد کردیم


کد:
<esri:Map x:Name="MyMap" WrapAround="True" IsLogoVisible="False" Margin="250,55,0,0" />


 و از طریق کد زیر لایه رو به نقشه اضافه میکنیم.



کد:
for (int i = 0; i < 5; i++)
{
flayer = new FeatureLayer();
flayer.Url = "http://localhost:6080/arcgis/rest/services/GIS/MyMapServiceasli/Mapserver/" + i.ToString();
flayer.SelectionColor = new System.Windows.Media.SolidColorBrush(Colors.Cyan);
OutFields myOutFields = new OutFields();
myOutFields.Add("*");
flayer.OutFields = myOutFields;
//flayer.ID = "لایه " + args.Graphic.Attributes["Layer"].ToString();
flayer.Mode = FeatureLayer.QueryMode.OnDemand;
MyMap.Layers.Add(flayer);
}
به عنوان مثال ما میخایم پنج تا لایه اول رو نمایش بدیم. کد بدرستی عمل میکنه ولی در legend نام لایه ها نمایش داده نمیشود. 



کد:
<Border Background="#77919191" x:Name="MyBorderLayerList" BorderThickness="1" CornerRadius="5" Opacity="0.8"
HorizontalAlignment="Left" VerticalAlignment="Top" Visibility="Visible"
Margin="0,50,0,0" Padding="5" BorderBrush="Black"
Width="250" Height="Auto" >



<esri:Legend Name="MyLegend" HorizontalAlignment="Left" Background="White"
VerticalAlignment="Top" Margin="0,0,0,0" Width="250"
Map="{Binding ElementName=MyMap}"

LayerItemsMode="Tree" ShowOnlyVisibleLayers="False" >
<esri:Legend.MapLayerTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<sdk:Label x:Name="lblLayerList" Content="لیست لایه ها"/>
<CheckBox Content="{Binding Label}"
IsChecked="{Binding IsEnabled, Mode=TwoWay}"
IsEnabled="{Binding IsInScaleRange}" >
</CheckBox>
<Slider Maximum="1" Value="{Binding Layer.Opacity, Mode=TwoWay}" Width="100" />
</StackPanel>
</DataTemplate>
</esri:Legend.MapLayerTemplate>
<esri:Legend.LayerTemplate>
<DataTemplate>
<CheckBox Content="{Binding Label}"
IsChecked="{Binding IsEnabled, Mode=TwoWay}"
IsEnabled="{Binding IsInScaleRange}" >
</CheckBox>
</DataTemplate>
</esri:Legend.LayerTemplate>
</esri:Legend>
</Border>

 , legend  به این صوت نمایش داده میشود


چکار باید بکنیم؟

 

 


فایل‌(های) پیوست شده بندانگشتی (ها)
   
۲۷-۶-۱۳۹۵ ۱۱:۳۳ صبح
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
jafari_GIS آنلاین
کاربر عادی
*

ارسال‌ها: 62
تاریخ عضویت: اسف ۱۳۹۲
اعتبار: 9
ارسال: #2
RE: feature layer و legend
باید به هر لایه یک id اختصاص دهید  و این id ها رو به legend معرفی کنید. با پروپرتی LayerIDS. مثلا:

  "LayerIDs="Points of Interest, United States

Content="لیست لایه ها" رو هم فکر می کنم باید بردارید. امتحان کنید.
(آخرین ویرایش در این ارسال: ۲۸-۶-۱۳۹۵ ۰۷:۵۹ صبح، توسط jafari_GIS.)
۲۸-۶-۱۳۹۵ ۰۷:۵۱ صبح
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان