2016-10-26 3 views
-1

私は、アコーディオン要素をクリックしたときに特定のマップマーカーを表示しようとしていて、他のマーカーが存在する場合は非表示にします。jQueryのクリックイベントでマップマーカーを置き換える方法は?

私はこれで私のマーカーを構築しています:私はこれでsetMarkers関数に渡されるデータの交互てい

function setMarkers(data) { 

    var items, markers_data = []; 

    if (data.length > 0) { 
     items = data; 
     j = 0; 
     for (var i = 0; i < items.length; i++) { 
      var item = items[i]; 
      j++ 
      lat_long = ('"' + item.martygeocoderlatlng + '"'); 
      lat_long = lat_long.replace(/\(|\)/g, ''); 
      lat_long = lat_long.split(','); 

      lat = lat_long[0].replace('"', ''); 
      lng = lat_long[1].replace('"', ''); 

      marker_id = item.id; 

      if (lat != undefined && lng != undefined) { 
       var icon = 'community.png'; 

       markers_data.push({ 
        lat: lat, 
        lng: lng, 
        id: marker_id, 
        title: item.title.rendered, 
        infoWindow: { 
         content: '<div class="infoWindow"><h3>' + item.title.rendered + '</h3>' + item.content.rendered + '<strong>Phone:</strong> <a target="_blank" href="tel:' + item.aoi_phone + '">' + item.aoi_phone + '</a><!--<br><strong>Hours:</strong> ' + item.aoi_hours + '--><br><a href="' + item.aoi_url + '">Visit Website</a></div>' 
        }, 
        icon: { 
         url: '/wp-content/plugins/lstar-custom/assets/img/list_marker_' + j + ".png", 
         //anchor:new google.maps.Point(scaledSize/4,scaledSize/4), 
         size: new google.maps.Size(25, 25) 
        }, 
        animation: google.maps.Animation.DROP, 
       }); 
      } 
     } 
    } 
    // console.log(markers_data); 
    map.addMarkers(markers_data); 

} 

jQuery('#poi_cat_amusementattractions').one('click', function(e) { 
    var xhr_cat_amuse = jQuery.getJSON('path/to/json'); 
    xhr_cat_amuse.done(setMarkers); 
}); 
jQuery('#poi_cat_dining').one('click', function(e) { 
    var xhr_cat_dine = jQuery.getJSON('path/to/json'); 
    xhr_cat_dine.done(setMarkers); 
}); 

マップ上のマーカーをもたらすために動作しますが、要素をクリックすると、既存のマーカーを削除するにはどうすればよいですか?

また、このプラグインをgmapsに使用しています。 https://hpneo.github.io/gmaps/

+1

関数 'addMarkers'は、[標準機能](https://developers.google.com/ではありませんマップ/ドキュメント/ javascript /マーカー)のAPIマップを使用しているので、もしあなたがそれを自分で書いたのであれば、あるいはそのライブラリを使っているなら、この関数が正確に何をしているのかを知らなければ助けにならないでしょう。 – Dekel

+0

@Dekel申し訳ありませんこのツールを使用しています。https://hpneo.github.io/gmaps/ –

+0

答えが見つかりましたか? – Dekel

答えて

1

コメントに記載されているライブラリには、removeMarkers function(マップに既に追加されているすべてのマーカーがクリアされています)があります。

あなたは正しいaddMarkersへお電話の前に、あなたのsetMarkers関数の中で、この関数を呼び出すことができます。

function setMarkers (data) { 
    ... 

    // Clear the map from all markers 
    map.removeMarkers(); 

    // Add new markers to the map 
    map.addMarkers(markers_data); 
} 
関連する問題