2013-09-25 53 views
0

我正在开发一个使用Bing Maps的Windows 8商店的地图,我在地图中绘制了几个atms和分支,而不是使用图钉,但是我创建了一个控件,被放置在相应的位置。 问题是,当缩放级别为(例如)13时,引脚距离它们的实际位置有点远,并且当我放大引脚时就开始移动到实际位置。windows 8 bing地图图钉在放大/缩小时移动

有没有人有任何想法,我应该怎么做,以固定在他们的位置的引脚,尽管实际的地图缩放级别?

这是自动取款机我抽奖代码:

AgenciesMarkers Aginfo = new AgenciesMarkers(); 
Aginfo.Agclass = atm; 
Aginfo.ImageType = new BitmapImage(new Uri(typeSource, UriKind.Absolute)); 
Aginfo.Height = 65; 
Aginfo.Tapped += new Windows.UI.Xaml.Input.TappedEventHandler(AGMarker_click); Aginfo.SetValue(Canvas.ZIndexProperty, 4); 
MapLayer.SetPosition(Aginfo, (new Location(atm.Latitude, atm.Longitude))); mapLayer.Children.Add(Aginfo); mapLayer.Margin = new Thickness(25, 0, 0, 0); 

使用图钉它发生同样的事情。

+0

我认为你需要向我们展示一些代码。你为什么使用自己的别针?你可以使用标准的图钉重现问题吗? – franssu

+0

这是我的atms代码: 'AgenciesMarkers Aginfo = new AgenciesMarkers(); Aginfo.Agclass = atm; Agios.ImageType = new BitmapImage(new Uri(typeSource,UriKind.Absolute)); Aginfo.Height = 65; Aginfo.Tapped + = new Windows.UI.Xaml.Input.TappedEventHandler(AGMarker_click); Aginfo.Tapped + = new Windows.UI.Xaml.Input.TappedEventHandler(AGMarker_click); Agile.SetValue(Canvas.ZIndexProperty,4); Aginfo.SetValue(Canvas.ZIndexProperty,4); MapLayer.SetPosition(Aginfo,(new Location(atm.Latitude,atm.Longitude))); mapLayer.Children.Add(Aginfo); mapLayer.Margin =新厚度(25,0,0,0);' –

+0

我试图使用自定义图钉,但发生同样的事情,图钉移动:S –

回答

0

问题是,默认情况下自定义图钉/用户控件的位置使得位置与控件的左上角对齐。如果你没有做任何事情来解决这个问题,你会看到你的图钉随着你放大/缩小而出现在你的位置。解决这个问题的一个简单方法是在用户控件上添加一个负边距,以便它将控件与地图上的位置对齐。例如,如果要将用户控件置于某个位置的中心,请设置边距,使其x值等于控件的宽度/ 2,y值等于控件的高度/ 2。

+0

您可以发表一个代码示例,它会很有帮助。 TNX。 –

+0

看看这个博客文章,它解释了如何处理这个问题:https://rbrundritt.wordpress.com/2014/10/02/correcting-anchoring-pushpins-to-the-map/ – rbrundritt