Trato de establecer un "gráfico de disparos" filtrable como http://graphics.latimes.com/kobe-every-shot-ever/ con leaflet. Tengo un archivo geojson que almacena todos los datos de las tomas, los tengo mostrando en una capa.
Ejemplo GEOJSON:
{
"type": "Feature",
"properties": {
"ID": 2,
"SEASON_SHO": "1998-1999",
"GAME_TYPE": "Regular",
"PERIOD": 1,
"MINUTES_RE": "06:25:00",
"ACTION_TYP": "Jump Shot",
"SHOT_TYPE": "2-PT-Wurf",
"SHOT_DISTA": 15,
"GAME_DATE": "05.02.1999",
"HEIM": "SEA",
"GAST": "DAL",
"GEGNER": "Seattle SuperSonics",
"SHOT_ATTEM": 1,
"SHOT_MADE_": 0
},
"geometry": {
"type": "Point",
"coordinates": [
-0.314959,
-0.159125
]
}
}
He creado una capa para todas las tomas y un grupo de capas para filtrar los marcadores.
var url = 'data/Wuerfe.geojson';
var allewuerfe;
allewuerfe = L.geoJson(null, {
onEachFeature: onEachFeature,
style: style,
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, allewuerfe);
}
});
$.getJSON(url, function (data) {
allewuerfe.addData(data);
});
var data = L.layerGroup([
]);
data.addLayer(allewuerfe);
data.addTo(map);
Ya tengo algunos filtros-botones para eventos individuales, como "reset".
<button class="btn reset-btn" id="all">Reset</button>
document.getElementById("all").addEventListener('click', function (event) {
data.clearLayers();
data.addLayer(allewuerfe);
data.addTo(map);
});
Pero lo que me gustaría configurar es un filtro desplegable para "tiros fallados", "tiros acertados" y "todos los tiros".
<select name="shot-result" class="custom-select" id="shotresult">
<option value="all">All Shots</option>
<option value="Made">Made</option>
<option value="Missed">Missed</option>
</select>
La información de datos para esto se almacena en el geojson en "SHOT_MADE_", 1 significa que el tiro fue hecho, 0 tiro fue perdido.
Me gustaría obtener un código-ejemplo de cómo hacer funcionar el filtro.