关闭。这个问题需要详细或明确。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,添加细节并澄清问题。
两小时前关门了。
改进这个问题
我开发了一个网站使用传单的Map,我想显示多边形的坐标在数据库中。我可以用php、ajax、js来实现,但问题是在加载页面时没有显示多边形,但每次加载时没有显示的多边形都不相同。你能告诉我有什么问题吗?
function BuiltPolygone(url) {
// Je déclare comme XMLHttpRequest la variable allPolygone
allPolygone = new XMLHttpRequest();
// ici on cherche à lire la fonction qui permet de recuperer tous les polygones dans la BDD
allPolygone.open("GET", url);
allPolygone.responseType = 'text';
// Ici la variable allPolygone contient tous les polygones
allPolygone.onreadystatechange = () => {
//si la transaction pour recuperer tous les polygones est terminée
if (allPolygone.readyState == XMLHttpRequest.DONE) {
//si la transaction pour recuperer tous les polygones est un succès
if (allPolygone.status == 200) {
//Variable qui recupère après transformation en fichier JSON tous les polygones
console.log('le responseText', allPolygone.responseText)
let dataAllPolygone = JSON.parse(allPolygone.responseText)
console.log('le responseJSON', dataAllPolygone)
// Je fais un foreach (je parcours) sur ma variable contenant tous les polygones ( le .region c'est parce que mon tableau c'est un tableau de region)
Object.entries(dataAllPolygone.region).forEach(poly => {
// ici je mets dans la variable le polygone qui est parcouru
regionselectionnee = poly[1].polygone;
// Ici je recupère le type de couverture qui est présent dans l'URL actuelle
typeCouverture = tableaucouverturejs[current];
let allInfoSupPoly = new XMLHttpRequest();
allInfoSupPoly.open("GET", "http://localhost/connexionsqlserver_v2/Fonctions/LireInfoSupPoly.php?region=" + regionselectionnee);
allInfoSupPoly.send(null);
// Je déclare comme XMLHttpRequest la variable
let allCoordByPolygone = new XMLHttpRequest();
// ici on cherche à lire la fonction qui permet de recuperer toutes les coordonnées en fonction du polygone dans la BDD et du type d'affichage
allCoordByPolygone.open("GET", "http://localhost/connexionsqlserver_v2/Fonctions/LireCoordByPolygone.php?region=" + regionselectionnee + "&affichage=" + typeCouverture);
//On envoie la transaction pour mettre dans la variable le resultat
allCoordByPolygone.send(null);
// Je déclare comme XMLHttpRequest la variable
let allZoneByPolygone = new XMLHttpRequest();
// ici on cherche à lire la fonction qui permet de recuperer toutes les zones en fonction du polygone dans la BDD de la date ainsi que du type de couverture
allZoneByPolygone.open("GET", "http://localhost/connexionsqlserver_v2/Fonctions/LireZoneByPoly.php?region=" + regionselectionnee + "&date=" + date + "&affichage=" + typeCouverture);
//On envoie la transaction pour mettre dans la variable le resultat
allZoneByPolygone.send(null);
allInfoSupPoly.onreadystatechange = function() {
if (allInfoSupPoly.readyState == XMLHttpRequest.DONE) {
if (allInfoSupPoly.status == 200) {
// Ici la variable allCoordByPolygone contient toutes les coordonnées en fonction du polygone qui est rentré
allCoordByPolygone.onreadystatechange = function() {
//si la transaction pour recuperer toutes les coord par polygone est terminée
if (allCoordByPolygone.readyState == XMLHttpRequest.DONE) {
//si la transaction pour recuperer toutes les coord par polygone est un succès
if (allCoordByPolygone.status == 200) {
// Ici la variable allZoneByPolygone contient toutes les zones en fonction du polygone qui est rentré
allZoneByPolygone.onreadystatechange = function() {
//si la transaction pour recuperer toutes les zones par polygone est terminée
if (allZoneByPolygone.readyState == XMLHttpRequest.DONE) {
//si la transaction pour recuperer toutes les zone par polygone est un succès
if (allZoneByPolygone.status == 200) {
let dataAllInfoSupPoly = JSON.parse(allInfoSupPoly.responseText)
//console.log(dataAllInfoSupPoly.info[0])
// console.log('polygone est:',poly[1].polygone);
//Variable qui recupère après transformation en fichier JSON toutes les zones
let dataAllZoneByPolygone = JSON.parse(allZoneByPolygone.responseText)
//Variable qui recupère après transformation en fichier JSON toutes les coordonnées en fonction du polygone
let dataAllCoordByPolygone = JSON.parse(allCoordByPolygone.responseText)
// On déclare la variable polygone qui va contenir notre polygone et qu'on va ajouté à la carte
let polygone = L.polygon(dataAllCoordByPolygone.coordonnees, {
color: dataAllZoneByPolygone.coord[1].bordure_couleur,
fillColor: dataAllZoneByPolygone.coord[1].couleur,
fillOpacity: dataAllZoneByPolygone.coord[1].transparence,
stroke: true,
//fill:'url(image.gif)',
//strokeColor: dataAllZoneByPolygone.coord[1].couleur,
//strokeWidth:0.01,
//roughness: 0.01,
//fillStyle: 'solid',
weight: dataAllZoneByPolygone.coord[1].bordure_poids,
}).addTo(macarte);
// Ici on ajoute un popup pour chaque polygone ajouté à la carte
polygone.bindPopup(dataAllZoneByPolygone.coord[1].type_couverture + ": " + poly[1].polygone +
"<br/> zone: " + dataAllZoneByPolygone.coord[1].zone +
"<br/> Info Polygone: " + dataAllZoneByPolygone.coord[1].info_polygone +
"<br/> Trafic: " + dataAllZoneByPolygone.coord[1].trafic + " Gbps" +
"<br/> latence_BEB: " + dataAllZoneByPolygone.coord[1].latence_BEB + " ms" +
"<br/> latence_NDC: " + dataAllZoneByPolygone.coord[1].latence_NDC + " ms" +
"<br/> Couverture_Dept: " + dataAllInfoSupPoly.info[0].Couverture_Tac_Dept +
"<br/> Couverture_BB: " + dataAllInfoSupPoly.info[0].Couverture_Tac_BB +
"<br/> Couverture_PEU: " + dataAllInfoSupPoly.info[0].Couverture_Tac_PEU);
// Lorsqu'on clique, ca appelle la fonction highlightFeature
polygone.on('click', highlightFeature);
// Lorsque la souris n'est plus sur la zone, ca appelle la fonction resetHighlight
polygone.on('mouseout', resetHighlight);
}
}
}
}
}
}
} else {
//si la transaction pour recuperer toutes les coord par polygone n'est pas un succè
console.log("reponse est", allCoordByPolygone.statusText)
}
}
}
})
// J'incrémente la valeur de la variable qui parcours le tableau
current++;
// Si la variable est inférieur a la longueur du tableau qui contient les URL
if (current < tableauURL.length) {
// J'appelle la fonction pour construire les polygone en fonction de l'URL passé en paramètre
BuiltPolygone(tableauURL[current]);
}
}
}
}
//On envoie la transaction pour mettre dans la variable le resultat
allPolygone.send(null);
}
图d'uneMapavec多边形
暂无答案!
目前还没有任何答案,快来回答吧!