├── .gitignore
├── img
├── bg.gif
├── asc.gif
├── desc.gif
├── help.png
├── home.png
├── refresh.png
├── help-gris.png
├── ld_habite.png
├── communes_voisines.png
└── export-to-csv-icon-13.jpg
├── sql
├── labels_statuts_fantoir.sql
├── infos_dept.sql
├── date_cache_dept.sql
├── numeros_osm_par_fantoir.sql
├── positions_OSM_as_GeoJSON.sql
├── fin_etape_cadastre_com.sql
├── rel_id_OSM_from_GeoJSON.sql
├── name_and_positions_OSM_as_GeoJSON.sql
├── fantoir_errone.sql
├── infos_commune_insee.sql
├── numeros_deja_dans_OSM.sql
├── insee_from_coords.sql
├── voies_OSM_non_rapprochees_insee.sql
├── way_id_OSM_from_GeoJSON.sql
├── fantoir_annule.sql
├── avancement_par_departement.sql
├── voie_insee.sql
├── commune_parente.sql
├── maj_population_2017.sql
├── cantons_sans_AC.sql
├── inspect_numeros.sql
├── listing_fantoir.sql
├── voies_seules_rapprochees_insee.sql
├── voisins_insee.sql
├── numeros_hors_osm_par_fantoir.sql
├── bilan_dept.sql
├── places_rapprochees_insee.sql
├── places_non_rapprochees_insee.sql
├── voies_seules_non_rapprochees_insee.sql
├── voies_recentes_manquantes.sql
├── create_table.sql
├── top_adresses_manquantes.sql
├── voies_adresses_non_rapprochees_insee.sql
├── voies_adresses_rapprochees_insee.sql
└── voies_recentes_manquantes_dept.sql
├── css
├── tablesorter
│ ├── images
│ │ ├── first.png
│ │ ├── last.png
│ │ ├── next.png
│ │ ├── prev.png
│ │ ├── ice-asc.gif
│ │ ├── ice-desc.gif
│ │ ├── loading.gif
│ │ ├── black-asc.gif
│ │ ├── black-desc.gif
│ │ ├── dropbox-asc.png
│ │ ├── green-asc.gif
│ │ ├── green-desc.gif
│ │ ├── white-asc.gif
│ │ ├── white-desc.gif
│ │ ├── dropbox-desc.png
│ │ ├── green-header.gif
│ │ ├── ice-unsorted.gif
│ │ ├── metro-loading.gif
│ │ ├── black-unsorted.gif
│ │ ├── dragtable-handle.png
│ │ ├── green-unsorted.gif
│ │ ├── metro-black-asc.png
│ │ ├── metro-black-desc.png
│ │ ├── metro-unsorted.png
│ │ ├── metro-white-asc.png
│ │ ├── metro-white-desc.png
│ │ ├── white-unsorted.gif
│ │ ├── dropbox-asc-hovered.png
│ │ ├── dropbox-desc-hovered.png
│ │ ├── bootstrap-black-unsorted.png
│ │ ├── bootstrap-white-unsorted.png
│ │ └── dragtable-handle.svg
│ ├── jquery.tablesorter.pager.min.css
│ ├── widget.grouping.min.css
│ ├── dragtable.mod.min.css
│ ├── highlights.min.css
│ ├── theme.jui.min.css
│ ├── filter.formatter.min.css
│ ├── theme.dark.min.css
│ ├── theme.blackice.min.css
│ ├── theme.default.min.css
│ ├── theme.blue.min.css
│ ├── theme.bootstrap_2.min.css
│ ├── theme.bootstrap.min.css
│ ├── theme.bootstrap_3.min.css
│ └── theme.metro-dark.min.css
├── style.css
├── style_liste_brute_fantoir.css
├── tablesorter.css
├── menu.css
├── style_voies_recentes_manquantes.css
├── style_top_adresses_manquantes.css
├── style_stats_dept.css
├── style_fantoir_annule.css
└── style_fantoir_errone.css
├── helpers.py
├── db.py
├── refresh.sh
├── README.md
├── labels_statut_fantoir.py
├── labels_statut_numero.py
├── refresh.py
├── LICENCE
├── osm_state.py
├── js
└── tablesorter
│ ├── parsers
│ ├── parser-huge-numbers.min.js
│ ├── parser-image.min.js
│ ├── parser-leading-zeros.min.js
│ ├── parser-date.min.js
│ ├── parser-date-iso8601.min.js
│ ├── parser-date-month.min.js
│ ├── parser-feet-inch-fraction.min.js
│ ├── parser-duration.min.js
│ ├── parser-date-two-digit-year.min.js
│ ├── parser-date-weekday.min.js
│ ├── parser-globalize.min.js
│ ├── parser-roman.min.js
│ ├── parser-ignore-articles.min.js
│ ├── parser-metric.min.js
│ ├── parser-date-extract.min.js
│ ├── parser-named-numbers.min.js
│ ├── parser-file-type.min.js
│ ├── parser-date-range.min.js
│ └── parser-network.min.js
│ ├── widgets
│ ├── widget-filter-type-insideRange.min.js
│ ├── widget-repeatheaders.min.js
│ ├── widget-currentSort.min.js
│ ├── widget-formatter.min.js
│ ├── widget-saveSort.min.js
│ ├── widget-columns.min.js
│ ├── widget-vertical-group.min.js
│ ├── widget-staticRow.min.js
│ ├── widget-toggle.min.js
│ ├── widget-storage.min.js
│ ├── widget-reflow.min.js
│ ├── widget-headerTitles.min.js
│ ├── widget-mark.min.js
│ ├── widget-view.min.js
│ ├── widget-chart.min.js
│ ├── widget-cssStickyHeaders.min.js
│ ├── widget-print.min.js
│ ├── widget-filter-formatter-select2.min.js
│ ├── widget-alignChar.min.js
│ ├── widget-sortTbodies.min.js
│ ├── widget-uitheme.min.js
│ └── widget-sort2Hash.min.js
│ └── extras
│ └── jquery.metadata.min.js
├── opensearch.xml
├── cantons_sans_AC.py
├── fantoir_errone.py
├── fantoir_annule.py
├── maj_population_2017_bilan.py
├── includes
├── footer.html
└── menu.html
├── listing_fantoir.py
├── voies_recentes_manquantes.py
├── statut_fantoir.py
├── insee_from_coords.py
├── statut_numero.py
├── requete_inspect_numeros.py
├── josm.html
├── anomalies_fantoir.py
├── voies_recentes_manquantes_dept.py
├── liens.html
├── requete_par_dept.py
├── stats_dept.py
└── liste_brute_fantoir.html
/.gitignore:
--------------------------------------------------------------------------------
1 | bilan_isere.txt
2 |
--------------------------------------------------------------------------------
/img/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/bg.gif
--------------------------------------------------------------------------------
/img/asc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/asc.gif
--------------------------------------------------------------------------------
/img/desc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/desc.gif
--------------------------------------------------------------------------------
/img/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/help.png
--------------------------------------------------------------------------------
/img/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/home.png
--------------------------------------------------------------------------------
/img/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/refresh.png
--------------------------------------------------------------------------------
/sql/labels_statuts_fantoir.sql:
--------------------------------------------------------------------------------
1 | SELECT *
2 | FROM labels_statuts_fantoir
3 | ORDER BY 1;
--------------------------------------------------------------------------------
/img/help-gris.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/help-gris.png
--------------------------------------------------------------------------------
/img/ld_habite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/ld_habite.png
--------------------------------------------------------------------------------
/sql/infos_dept.sql:
--------------------------------------------------------------------------------
1 | SELECT dep,
2 | libelle
3 | FROM cog_departement
4 | WHERE dep = '__dept__';
5 |
--------------------------------------------------------------------------------
/img/communes_voisines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/communes_voisines.png
--------------------------------------------------------------------------------
/img/export-to-csv-icon-13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/img/export-to-csv-icon-13.jpg
--------------------------------------------------------------------------------
/css/tablesorter/images/first.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/first.png
--------------------------------------------------------------------------------
/css/tablesorter/images/last.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/last.png
--------------------------------------------------------------------------------
/css/tablesorter/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/next.png
--------------------------------------------------------------------------------
/css/tablesorter/images/prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/prev.png
--------------------------------------------------------------------------------
/css/tablesorter/images/ice-asc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/ice-asc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/ice-desc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/ice-desc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/loading.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/black-asc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/black-asc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/black-desc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/black-desc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/dropbox-asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/dropbox-asc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/green-asc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/green-asc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/green-desc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/green-desc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/white-asc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/white-asc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/white-desc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/white-desc.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/dropbox-desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/dropbox-desc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/green-header.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/green-header.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/ice-unsorted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/ice-unsorted.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-loading.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/black-unsorted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/black-unsorted.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/dragtable-handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/dragtable-handle.png
--------------------------------------------------------------------------------
/css/tablesorter/images/green-unsorted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/green-unsorted.gif
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-black-asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-black-asc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-black-desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-black-desc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-unsorted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-unsorted.png
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-white-asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-white-asc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/metro-white-desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/metro-white-desc.png
--------------------------------------------------------------------------------
/css/tablesorter/images/white-unsorted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/white-unsorted.gif
--------------------------------------------------------------------------------
/sql/date_cache_dept.sql:
--------------------------------------------------------------------------------
1 | SELECT timestamp_debut,etape,date_fin
2 | FROM batch
3 | WHERE etape = '__etape__' AND
4 | dept = '__dept__';
5 |
--------------------------------------------------------------------------------
/sql/numeros_osm_par_fantoir.sql:
--------------------------------------------------------------------------------
1 | SELECT numero,voie_osm
2 | FROM cumul_adresses c
3 | WHERE source = 'OSM' AND
4 | fantoir = '__fantoir__';
--------------------------------------------------------------------------------
/css/tablesorter/images/dropbox-asc-hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/dropbox-asc-hovered.png
--------------------------------------------------------------------------------
/css/tablesorter/images/dropbox-desc-hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/dropbox-desc-hovered.png
--------------------------------------------------------------------------------
/css/tablesorter/images/bootstrap-black-unsorted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/bootstrap-black-unsorted.png
--------------------------------------------------------------------------------
/css/tablesorter/images/bootstrap-white-unsorted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/osm-fr/osm-vs-fantoir/HEAD/css/tablesorter/images/bootstrap-white-unsorted.png
--------------------------------------------------------------------------------
/sql/positions_OSM_as_GeoJSON.sql:
--------------------------------------------------------------------------------
1 | SELECT DISTINCT ST_AsGeoJSON(geometrie)
2 | FROM cumul_adresses
3 | WHERE insee_com = '__com__' AND
4 | fantoir = '__fantoir__';
5 |
--------------------------------------------------------------------------------
/sql/fin_etape_cadastre_com.sql:
--------------------------------------------------------------------------------
1 | SELECT etape,
2 | source,
3 | date_fin
4 | FROM batch
5 | WHERE etape = '__etape__' AND
6 | cadastre_com = '__cadastre_com__'
7 | ORDER BY source;
8 |
--------------------------------------------------------------------------------
/sql/rel_id_OSM_from_GeoJSON.sql:
--------------------------------------------------------------------------------
1 | WITH pos
2 | AS
3 | (__positions__)
4 | SELECT DISTINCT r.rel_id
5 | FROM planet_osm_rels r
6 | JOIN pos
7 | ON pos.geom_position && r.way
8 | WHERE member_role = 'house' AND
9 | name = '__name__';
--------------------------------------------------------------------------------
/sql/name_and_positions_OSM_as_GeoJSON.sql:
--------------------------------------------------------------------------------
1 | SELECT DISTINCT COALESCE(voie_osm,voie_autre),
2 | ST_AsGeoJSON(ST_Buffer(geometrie,0.0001))
3 | FROM cumul_adresses
4 | WHERE insee_com = '__com__' AND
5 | fantoir = '__fantoir__';
6 |
--------------------------------------------------------------------------------
/helpers.py:
--------------------------------------------------------------------------------
1 |
2 | def get_code_dept_from_insee(code_insee):
3 | code_dept = code_insee[0:2]
4 | if code_dept == '97':
5 | code_dept = code_insee[0:3]
6 | return code_dept
7 |
8 | def escape_quotes(s):
9 | return s.replace('\'','\'\'')
10 |
--------------------------------------------------------------------------------
/db.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | import psycopg2
4 | import psycopg2.extras
5 |
6 | bano = psycopg2.connect(os.environ.get("BANO_PG", "dbname='cadastre' user='cadastre'"))
7 | bano_cache = psycopg2.connect(os.environ.get("BANO_PG_CACHE", "dbname='osm' user='cadastre'"))
8 | psycopg2.extras.register_hstore(bano_cache)
9 |
--------------------------------------------------------------------------------
/refresh.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source /data/work/vdct/bano_venv37/bin/activate
4 |
5 | SCRIPT_DIR=/data/project/bano_prod
6 | cd $SCRIPT_DIR
7 |
8 | source config
9 |
10 | pip install -qqe .
11 |
12 | bano process_commune BAN --code_insee ${1}
13 | bano process_commune OSM --code_insee ${1}
14 | bano process_commune_lieux-dits --code_insee ${1}
--------------------------------------------------------------------------------
/sql/fantoir_errone.sql:
--------------------------------------------------------------------------------
1 | WITH
2 | f
3 | AS
4 | (SELECT fantoir
5 | FROM cumul_voies
6 | WHERE fantoir != ''
7 | EXCEPT
8 | SELECT fantoir10
9 | FROM fantoir_voie)
10 | SELECT v.fantoir,
11 | v.voie_osm,
12 | ST_X(v.geometrie),
13 | ST_Y(v.geometrie)
14 | FROM cumul_voies v
15 | JOIN f
16 | USING (fantoir)
17 | ORDER BY 1
18 |
19 |
--------------------------------------------------------------------------------
/sql/infos_commune_insee.sql:
--------------------------------------------------------------------------------
1 | SELECT name,
2 | ST_X(p),
3 | ST_Y(p)
4 | FROM (SELECT name,
5 | ST_Transform(ST_Centroid(way),4326) p,
6 | admin_level
7 | FROM planet_osm_polygon
8 | WHERE boundary='administrative' AND
9 | admin_level in (8,9) AND
10 | "ref:INSEE" = '__com__'
11 | ORDER BY admin_level)a;
12 |
--------------------------------------------------------------------------------
/sql/numeros_deja_dans_OSM.sql:
--------------------------------------------------------------------------------
1 | SELECT ABS(p.osm_id)
2 | FROM planet_osm___type_geom__ p
3 | JOIN planet_osm_polygon pl
4 | ON pl.way && p.way AND
5 | ST_Intersects(pl.way, p.way)
6 | WHERE pl."ref:INSEE" = '__insee__' AND
7 | p."addr:housenumber" IN (__numeros_OSM__) AND
8 | p."addr:street" = '__name__' AND
9 | p.osm_id __signe__ 0;
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | osm-vs-fantoir
2 | ==============
3 |
4 | Code utilisé à https://bano.openstreetmap.fr/pifometre/
5 |
6 | Confrontation des données FANTOIR et du contenu OSM+Cadastre+BAL utilisé dans BANO
7 |
8 | Visualisation sous forme de listes.
9 |
10 | Ce projet nécessite une base PostgreSQL avec le contenu BANO pour fonctionner. Cf https://github.com/osm-fr/bano
11 |
--------------------------------------------------------------------------------
/labels_statut_fantoir.py:
--------------------------------------------------------------------------------
1 | #!./venv37/bin/python
2 | # -*- coding: utf-8 -*-
3 |
4 | import cgi
5 | import cgitb
6 | import json
7 |
8 | import db
9 |
10 |
11 | cgitb.enable()
12 | print ("Content-Type: application/json")
13 | print ("")
14 |
15 | with db.bano.cursor() as cur:
16 | cur.execute("SELECT id_statut,label_statut FROM labels_statuts_fantoir ORDER BY tri;")
17 | print(json.JSONEncoder().encode(cur.fetchall()))
18 |
--------------------------------------------------------------------------------
/labels_statut_numero.py:
--------------------------------------------------------------------------------
1 | #!./venv37/bin/python
2 | # -*- coding: utf-8 -*-
3 |
4 | import cgi
5 | import cgitb
6 | import json
7 |
8 | import db
9 |
10 |
11 | cgitb.enable()
12 | print ("Content-Type: application/json")
13 | print ("")
14 |
15 | with db.bano.cursor() as cur:
16 | cur.execute("SELECT id_statut,label_statut FROM labels_statuts_numero ORDER BY tri;")
17 | print(json.JSONEncoder().encode(cur.fetchall()))
18 |
--------------------------------------------------------------------------------
/sql/insee_from_coords.sql:
--------------------------------------------------------------------------------
1 | WITH
2 | s
3 | AS
4 | (SELECT insee_com,
5 | CASE typecom
6 | WHEN 'ARM' THEN 1
7 | WHEN 'COM' THEN 2
8 | ELSE 3
9 | END sort_order
10 | FROM polygones_insee_geo
11 | JOIN cog_commune c
12 | ON (com = insee_com)
13 | WHERE ST_Contains(geometrie,ST_SetSRID(ST_Point(__lon__,__lat__),4326))
14 | UNION ALL
15 | SELECT '404',99)
16 | SELECT insee_com
17 | FROM s
18 | ORDER BY sort_order
19 | LIMIT 1;
--------------------------------------------------------------------------------
/css/tablesorter/jquery.tablesorter.pager.min.css:
--------------------------------------------------------------------------------
1 | .tablesorter-pager{padding:5px}td.tablesorter-pager{background-color:#e6eeee;margin:0}.tablesorter-pager img{vertical-align:middle;margin-right:2px;cursor:pointer}.tablesorter-pager .pagedisplay{padding:0 5px 0 5px;width:auto;white-space:nowrap;text-align:center}.tablesorter-pager select{margin:0;padding:0}.tablesorter-pager.disabled{display:none}.tablesorter-pager .disabled{opacity:.5;cursor:default}
--------------------------------------------------------------------------------
/refresh.py:
--------------------------------------------------------------------------------
1 | #!./venv37/bin/python
2 | # -*- coding: utf-8 -*-
3 |
4 | import subprocess
5 | import cgi
6 | import cgitb
7 |
8 | from pathlib import Path
9 |
10 | cgitb.enable()
11 | params = cgi.FieldStorage()
12 | insee_com = params['insee'].value
13 | print ("Content-Type: application/json\n")
14 |
15 | try:
16 | subprocess.run([f"{(Path(__file__).resolve().parent / 'refresh.sh')}", insee_com])
17 | statut = '1'
18 | except :
19 | statut = '0'
20 |
21 | print(statut)
22 |
--------------------------------------------------------------------------------
/css/tablesorter/images/dragtable-handle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sql/voies_OSM_non_rapprochees_insee.sql:
--------------------------------------------------------------------------------
1 | SELECT '--'::text AS Fantoir,
2 | '--'::text AS voie_fantoir,
3 | '--'::text AS date_creation,
4 | c.voie_osm,
5 | ST_X(c.geometrie),
6 | ST_Y(c.geometrie),
7 | 0::integer AS statut
8 | FROM cumul_voies c
9 | JOIN polygones_insee p
10 | ON ST_Contains(p.geometrie,ST_Transform(ST_SetSRID(c.geometrie,4326),3857))
11 | WHERE c.insee_com = '__com__' AND
12 | p.insee_com = '__com__' AND
13 | c.fantoir = ''
14 | ORDER BY 1;
15 |
--------------------------------------------------------------------------------
/sql/way_id_OSM_from_GeoJSON.sql:
--------------------------------------------------------------------------------
1 | WITH pos
2 | AS
3 | (__positions__),
4 | ext
5 | AS
6 | (SELECT ST_Extent(geom_position) AS ext
7 | FROM pos)
8 | SELECT l.osm_id
9 | FROM planet_osm_line l
10 | JOIN ext
11 | ON ext.ext && l.way
12 | WHERE highway != '' AND
13 | (name = '__name__' OR
14 | "ref:FR:FANTOIR" = '__fantoir__')
15 | UNION
16 | SELECT l.osm_id
17 | FROM planet_osm_polygon l
18 | JOIN ext
19 | ON ext.ext && l.way
20 | WHERE highway != '' AND
21 | (name = '__name__' OR
22 | "ref:FR:FANTOIR" = '__fantoir__');
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2 | Version 2, December 2004
3 |
4 | Copyright (C) 2014 Vincent de Château-Thierry (vdct@laposte.net)
5 |
6 | Everyone is permitted to copy and distribute verbatim or modified
7 | copies of this license document, and changing it is allowed as long
8 | as the name is changed.
9 |
10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12 |
13 | 0. You just DO WHAT THE FUCK YOU WANT TO.
14 |
--------------------------------------------------------------------------------
/osm_state.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | import time
5 | import calendar
6 | import cgitb
7 |
8 | def main():
9 | print ("Content-Type: text/plain")
10 | print ("")
11 |
12 | with open('/data/download/state.txt') as f:
13 | full = f.read()
14 | s = full.split('\n')[2].split('timestamp=')[1]
15 | st = time.localtime(calendar.timegm(time.strptime(s,'%Y-%m-%dT%H\:%M\:%SZ')))
16 | print(time.strftime('%d/%m/%Y %H:%M:%S',st))
17 |
18 | if __name__ == '__main__':
19 | main()
20 |
--------------------------------------------------------------------------------
/js/tablesorter/parsers/parser-huge-numbers.min.js:
--------------------------------------------------------------------------------
1 | (function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
2 |
3 | /*! Parser: hugeNumbers - updated 3/1/2016 (v2.25.5) */
4 | !function(){"use strict";jQuery.tablesorter.addParser({id:"hugeNumbers",is:function(){return!1},format:function(e){return e.replace(/\B(?=(\d{12})+(?!\d))/g,",")},type:"text"})}();return jQuery;}));
5 |
--------------------------------------------------------------------------------
/js/tablesorter/parsers/parser-image.min.js:
--------------------------------------------------------------------------------
1 | (function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
2 |
3 | /*! Parser: image - new 7/17/2014 (v2.17.5) */
4 | !function(i){"use strict";i.tablesorter.addParser({id:"image",is:function(){return!1},format:function(t,r,e){return i(e).find("img").attr(r.config.imgAttr||"alt")||t},parsed:!0,type:"text"})}(jQuery);return jQuery;}));
5 |
--------------------------------------------------------------------------------
/opensearch.xml:
--------------------------------------------------------------------------------
1 |
2 |