必应地图Silverlight控件的图钉缩放问题

3
基本上,我的问题是我在这里找到了一段代码(http://social.msdn.microsoft.com/Forums/en-US/vemapcontroldev/thread/62e70670-f306-4bb7-8684-549979af91c1)。该代码可以根据地图的缩放级别来缩放一些推针图片。唯一的问题是,我已经将此代码改编为与bing maps silverlight控件一起运行(而不是像原始示例中的虚拟地球),现在图像会正确地缩放,但它们被重新定位,并且仅在我的缩放级别最大时才达到所需位置。有什么想法吗?非常感谢您的帮助 :) 下面是修改后的代码:
var layer = new MapLayer();
map.AddChild(layer);

//Sydney
layer.AddChild(new Pin
{
    ImageSource = new BitmapImage(new Uri("pin.png", UriKind.Relative)),
    MapInstance = map
}, new Location(-33.86643, 151.2062), PositionMethod.Center);

变成类似于这样的东西
layer.AddChild(new Pin
{
    ImageSource = new BitmapImage(new Uri("pin.png", UriKind.Relative)),
    MapInstance = map
}, new Location(-33.92485, 18.43883), PositionOrigin.BottomCenter);

我猜想这可能与必应地图锚定其UI元素的不同方式有关。关于此的详细信息也非常有用。谢谢!

3个回答

1
感谢earthware的回复,我成功解决了我的问题。只需要直接添加图片(不涉及推针类),为其添加固定大小并相应地设置缩放的CenterX和CenterY属性。代码示例如下:
image.Source = new BitmapImage(new Uri("pin.png", UriKind.Relative));
image.Stretch = System.Windows.Media.Stretch.None;
image.Height = 152;
image.Width = 116;

layer.AddChild(image, new Location(-33.86643, 151.2062), PositionOrigin.BottomCenter);
image.RenderTransform = scaleTr;

scaleTr.CenterX = image.Width / 2; //image is alligned bottom center (see above)
scaleTr.CenterY = image.Height;

1
尝试将自己的固定大小位图添加到地图上,而不是使用Pushpin类。

没错,好了,之前的帖子我很抱歉。这只是将转换大小设置为固定值,然后相应地设置centerx和centery属性的问题。感谢earthware :) - Rares Musina

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接