痛い!頭が痛い。この問題に何時間も取り組んできましたが、私の脳は自分自身に折りたたまれています.
基本的に、Isotope は自分のページで html 要素を非表示または表示しています。埋め込みマップ上の対応する Google マップ マーカーを非常に効率的な方法で非表示または表示する必要があります (多数の Google マップ マーカー)。
だから... オブジェクトでいっぱいの MASTERARRAY[] があります。配列内の各オブジェクトには一意の ID があります。
つまり、MASTERARRAY[i].id
この MASTERARRY[] には、Google マップのマーカー オブジェクトも関連付けられています。
つまり、MASTERARRAY[i].marker
Isotope が自分のページの HTML 要素をフィルタリングするとき、一意の ID を持つオブジェクトを次の配列のいずれかにプッシュします。
ISOTOPEFILTER.resultsRemovedFromPage
ISOTOPEFILTER.resultsOnPageAfterFiltering
以下のコードは、MASTERARRAY を ISOTOPEFILTER.resultsRemovedFromPage と比較することにより、マップからマーカーを正常に削除します。ただし、この機能を効率的に使用して、ISOTOPEFILTER.resultsOnPageAfterFiltering配列に存在するIDのGoogleマップマーカーも表示する方法がわかりません。
function updateMap() {
var hiddenMarkerCount = 0;
for (i in ISOTOPEFILTER.resultsRemovedFromPage) {
for (var j=0; j<MASTERARRAY.length; j++) {
if (ISOTOPEFILTER.resultsRemovedFromPage[i].id == MASTERARRAY[j].id){
hiddenMarkerCount++;
MASTERARRAY[j].marker.setMap(null);
break;
}
}
}
console.log("We have hidden"+hiddenMarkerCount+" markers");
}