johan/consolidate-ipe-data #5
3 changed files with 46 additions and 40 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.idea
|
|
@ -43,7 +43,7 @@ def getEligData():
|
|||
args = request.args
|
||||
valid_args = True
|
||||
processed_args = {}
|
||||
for k in ["swx", "swy", "nex", "ney", "centerlat", "centerlng"]:
|
||||
for k in ["swx", "swy", "nex", "ney"]:
|
||||
johan.le.baut marked this conversation as resolved
Outdated
|
||||
valid_args = valid_args and k in args
|
||||
if valid_args:
|
||||
try:
|
||||
|
@ -51,18 +51,20 @@ def getEligData():
|
|||
except ValueError:
|
||||
valid_args = False
|
||||
if valid_args:
|
||||
## Need to narrow coordinates for Liazo API call
|
||||
# wide_coordinates=AreaCoordinates(
|
||||
# swx=processed_args['swx'],
|
||||
# swy=processed_args['swy'],
|
||||
# nex=processed_args['nex'],
|
||||
# ney=processed_args['ney'],
|
||||
# )
|
||||
narrow_coordinates=AreaCoordinates(
|
||||
swx=processed_args['centerlng']-0.0022,
|
||||
swy=processed_args['centerlat']-0.0011,
|
||||
nex=processed_args['centerlng']+0.0022,
|
||||
ney=processed_args['centerlat']+0.0011,
|
||||
# Need to narrow coordinates for Liazo API call
|
||||
|
||||
# computes center
|
||||
centerx = (processed_args['swx'] + processed_args['nex']) / 2
|
||||
centery = (processed_args['swy'] + processed_args['ney']) / 2
|
||||
|
||||
narrow_x = 0.0022
|
||||
narrow_y = 0.0011
|
||||
johan.le.baut marked this conversation as resolved
Outdated
felix.baylac
commented
Je comprend pas trop ce truc. La bounding box sw/ne est trop large pour Liazo? Il y a une raison particulière pour ne pas utiliser la bounding box du client ici? Je comprend pas trop ce truc.
La bounding box sw/ne est trop large pour Liazo?
Il y a une raison particulière pour ne pas utiliser la bounding box du client ici?
johan.le.baut
commented
oui c'était trop large sinon oui c'était trop large sinon
|
||||
|
||||
narrow_coordinates = AreaCoordinates(
|
||||
swx=centerx - narrow_x,
|
||||
swy=centery - narrow_y,
|
||||
nex=centerx + narrow_x,
|
||||
ney=centery + narrow_y,
|
||||
)
|
||||
buildings = dict()
|
||||
try:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
const minZoomForRequest = 17;
|
||||
johan.le.baut marked this conversation as resolved
felix.baylac
commented
Trop de "fausses" diff et Gitea n'est apparemment pas aussi bon que GitHub pour les afficher. J'ai probablement raté des vrais trucs nouveaux. Trop de "fausses" diff et Gitea n'est apparemment pas aussi bon que GitHub pour les afficher. J'ai probablement raté des vrais trucs nouveaux.
|
||||
const urlADSL='https://tools.aquilenet.fr/cgi-bin/recherchend.cgi'
|
||||
const urlTestFTTH='https://tools.aquilenet.fr/cgi-bin/test.cgi'
|
||||
const urlADSL = 'https://tools.aquilenet.fr/cgi-bin/recherchend.cgi'
|
||||
const urlTestFTTH = 'https://tools.aquilenet.fr/cgi-bin/test.cgi'
|
||||
|
||||
johan.le.baut marked this conversation as resolved
Outdated
felix.baylac
commented
Nit: On dirait que ton editeur a massacré l'indentation qu'on avait. Ça crée pas mal de diffs artificielles. Si c'est facile de ton côté, ça serait cool de dégager ces diffs pour render les "vraies" plus facile a lire. Nit:
On dirait que ton editeur a massacré l'indentation qu'on avait. Ça crée pas mal de diffs artificielles. Si c'est facile de ton côté, ça serait cool de dégager ces diffs pour render les "vraies" plus facile a lire.
|
||||
const streetTypeConversion = new Map();
|
||||
streetTypeConversion.set("aire", "aire")
|
||||
|
@ -72,6 +72,7 @@ streetTypeConversion.set("zone industrielle", "zi")
|
|||
streetTypeConversion.set("zone", "zone")
|
||||
|
||||
let markers = [];
|
||||
|
||||
function initMap(btn) {
|
||||
// Init map position/zoom. Potentially using what's in the URL search string.
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
|
@ -147,14 +148,14 @@ function updateEligData(map, eligData) {
|
|||
}
|
||||
let colorMarker = 'black'
|
||||
let messageElig = ``
|
||||
eligTestApi=`eligtest/ftth?idImm=${building.idImm}&codePostal=${building.codePostal}&axione=${building.aquilenetEligStatus.isEligible}&liazo=${building.fdnEligStatus.isEligible}`
|
||||
eligTestApi = `eligtest/ftth?idImm=${building.idImm}&codePostal=${building.codePostal}&axione=${building.aquilenetEligStatus.isEligible}&liazo=${building.fdnEligStatus.isEligible}`
|
||||
// éligible chez Aquilenet, lien pour le test
|
||||
if (building.aquilenetEligStatus.isEligible) {
|
||||
messageElig = `<p class=deployeeAquilenet>Fibre deployee et disponible par Aquilenet !</p>`
|
||||
const zip=encodeURIComponent(building.codePostal);
|
||||
const idImm=encodeURIComponent(building.idImm);
|
||||
messageElig += `<br/><a href=${urlTestFTTH}?ftth=1&axione=1&adsltel=NOUVEAU&cp=${zip}&refimmeuble=${idImm}`
|
||||
+ `>Tester l'éligibilité</a>`
|
||||
const zip = encodeURIComponent(building.codePostal);
|
||||
const idImm = encodeURIComponent(building.idImm);
|
||||
messageElig += `<br/><a href=${urlTestFTTH}?ftth=1&axione=1&adsltel=NOUVEAU&cp=${zip}&refimmeuble=${idImm}` +
|
||||
`>Tester l'éligibilité</a>`
|
||||
colorMarker = 'green'
|
||||
// pas de données Axione mais Kosc nous renvoie qque chose à cette adresse (fdnEligStatus)
|
||||
// c'est peut être OK, on croise avec les données ARCEP (othersEligStatus)
|
||||
|
@ -170,16 +171,16 @@ function updateEligData(map, eligData) {
|
|||
// Pas de fibre il semblerait, proposer un test ADSL Aquilenet
|
||||
} else {
|
||||
messageElig = `<p class=nonDeployee>Fibre non deployee :(</p>`
|
||||
const zip=encodeURIComponent(building.codePostal);
|
||||
const comm=encodeURIComponent(building.commune);
|
||||
const zip = encodeURIComponent(building.codePostal);
|
||||
const comm = encodeURIComponent(building.commune);
|
||||
let convertType = streetTypeConversion.get(building.typeVoieImm.toLowerCase());
|
||||
if (! convertType) {
|
||||
if (!convertType) {
|
||||
convertType = building.typeVoieImm;
|
||||
}
|
||||
const street=encodeURIComponent(`${convertType} ${building.nomVoieImm}`)
|
||||
const street_nb=encodeURIComponent(building.numVoieImm)
|
||||
messageElig += `<br/><a href=${urlADSL}?zip=${zip}&city=${comm}&street=${street}&street_nb=${street_nb}&gps=&do=1&submit=Valider`
|
||||
+ `>Tester ADSL a cette adresse</a>`
|
||||
const street = encodeURIComponent(`${convertType} ${building.nomVoieImm}`)
|
||||
const street_nb = encodeURIComponent(building.numVoieImm)
|
||||
messageElig += `<br/><a href=${urlADSL}?zip=${zip}&city=${comm}&street=${street}&street_nb=${street_nb}&gps=&do=1&submit=Valider` +
|
||||
`>Tester ADSL a cette adresse</a>`
|
||||
if (building.othersEligStatus.reasonNotEligible != "") {
|
||||
messageElig += `<br/><br/>Status general ARCEP: ${building.othersEligStatus.reasonNotEligible}`
|
||||
}
|
||||
|
@ -196,10 +197,12 @@ function updateEligData(map, eligData) {
|
|||
popupAnchor: [1, -34],
|
||||
shadowSize: [41, 41]
|
||||
});
|
||||
const marker = new L.marker(latlng, {icon: markerIcon})
|
||||
.bindPopup(`${addrImm}<br/>${building.codePostal} ${building.commune}`
|
||||
+ `<br/><br/>${messageElig}<br/><br/>Ref Immeuble: ${building.idImm}`, {
|
||||
maxWidth : 560
|
||||
const marker = new L.marker(latlng, {
|
||||
icon: markerIcon
|
||||
})
|
||||
.bindPopup(`${addrImm}<br/>${building.codePostal} ${building.commune}` +
|
||||
`<br/><br/>${messageElig}<br/><br/>Ref Immeuble: ${building.idImm}`, {
|
||||
maxWidth: 560
|
||||
johan.le.baut marked this conversation as resolved
Outdated
felix.baylac
commented
Pareil: enlever centerlat et centerlng. Pareil: enlever centerlat et centerlng.
|
||||
});
|
||||
map.addLayer(marker);
|
||||
return marker
|
||||
|
@ -214,13 +217,12 @@ function updateUrl(map) {
|
|||
async function fetchEligData(map) {
|
||||
const zoom = map.getZoom();
|
||||
if (zoom >= minZoomForRequest) {
|
||||
const mc = map.getCenter();
|
||||
const bounds = map.getBounds();
|
||||
const sw = bounds.getSouthWest();
|
||||
const ne = bounds.getNorthEast();
|
||||
const btn = document.getElementById("btn-load-elig-data");
|
||||
waitBtn(btn);
|
||||
const reqUri = encodeURI(`eligdata?swx=${sw.lng}&swy=${sw.lat}&nex=${ne.lng}&ney=${ne.lat}¢erlat=${mc.lat}¢erlng=${mc.lng}`);
|
||||
const reqUri = encodeURI(`eligdata?swx=${sw.lng}&swy=${sw.lat}&nex=${ne.lng}&ney=${ne.lat}`);
|
||||
const source = await fetch(reqUri);
|
||||
const eligData = await source.json();
|
||||
updateEligData(map, eligData);
|
||||
|
@ -246,6 +248,7 @@ function hideBtn(btn) {
|
|||
btn.disabled = true;
|
||||
btn.title = "Veuillez zoomer plus la carte avant de lancer une recherche d'éligibilité.";
|
||||
}
|
||||
|
||||
function waitBtn(btn) {
|
||||
btn.disabled = true;
|
||||
btn.title = "Chargement des batiments...";
|
||||
|
|
Loading…
Reference in a new issue
Il vaudrait mieux calculer
centerlat
etcenterlng
côté backend plutôt de faire confiance au client pour nous envoyer des trucs pas absurdes par rapport au points sud oust et nord est.On a déjà tout ce qu'il faut:
Note: je serai plutôt pour les noms de coordonées coordonées x et y. IE. centerx, centery. Perso, je me perd tout le temps avec les trucs à base de lat/long.