Я пытаюсь отфильтровать свои маркеры с двумя возможными значениями, Женский и Мужской. Я использую функцию, найденную в https://jsfiddle.net/peter/drytwvL8/, и пытаюсь создать раскрывающийся список. когда я запускаю код, он говорит мне, что пол свойства не определен. Я думал, что уже определил свойство пола как
var пол = места. Пол
когда я выбираю значение, такое как «Женский», мне бы хотелось, чтобы отображались только маркеры, содержащие значение «Женский», а все «мужские» точки скрыты.
var locations = [{
lat:42.4135648,
lon:-83.1775028,
Address: 'address values',
Program_Name: 'program values',
Service_Restriction: 'service values',
Gender: 'Female'
];
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: {lat:42.3965006 , lng: -83.2464787}
});
var i;
var infowindow = new google.maps.InfoWindow({
content: ''
});
gmarker.push(marker);
for (i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
map: map,
title: locations[i].Program_Name,
position: new google.maps.LatLng(locations[i].lat,
locations[i].lon),
gender: locations.Gender
});
// place content you wound like to show in there
bindInfoWindow(marker,map,infowindow,"<p>" +'Program:
'+locations[i].Program_Name +"<br/>" + "Address: "
+locations[i].Address +"<br/>"+ 'Service Restriction: ' +
locations[i].Service_Restriction + "<br/>" + "Gender:
"+locations[i].Gender+ "</br>" +"</p>", locations[i].Program_Name);
}
}
var gmarker =[];
function bindInfoWindow(marker, map, infowindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(html);
infowindow.open(map, marker);
map.panTo(this.getPosition());
});
var gender = locations.Gender
filterMarkers = function (gender) {
for (i = 0; i < locations.length; i++) {
marker = gmarker[i];
// If is same category or category not picked
if (marker.gender == gender || gender.length === 0) {
marker.setVisible(true);
}
// Categories don't match
else {
marker.setVisible(false);
}
}
}
}
<select id="type" onchange="filterMarkers(this.value);">
<option value="">Please select category</option>
<option value="Male">Male</option>
<option value="Female">Female</option>
сообщение, которое я получил,
Uncaught TypeError: Невозможно прочитать свойство 'пол' из неопределенного