Как выбрать маркеры с помощью фильтра на Google Maps - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь отфильтровать свои маркеры с двумя возможными значениями, Женский и Мужской. Я использую функцию, найденную в 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: Невозможно прочитать свойство 'пол' из неопределенного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...