Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Sat 13 June 2020 08:36

BrunoGarnier
Juste Inscrit !
Date d'inscription: 12 Jun 2020
Messages: 2

IE11 se gèle lors de l'affichage d'une polyline leaflet

Je suis nouveau sur Leaflet et j’ai une erreur quand j’affiche des polylines sous IE 11.

Ma page est très simple et fonctionne sur Chrome et FireFox. Je dessine juste un point et une polyline.

Tout va bien quand je dessine juste un marqueur mais lorsque j’ajoute une polyligne, sur IE, la navigation se passe très bien tant que la carte de l’écran n’atteint pas la polyline (niveau de zoom élevé). Dès que je fais un zoom arrière pour voir la polyline, IE11 se fige.

Une erreur est générée dans le script

https://unpkg.com/leaflet@1.6.0/dist/leaflet.js (5,61705): [Impossible d’obtenir la propriété "x" d’une référence nulle ou non définie]


sur la fonction :

Code:

    // return closest point on segment or distance to that point
function _sqClosestPointOnSegment(p, p1, p2, sqDist) {
var x = p1.x, // L'erreur se produit ici
    y = p1.y,
    dx = p2.x - x,
    dy = p2.y - y,
    dot = dx * dx + dy * dy,
    t;

if (dot > 0) {
    t = ((p.x - x) * dx + (p.y - y) * dy) / dot;

    if (t > 1) {
        x = p2.x;
        y = p2.y;
    } else if (t > 0) {
        x += dx * t;
        y += dy * t;
    }
}

dx = p.x - x;
dy = p.y - y;

return sqDist ? dx * dx + dy * dy : new Point(x, y);
}

Mon code est:

Code:

function init() {
   var Produit4 = {
    lat: 52,
    lon: 0,
  };
  var ZoomLevel = 7;
  var mymap = L.map("mapid").setView([Produit4.lat, Produit4.lon], ZoomLevel);
  var MainLayer = L.tileLayer(
    "https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=sk.eyJ1IjoiYnJ1bm9nYXJuaWVyIiwiYSI6ImNrYmFzam9hdzA5OW0ycnB2Z2JxeXEwYmcifQ.m0w2z_IIm_M2JdO0W7mJBA",
    {
      attribution:
        "Map data © OpenStreetMap contributors, " +
        "CC-BY-SA, " +
        "Imagery © Mapbox",
      maxZoom: 18,
      id: "mapbox/streets-v11",
      tileSize: 512,
      zoomOffset: -1,
    }
  );
  L.Browser.touch = false;
  MainLayer.addTo(mymap);
  var rectangle = L.polyline([
    [46, -16],
    [62.75, -16],
    [62.75, 13],
    [46, 13],
  ]).addTo(mymap);
  var marker = L.marker([51.5, -0.09]).addTo(mymap);
}

Si jamais vous aviez besoin des autres fichiers, voici un codepen : https://codepen.io/bruno-garnier/pen/abdNXjR

Merci d’avance ! Bruno.

Hors ligne

 

#2 Tue 16 June 2020 10:01

BrunoGarnier
Juste Inscrit !
Date d'inscription: 12 Jun 2020
Messages: 2

Re: IE11 se gèle lors de l'affichage d'une polyline leaflet

Bonjour à tous, 

J’ai trouvé la solution.

IE11 considère mon application comme un intranet (car elle se trouve sur mon ordinateur)

Or, pour les sites intranet, IE11 fonctionne en mode de compatibilité IE7 (pourquoi ???). Donc, juste en désactivant le mode de compatibilité pour les sites intranet (dans outils/paramètres d’affichage de compatibilité), cela a résolu mon problème. Merci à Adri1 de s’être penché sur mon problème !

Btw, savez-vous comment on peut fermer un fil ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB