サイトで作業している Google マップがあります。マップには次のものが含まれます。
3 種類のマップ ピン ピン同士が近すぎると、ピンもクラスター化されます。
どのように今まで問題にぶつかったか: 私は、問題である各マーカー グループの可視性を切り替える機能を提供することを任されました.. マーカーがクラスター化されておらず、次のコードが正常に機能する場合、これは簡単です:
onOff = (onOff == 1) ? sawdays.accordion.map : null;
var mapArray;
switch( type ){
case 'bandb': mapArray = sawdays.accordion.bandbMarkers;
break;
case 'hotel': mapArray = sawdays.accordion.hotelMarkers;
break;
case 'inn': mapArray = sawdays.accordion.innMarkers;
break;
case 'pub': mapArray = sawdays.accordion.pubMarkers;
break;
}
if ( mapArray.length > 0 ) {
for (i in mapArray)
mapArray[i].setMap(onOff);
}
}
ただし、問題は、クラスター内のピンが切り替えられないことです。ホテルのピンをオフにしてクラスターをクリックすると、ホテルの地図のピンがまだ残っています...
クラスターに関する次の参照を見つけました: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.htmlしかし、私が求めているものを達成する方法がわかりません。
ここで壁にぶつかったと思います。クラスタの機能を維持しながらトグルの機能を追加する最善の方法は、マップを再描画することです (これはサイトhttp://www.sawdays.co.ukです)。 /special-places/content/search/?map#maptypeid=roadmap&zoom=9&lng=-3.36493113281245&lat=54.874929190748624 )。マップのデータはページの読み込み時に ajax されるため、マップを再構成するためにすべてのデータがクライアント マシンに既に存在します...
質問: クラスター内外の両方からマップ ピンの表示を切り替えることは可能ですか?