我正在通過MarkerClustererPlus繪製幾十萬個點,並且我想根據某些外部屬性設置羣組圖標(顏色)(而不是,基於數量標記代表)。MarkerClustererPlus:設置圖標顏色/網址的大小無關
我能想到做到這一點的唯一方法是創建多個MarkerClusterer對象並傳入不同的options
對象,但我覺得我會在這種情況下大受打擊。有沒有更好的辦法?
鑑於上面的圖像,我想139,24和5是黃色和213,25,30,和2爲紅色;如果可能的話,可以通過setOptions更新自己的風格/選項:
mc.group[0].setOptions({"url": imgPath +lookupThreshold(severity)+ '.svg' });
mc.group[1].setOptions({"url": imgPath +lookupThreshold(severity)+ '.svg' });
附:如果有人有興趣,我調整的lib因此集羣圖標通過提供SVG圖像和增加寬度&高度在選項擴展到其大小†對象:
var mcOptions = {
"styles": [{
"height": 19,
"url": img/map/clusters/",
"width": 19
},{
"height": 24,
"url": img/map/clusters/",
"width": 24
}, {…}]
};
for (var s = mcOptions.styles.length-1; s >= 0; s--)
{ mcOptions.styles[s].url += lookupThreshold(severity) + '.svg'; }
// lookupThreshold switches severity and returns a string: red, orange, …
然後加入下列到markerclusterer.js
:
line 275: this.backgroundSize_ = style.backgroundSize || "contain";
line 300: style.push('background-size:' + this.backgroundSize_ + ';');
†工程在FFX 19.0.2,鉻26.x,鉻金絲雀28.x,Safari瀏覽器6.0.2,IE 9.0.8(但不是Opera 12.15)。
編輯看起來創建MarkerClusterer的多個實例沒有太大的性能影響;然而,似乎傳遞給MC的屬性/選項對象是在MC的實例上共享。
解決我不得不修改近線665 MarkerClustererPlus庫克隆opt_options
(的lib是使用參考,由此引起的一切以前opt_options與最新的/最後一個通過被覆蓋)。
您是否檢查了此鏈接? http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/examples/advanced_example.html – Fabi
@Fabi,是的。集羣是不同集羣的原因是因爲它們的大小不同。我希望特定羣組的所有大小具有相同的顏色(但大小不同);不同的團體應該有不同的顏色。 – jacob
現在我不能看到除了你有什麼不同的解決方案 - 多個實例,因爲他們是不同的組。 – Fabi