perliedman / leaflet-routing-machine

Control for routing in Leaflet
https://www.liedman.net/leaflet-routing-machine/
Other
1.09k stars 352 forks source link

LRM not working on IE 11 #506

Closed tahatariq closed 5 years ago

tahatariq commented 5 years ago

Hello, I am using LRM in my cumulocity project. It is working fine on other browsers but on internet explorer 11 it gives the error "Multiple definitions of a property not allowed in strict mode". On removing LRM as a dependency the erorr goes away. Is it a known issue or has someone else faced this error?

Thanks, Taha

perliedman commented 5 years ago

Hi there, it has been a while since I tried LRM in IE11, so it might well be that some change has introduced this problem.

Since I do not actively work on LRM or have easy access to IE11, any help to track down or solve this is greatly appreciated.

tahatariq commented 5 years ago

Hello,

So I looked in the main.js(minified) and it has double Formatter:m property in n.Routing. Which is why this multiple definition error is coming in ie.

tahatariq commented 5 years ago

Also, I am using 3.2.5 but using 3.2.12 didn't solve the problem either

tahatariq commented 5 years ago

53: [function(e, a, t) { (function(t) { var n = "undefined" != typeof window ? window.L : "undefined" != typeof t ? t.L : null, i = e("./control"), r = e("./itinerary"), o = e("./line"), s = e("./osrm-v1"), d = e("./plan"), l = e("./waypoint"), u = e("./autocomplete"), m = e("./formatter"), h = e("./geocoder-element"), f = e("./localization"), c = e("./itinerary-builder"), g = e("./mapbox"), p = e("./error-control"); n.routing = { control: function(e) { return new i(e) }, itinerary: function(e) { return r(e) }, line: function(e, a) { return new o(e, a) }, plan: function(e, a) { return new d(e, a) }, waypoint: function(e, a, t) { return new l(e, a, t) }, osrmv1: function(e) { return new s(e) }, localization: function(e) { return new f(e) }, formatter: function(e) { return new m(e) }, geocoderElement: function(e, a, t, i) { return new n.Routing.GeocoderElement(e, a, t, i) }, itineraryBuilder: function(e) { return new c(e) }, mapbox: function(e, a) { return new g(e, a) }, errorControl: function(e, a) { return new p(e, a) }, autocomplete: function(e, a, t, n) { return new u(e, a, t, n) } }, a.exports = n.Routing = { Control: i, Itinerary: r, Line: o, OSRMv1: s, Plan: d, Waypoint: l, Autocomplete: u, Formatter: m, GeocoderElement: h, Localization: f, Formatter: m, ItineraryBuilder: c, control: n.routing.control, itinerary: n.routing.itinerary, line: n.routing.line, plan: n.routing.plan, waypoint: n.routing.waypoint, osrmv1: n.routing.osrmv1, geocoderElement: n.routing.geocoderElement, mapbox: n.routing.mapbox, errorControl: n.routing.errorControl } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./autocomplete": 48, "./control": 49, "./error-control": 50, "./formatter": 51, "./geocoder-element": 52, "./itinerary": 55, "./itinerary-builder": 54, "./line": 56, "./localization": 57, "./mapbox": 58, "./osrm-v1": 59, "./plan": 60, "./waypoint": 61 }],

tahatariq commented 5 years ago

I think removing line 67 here should solve the issue. https://github.com/perliedman/leaflet-routing-machine/blob/master/src/index.js