0

创建了一个虚拟地球 (Bing) 地图以在特定点显示一个简单的图钉。现在一切正常——图钉出现,标题和描述在悬停时弹出。

地图最初完全放大到大头针,但奇怪的问题是,当我缩小时,它在地图上移动得稍微低了一点。因此,如果我从指向多伦多某处的大头针开始,如果我缩小到足够大,大头针最终会出现在安大略湖的中间!如果我平移地图,则图钉正确地停留在正确的位置。当我重新放大时,它会稍微向上移动,直到它回到原来的正确位置!

我环顾四周寻找解决方案,但我根本无法理解。请帮忙!!

非常感谢!

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);
4

3 回答 3

4

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

回答:

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

这是我发现效果很好的方法。

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

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

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

于 2012-02-23T04:01:00.803 回答
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 类,看看转换是否存在。

于 2011-01-10T20:32:12.513 回答
0

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

于 2011-07-22T23:43:24.233 回答