0

Google Maps APIマーカークラスラのレベルサイズを変更しようとしています。 マーカーの小サイズ(青色のアイコン/ m1):2-9マーカー、中程度のサイズ(黄色のアイコン/ m2):10-100マーカー、大きなレベル(赤いアイコン/ m3)サイズ:101-250マーカー。 (私が間違っていれば私を修正してください)。Google Maps APIマーカークラスラ変更レベルサイズ

レベルサイズの値をデフォルトより小さく変更したいとします。私は同じ話題の別のスレッドを見つけましたが、私はまだ明確なポイントを得ていませんでした。

これは私が意味Google MapsのAPIマーカークラスタアイコンです:

Google Maps API Marker Clusterer Icon

PS:私は、私はサイズの値を変更する方法を意味し、クラスタラのアイコンを変更する方法については言及しませんでした。 Ex:マーカーのレベルサイズを青(m1)、黄(m2)、赤(m3)にクラスタリングする方法を教えてください。私が以前に言及したようなデフォルトサイズは、m1に2〜9個のマーカーが含まれているので、サイズ値を2〜5個のマーカーに変更するだけですか?

+0

[GoogleマップApi v3のカスタムクラスターアイコン]の複製(https://stackoverflow.com/questions/4416089/google-maps-api-v3-custom-cluster-icon) –

+0

クラスターアイコンを変更する方法、私はサイズの値を変更する方法を意味した。 Ex:マーカーのレベルサイズを青(m1)、黄(m2)、赤(m3)にクラスタリングする方法を教えてください。私が以前に言及したようなデフォルトサイズは、m1に2〜9個のマーカーが含まれているので、サイズ値を2〜5個のマーカーに変更するだけですか? –

+0

関連する質問:[Google Mapsでクラスタマーカーの数字を隠すにはどうすればいいですか?](https://stackoverflow.com/questions/39335396/how-to-hide-the-numbers-on-a-cluster-marker- Googleマップ内) – geocodezip

答えて

0

カスタムCalculator関数を作成する必要があります。 source(Googleのマニュアルで参照されているバージョンのうち、使用していないバージョンのドキュメントで確認してください)。デフォルトcalculator機能:

/** 
* The function for calculating the cluster icon image. 
* 
* @param {Array.<google.maps.Marker>} markers The markers in the clusterer. 
* @param {number} numStyles The number of styles available. 
* @return {Object} A object properties: 'text' (string) and 'index' (number). 
* @private 
*/ 
MarkerClusterer.prototype.calculator_ = function(markers, numStyles) { 
    var index = 0; 
    var count = markers.length; 
    var dv = count; 
    while (dv !== 0) { 
    dv = parseInt(dv/10, 10); 
    index++; 
    } 

    index = Math.min(index, numStyles); 
    return { 
    text: count, 
    index: index 
    }; 
}; 

それを設定する機能(その戻り値を記述しているが、インデックスはアイコンの配列へのインデックスで、テキストがクラスタに表示するテキストです)

/** 
* Set the calculator function. 
* 
* @param {function(Array, number)} calculator The function to set as the 
*  calculator. The function should return a object properties: 
*  'text' (string) and 'index' (number). 
* 
*/ 
MarkerClusterer.prototype.setCalculator = function(calculator) { 
    this.calculator_ = calculator; 
};