Bing映射了silverlight控制图钉缩放问题

时间:2010-04-05 23:08:24

标签: image silverlight bing-maps scaling

基本上我的问题是我已经改编了一段代码

http://social.msdn.microsoft.com/Forums/en-US/vemapcontroldev/thread/62e70670-f306-4bb7-8684-549979af91c1

这正是我想要它做的,即根据地图的缩放级别缩放一些图钉图像。唯一的问题是我已经调整了这个代码来运行bing map 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);

我假设它与bing地图锚定其UIelements的不同方式有关。有关详细信息也非常有用。谢谢!

3 个答案:

答案 0 :(得分:1)

尝试将自己的固定大小的bitmapimage添加到地图而不是使用图钉类

答案 1 :(得分:1)

由于地球软件的响应,我设法解决了我的问题。只需添加图像direclty(不涉及图钉类),为其添加固定大小并相应地设置缩放的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;

答案 2 :(得分:0)

这是一个示例,演示如何使用Pushpin对象(而不是Image对象)使用Map的ZoomLevel自动缩放图钉,并将它们保存在正确的位置。所有这些都得到了自定义IValueConverter,ScaleTransform和一点数据绑定的帮助。

http://pietschsoft.com/post/2010/06/04/Resizing-and-Auto-Scaling-Pushpin-in-Bing-Maps-Silverlight.aspx