2
私は地図上にマーカーを持っています。 JSONの日付に応じてマーカーの不透明度を設定しました。インフォメーションウィンドウのボタンをクリックした後にGoogleマップのマーカープロパティを変更する
マップがロードされると、マーカーの一部が0.5不透明になり、一部が1不透明になります。
マーカーの情報ウィンドウにはボタンがあります。このボタンをクリックすると、不透明度を1に変更したいと考えています。
以下は私のコードの一部です。すべてのヘルプははるかにあなたがdata-entry-id
に保存されているマーカーのIDを持っているので、あなたが使用することができ
//For every item in JSON
$.each(dbJSON, function(key, data) {
var opacity = 1;
var today = new Date();
var fadeDate = new Date(data.last_rated); //get the date last rated
fadeDate.setDate(fadeDate.getDate() + 1); //and add 1 date to it to specify the day when the icon should fade
if(Date.parse(today) > Date.parse(fadeDate)) {
console.log('fade');
opacity = 0.5;
} else {
console.log('show');
opacity = 1;
}
var postal_town = data.location;
geocoder.geocode({ 'address': postal_town}, function(results, status) {
//...
console.log(opacity);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: data.manufacturer_name,
icon: image,
rating: data.rating,
opacity: opacity
});
markers[data.id] = marker;
marker.addListener('click', function() {
var contentString = '<div id="content">'+
'<h1>' + data.manufacturer_name + '</h1>' +
'<button id="seen-it" data-rating="' + data.rating + '" data-entry-id="' + data.id + '">Seen it</button>' +
'<p><strong>Rating: </strong><span id="rating">' + markers[data.id].rating + '</span></p>' +
'</div>';
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
});
});
//Do something when the #seen-it button is clicked
$(document).on('click', '#seen-it', function(event){
//...
});
それは機能し、私は完全になぜそうは分かりません! :)ありがとう –
@OliverEvansはあなたに混乱する部分を教えてくれて、私は説明しようとします。 –
私はそれを得ない。オブジェクトの不透明度の値を変更していて、setOpacityメソッドを使用していないと思っていました。ありがとうございます –