虚拟地球(Bing)Pin在缩放级别更改时“移动”

时间:2010-04-19 22:36:36

标签: bing-maps

创建虚拟地球(Bing)地图,以在特定点显示简单的引脚。现在一切正常 - 引脚显示,标题和说明在悬停时弹出。

地图最初完全放大到引脚,但是STRANGE问题是当我缩小时它会在地图上稍微向下移动。因此,如果我开始使用指向多伦多某处的针脚,如果我缩小到足够的数量,那么针脚会在安大略湖中间结束!如果我平移地图,则引脚正确地保持在正确的位置。当我放大时,它会稍微向上移动,直到它恢复到原来的正确位置!

我已经寻找了一段时间的解决方案,但我根本无法理解它。请帮忙!!

非常感谢!

import with javascript: http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2

$(window).ready(function(){

    GetMap();
});

map = new VEMap('birdEye');

map.SetCredentials("hash key from Bing website");

map.LoadMap(new VELatLong(43.640144 ,-79.392593), 1 , VEMapStyle.BirdseyeHybrid, false,  VEMapMode.Mode2D, true, null);

var pin = new VEShape(VEShapeType.Pushpin, new VELatLong(43.640144 ,-79.392593));

pin.SetTitle("Goes to Title of the Pushpin");

pin.SetDescription("Goes as Description.");

map.AddShape(pin);

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。但是,我的代码看起来使用的是Microsoft.Maps AJAX方法。 我在查询facebook的api for user_events和friend_events时获得的bing地图上设置了事件的位置。一个事件以纬度和经度返回给我。 我使用这些坐标为单个引脚和群集引脚放置一个自定义样式的引脚。 当我缩小时,魔药会移动,并提供关于事件位置的不真实的表示。

解答:

我发现你必须为图钉设置“锚”属性。

这是我发现的效果很好。

    var pushpinOption = {
      icon : 'images/cluster_custom.png',
      text : ''+ clusterInfo.dataIndices.length + '',
      textOffset:offset,
      anchor :  new Microsoft.Maps.Point(8, 8)
    };

资源: 使用锚定pushpinoption的示例 注意*查看“加载模块群集” 您需要单击“加载模块”部分中的第一个链接 http://www.bingmapsportal.com/isdk/ajaxv7#LoadingDynamicModule2

图钉选项“锚”的文档 http://msdn.microsoft.com/en-us/library/gg427629.aspx

答案 1 :(得分:0)

不完全是你正在寻找的答案,但是,我确实遇到了问题,并发现我的引脚上发生了“移动”,我已经宣布了比例变换。

  StoreEditPushPin pin = new StoreEditPushPin(Colors.Red);
  pin.Location = new Location(43.640144 ,-79.392593);
  ScaleTransform st = new ScaleTransform();
  st.ScaleX = 0.55;
  st.ScaleY = 0.55;
  pin.RenderTransform = st;
  PushPinLayer.AddChild(pin, d);

缩小时,比例因子将应用于引脚,并且位置会发生偏移。我会看看你的Pushpin类,看看转换是否存在。

答案 2 :(得分:0)

尝试将PositionOrigin添加到图钉,将其设置为“中心”或其他任何内容。