我有两个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);
}
}
答案 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} );