-1
私のマップにはjsonのポイントが表示されていますが、以下のコードでこれらのポイントをフィルタリングすることはできません。私はマーカとフィルタの間に接続があるはずだと思いますが、私はどのようにしているのか分かりません。marker.setVisibleはGoogleマップの機能ではありません
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
scrollwheel: false,
zoom: 8
});
var points = 'http://www.example.com/json.json';
$.getJSON(points, function(json1) {
$.each(json1, function(key, data) {
var latLng = new google.maps.LatLng(data.latlng.lat, data.latlng.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: map,
category: data.category,
//icon: iconBase + data.posture + '.svg',
title: data.title
});
});
filterMarkers = function (posture) {
for (i = 0; i < json1.length; i++) {
marker = json1[i];
// If is same category or category not picked
if (marker.category == category || category.length === 0) {
marker.setVisible(true);
}
// Categories don't match
else {
marker.setVisible(false);
}
}
}
$('.button-group a').click(function(e){
var category = $(this).attr('data-filter');
filterMarkers(category);
});
});
解決策はありますか?
エラーは何ですか?問題を解決するためにどのような手順を試しましたか? – Magix
フィルタアンカー( '.button-group a')をクリックしようとするとコンソールはエラーを返します' marker.setVisible is not function' –
必要に応じて 'marker.setVisible()'を行う 'marker' Googleのマーカーそのものになる。あなたのjson要素 'json1 [i]'の1つで関数を実行しようとしているようです。 Googleマーカーを作成する際に配列にGoogleマーカーを格納し、その関数を実行するときに正しい配列アイテムにアクセスする必要があります。 –