Bing地图 - 放大阵列和长度

时间:2013-12-26 16:21:26

标签: bing-api bing-maps

我有两个gps位置数组:lats []和longs [] 我使用这些数组将图钉放到地图上。放置之后,我想放大图钉区域。请帮我完成这个代码。谢谢。

function LoadPushPins() 
 {

   var icon = new VECustomIconSpecification();

   for (var i = 0; i < lats.length; i++) 
    {
     var pp = new VEShape(VEShapeType.Pushpin, new VELatLong(lats[i],longs[i]));

     pp.SetDescription(theaddress[i]);
     pp.SetTitle(descs[i]);
     icon.Image = theicon[i];
     pp.SetCustomIcon(icon);
     map.AddShape(pp);
     }

   }

3 个答案:

答案 0 :(得分:1)

Bing提供了一种方法来实现推针组的最佳视图(位置和缩放)。

var arrPushPinsLocations = [];

//Create array of locations using the longitude and latitude of yours pushpins.
arrPushPinsLocations.push(new Microsoft.Maps.Location(longitude, latitude));

//Create location rectangle object from arrPishPunsLocations and set the best view.  
map.setView({ bounds: Microsoft.Maps.LocationRect.fromLocations(arrPushPinsLocations)});

一个例外,LocationRect必须包含至少两个位置点才能工作。 解决方法是添加另一个真正位置附近的虚拟位置。 例如: 真实:(54.000000,54.0000000) 虚拟:(54.000001,54.0000001)

答案 1 :(得分:0)

我注意到您使用的是Bing地图的旧v6.3版本。我强烈建议升级到更强大的Bing Maps v7。这也是其他人的代码所基于的。如果您打算继续使用v6.3(不推荐),您可以通过计算坐标数组的最佳中心和缩放级别,然后将其传递到地图的SetCenterAndZoom方法中来执行您想要的操作。以下是有关如何计算这些值的旧博文:http://rbrundritt.wordpress.com/2009/07/21/determining-best-map-view-for-an-array-of-locations/

请注意,v6.3的文档不再在线,请将其作为未来的暗示。您可以在此处找到v7的迁移指南:http://social.technet.microsoft.com/wiki/contents/articles/20958.migrating-bing-maps-v6-3-to-v7.aspx

答案 2 :(得分:-1)

您可以使用Bing Map的setView方法。

您可以替换自己的纬度&amp;经度值。

var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"),{credentials:"Your Bing Map Credentials"}); 
map.setView({center:new Microsoft.Maps.Location(<latitude>, <longitude>), zoom: 9} );