0

私がやろうとしているのは、Bing Maps Ajax Control 6.3 を使用して Bing Map のクラスタリング構成を設定するときに表示されるデフォルトのアイコンを変更することです。

次のような Bing マップを読み込む関数があります。

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

ただし、これまでのところ、同じデフォルトのアイコンが表示され続けています。ここで何が欠けていますか?

私が疑問に思っていたもう 1 つのことは、クラスター内のピンが変更された場合にカスタム アイコンを変更する方法があるかどうかです。たとえば、5 つの緑色のプッシュ ピンがあり、そのうちの 1 つが更新されて青色のプッシュ ピンになった場合、変更する方法はありますか?そのクラスターを表すアイコン?

4

2 に答える 2

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

これで、カスタム クラスター アイコンがうまくロードされました。今後、プロパティの概念に慣れる必要があります。

于 2013-04-03T17:07:06.533 に答える