如何使用ArcGIS for WPF自定义符号进行数据绑定?
Esri的ArcGIS for WPF似乎没有任何真正的MVVM支持或绑定支持;除非我弄错了 无论如何,我正在创建一个跟踪应用程序,它需要通过GPS坐标跟踪对象 我已经实现了一个自定义的如何使用ArcGIS for WPF自定义符号进行数据绑定?,wpf,mvvm,arcgis,esri,Wpf,Mvvm,Arcgis,Esri,Esri的ArcGIS for WPF似乎没有任何真正的MVVM支持或绑定支持;除非我弄错了 无论如何,我正在创建一个跟踪应用程序,它需要通过GPS坐标跟踪对象 我已经实现了一个自定义的IGeoPositionWatcher,它与GpsLayer一起使用。这一切都很完美。我可以修改GPS坐标,我在地图上的小点会平稳地移动到它最后的休息点。我的问题是我不能使用GpsLayer附带的小点和箭头。我需要一个自定义的标记符号类似于以下内容: <Grid> <Image Sourc
IGeoPositionWatcher
,它与GpsLayer
一起使用。这一切都很完美。我可以修改GPS坐标,我在地图上的小点会平稳地移动到它最后的休息点。我的问题是我不能使用GpsLayer
附带的小点和箭头。我需要一个自定义的标记符号
类似于以下内容:
<Grid>
<Image Source="{Binding Pogostick.HeightImage}" />
<TextBlock Text="{Binding Pogostick.PogoId}" />
</Grid>
我有一个“pogostick”列表(数量未知,在任何给定时刻都会发生变化),这些“pogostick”总是由GPS跟踪,需要根据其状态更新符号。问题是,我无法使Pogostick
对象成为自定义MarkerSymbol.ControlTemplate
的DataContext
,并且我的图像源和文本的
我试图避免在graphicallayer
中使用Graphic
,并希望它能与GpsLayer
一起使用。有没有办法做到这一点?我做得对吗。。。我应该使用图形层
还是功能层
我想在用户的桌面应用程序上呈现这些跟踪的pogostick,而不是通过编辑地图服务上的图层或功能。也许我应该使用自定义渲染器?我已经找到了一种方法。我创建了一个类,该类继承自MarkerSymbol
,该类具有dependencProperty
,其中包含我要绑定到的对象(Pogostick类)
然后我在资源字典中创建一个ControlTemplate
,如下所示:
<ControlTemplate x:Key="PogostickMarker">
<StackPanel>
<Image Source="{Binding Symbol.Entity.HeightImage}" />
<TextBlock Text="{Binding Symbol.Entity.PogostickId}" />
</StackPanel>
</ControlTemplate>
注意:当映射的useCarleratedDisplay
属性设置为True
时,不能使用此方法。如果有人知道如何在属性设置为true的情况下使用此方法,请告诉我
<ControlTemplate x:Key="PogostickMarker">
<StackPanel>
<Image Source="{Binding Symbol.Entity.HeightImage}" />
<TextBlock Text="{Binding Symbol.Entity.PogostickId}" />
</StackPanel>
</ControlTemplate>
GpsLayer layer = new GpsLayer();
EntityMarkerSymbol marker = new EntityMarkerSymbol() { Entity = pogoStick };
marker.ControlTemplate = Application.Current.Resources["ConvoyMarker"] as ControlTemplate;
layer.LocationMarkerSymbol = marker;