// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.education;
import org.openstreetmap.josm.data.coor.EastNorth;
import org.openstreetmap.josm.data.coor.LatLon;
import org.openstreetmap.josm.data.osm.DataSet;
import org.openstreetmap.josm.data.osm.Node;
import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
import org.openstreetmap.josm.plugins.opendata.core.io.tabular.DefaultCsvHandler;
import org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.DataGouvDataSetHandler;
public class Etab1er2ndDegreHandler extends DataGouvDataSetHandler {
private class EtabCsvHandler extends DefaultCsvHandler {
public EtabCsvHandler() {
setCharset(OdConstants.ISO8859_15);
setHandlesProjection(true);
}
@Override
public LatLon getCoor(EastNorth en, String[] fields) {
return getLatLonByDptCode(en, fields[0].substring(0, 3), false);
}
}
public Etab1er2ndDegreHandler() {
super("Géolocalisation-des-établissements-d'enseignement-du-premier-degré-et-du-second-degré-du-ministère-d-30378093");
setName("Établissements d'enseignement du premier degré et du second degré");
setDownloadFileName("MENJVA_etab_geoloc.csv");
setCsvHandler(new EtabCsvHandler());
}
@Override
public boolean acceptsFilename(String filename) {
return acceptsCsvFilename(filename, "MENJVA_etab_geoloc(\\.csv-fr)?");
}
@Override
public void updateDataSet(DataSet ds) {
for (Node n : ds.getNodes()) {
n.put("amenity", "school");
replace(n, "numero_uai", "ref:FR:UAI");
replace(n, "appellation_officielle_uai", "name");
add(n, "lib_nature", "school:FR",
new String[]{".*MATERNELLE.*", ".*ELEMENTAIRE.*", "COLLEGE.*", "LYCEE.*"},
new String[]{"maternelle", "élémentaire", "college", "lycée"});
n.remove("etat_etablissement"); // Toujours a 1
n.remove("nature_uai"); // cle numerique associe au champ lib_nature, redondant, donc
n.remove("patronyme_uai"); // deja dans le nom
n.remove("sous_fic"); // cycle ? 1 pour ecoles, 3 pour colleges et lycees
// Voir http://www.infocentre.education.fr/bcn/domaine/voir/id/31
}
}
}