多边形传单

3pvhb19x  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(187)

关闭。这个问题需要详细或明确。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,添加细节并澄清问题。

两小时前关门了。
改进这个问题
我开发了一个网站使用传单的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多边形

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题