我在Bing地图上生成地图制作者。如果我使用在XAML中添加的设计时地图图层:
<bm:Map.Children>
<!-- Data Layer-->
<bm:MapLayer Name="DataLayer"/>
......效果很好。但是,我决定如果我在地图上绘制多个不同的标记集,我应该将每个集合放在它自己的地图图层上。所以我添加了这样的代码:
private async void Gener8MapMarkers(List<PhotraxBaseData> _pbd, bool Cre8DynamicMapLayer)
{
. . .
if (Cre8DynamicMapLayer)
{
MapLayer newLayer = new MapLayer();
photraxMap.Children.Add(newLayer);
AddPushpin(loc, stuff, newLayer);
}
else
{
AddPushpin(loc, stuff, DataLayer);
}
. . .
但请注意当我执行此操作时,图钉如何通过弹出窗口显示(仅当我动态创建MapLayer [s]时):
将后续集合添加到自己的MapLayer中是一个坏主意(我应该将所有内容添加到&#34; DataLayer&#34;)?
如果没有,如何在没有通过弹出窗口显示图钉的情况下使用多个MapLayers?
是的,Marvin Smit的建议有效,即:
if (Cre8DynamicMapLayer)
{
MapLayer newLayer = new MapLayer();
//photraxMap.Children.Add(newLayer);
photraxMap.Children.Insert(0, newLayer);
AddPushpin(loc, stuff, newLayer);
}
他的兄弟Rik可能是更好的篮球运动员,但是我怀疑Rik可以从上篮中解脱出来。
答案 0 :(得分:1)
您正在为在弹出图层顶部创建的图钉堆叠正在使用的图层。
通过更改顺序,您可以将图层添加到堆栈中,从而获得所需的行为。
而不是
photraxMap.Children.Add(newLayer);
使用
photraxMap.Children.Insert(0, newLayer);
这将导致新图层被插入&#39;底部&#39;层而不是顶层&#39; (如果您认为&#39; top&#39;层最接近您)