如何在Bing Maps中的群集Push Pins上设置自定义图标?

时间:2013-04-01 21:22:49

标签: javascript customization shapes bing-maps

我要做的是更改使用Bing Maps Ajax Control 6.3为Bing Map设置群集配置时显示的默认图标。

我有一个加载Bing Map的函数:

function getMap() {
    map = new VEMap('map_canvas');
    map.SetDashboardSize(VEDashboardSize.Tiny);
    var latLong = new VELatLong(21.983801, -101.557617);
    map.LoadMap();
    var customPin = '<div style="position:relative; left:-10px;top:-20px;"><img src="../Content/images/icons/pin1.png" style="width:40px; height:40px"></div>';
    icon.CustomHTML = custom;
    var options = new VEClusteringOptions(icon, null);
    map.GetShapeLayerByIndex(0).SetClusteringConfiguration(VEClusteringType.Grid, options);
    map.SetCenterAndZoom(latLong, 6);
    map.SetMouseWheelZoomToCenter(false);
    map.EnableShapeDisplayThreshold(true);
    map.AttachEvent("onclick", singleMouseHandler);
    map.AttachEvent("ondoubleclick", doubleClickMouseHandler);
}

但到目前为止它一直显示相同的默认图标。我在这里错过了什么?

我想知道的另一件事是,如果有一个方法可以更改自定义图标,如果群集中的引脚发生变化,就好像我有5个绿色的Push Pins但其中一个更新为蓝色Push Pin,是否有更改代表该群集的图标的方法?

2 个答案:

答案 0 :(得分:0)

我很久以前为公司网站做过开发。您是否尝试过此处提供的交互式SDK? http://www.bingmapsportal.com/isdk/ajaxv7#Pushpins15
我添加了图钉开发的参考文献 http://www.microsoft.com/maps/developers/web.aspx

答案 1 :(得分:0)

我发现我的方法不起作用的原因,我一直在想我正在处理带有接收参数的构造函数的类,在这种情况下,VEClusteringOptions类在其构造函数中不接收参数。我必须单独设置Icon属性:

function getMap() {
    map = new VEMap('map_canvas');
    map.SetDashboardSize(VEDashboardSize.Tiny);
    var latLong = new VELatLong(21.983801, -101.557617);
    map.LoadMap();
    var customPin = '<div style="position:relative; left:-10px;top:-20px;"><img src="../Content/images/icons/pin1.png" style="width:40px; height:40px"></div>';
    icon.CustomHTML = custom;
    var options = new VEClusteringOptions();
    options.Icon = icon; // here's the "big" difference
    map.GetShapeLayerByIndex(0).SetClusteringConfiguration(VEClusteringType.Grid, options);
    map.SetCenterAndZoom(latLong, 6);
    map.SetMouseWheelZoomToCenter(false);
    map.EnableShapeDisplayThreshold(true);
    map.AttachEvent("onclick", singleMouseHandler);
    map.AttachEvent("ondoubleclick", doubleClickMouseHandler);
}

现在我的自定义群集图标正在加载,我需要在将来更多地习惯属性的概念。