Leaflet: рд╡реЗрдмрдХрд┐рдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднрд┐рдиреНрдирд╛рддреНрдордХ рдЬрд╝реВрдо рд╕реНрддрд░реЛрдВ рдкрд░ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕реНрдерд╛рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЬреВрди 2015  ┬╖  96рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Leaflet/Leaflet

screen shot 2015-06-30 at 14 39 12

рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЬрдЧрд╣ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдлрд╛рд░реА, рдХреНрд░реЛрдо рдФрд░ рдУрдкреЗрд░рд╛ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд╕реНрддрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ # 2377 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ 3ccbe5b рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдФрд░ рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЖрдВрд╢рд┐рдХ рдЬрд╝реВрдо рд╕реНрддрд░ рд╣рдорд╛рд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдпрд╣ рдмрдЧ рд░рд╣рддрд╛ рд╣реИ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдПрдХ jsFiddle рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ: http://jsfiddle.net/Eschon/pw9jcjus/1/

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирдХреНрд╢реЗ рдпрд╛ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдореБрджреНрджрд╛ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ antialiasing рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди _fractional_ рдХреЗ рдХрд╛рд░рдг рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЬрд╝реВрдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╡рд╛рди рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рдЬрдм рддрдХ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдпрд╛ рд╣реИрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрд▓реЛрдВ рдХреЛ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдмрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реВрдБрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╕реЗ рд╡реЗ 1 рдкреАрдПрдХреНрд╕ рд╕реЗ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯрд╛рдЗрд▓реЗрдВ рдереЛрдбрд╝реА рдмрдврд╝рд╛рдИ рдФрд░ рдмрдврд╝рд╛рдИ рдЬрд╛рдПрдВрдЧреА (1px рд╕реЗ)ред

/* 
 * Workaround for 1px lines appearing in some browsers due to fractional transforms
 * and resulting anti-aliasing.
 * https://github.com/Leaflet/Leaflet/issues/3575
 */
(function(){
    var originalInitTile = L.GridLayer.prototype._initTile
    L.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();

            tile.style.width = tileSize.x + 1 + 'px';
            tile.style.height = tileSize.y + 1 + 'px';
        }
    });
})()

рд╕рднреА 96 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВред :( рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕рдлрд╛рд░реА рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреА, - рдХреНрд░реЛрдо / рдУрдкреЗрд░рд╛ рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ "рдХрдЯреНрдЯрд░рдкрдВрдереА" рдФрд░ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рд╢рдмреНрджреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ:

https://github.com/IvanSanchez/Leaflet.gl

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЧрдИ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдмрдирд╛рд╡рдЯ рдХреЛ рдХреНрд▓реИрдВрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрд░реНрдерд╛рдд рдпрджрд┐ рдпрд╣ рд░реЗрдЦрд╛ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ: https://github.com/IvanSanchez/Leaflet.gl/blob/master/src/core/GlUtil.js#L74 рд╕реНрд▓рд┐рд╡рд░реНрд╕ ("рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди") рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдмрдирд╛рд╡рдЯ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддреА рд╣реИ) рддреНрд░рд┐рдХреЛрдг рдФрд░ рдЯрд╛рдЗрд▓ рдХреЗ рджреВрд╕рд░реА рддрд░рдл рдХрд╛ рдЖрдзрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдореЗрд░рд╛ рд╢рд┐рдХреНрд╖рд┐рдд рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдмрдХрд┐рдЯ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдЖрдзрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕рд┐рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдм рддрдХ, рдЯрд┐рд▓реНрд▓реЗрдпрд░ рддреНрд░рд┐рднреБрдЬ рдПрдХ рдкреВрд░реНрдг рдЬрд╛рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд▓рд╡рд░реНрд╕ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди "рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ" рд╢рдмреНрдж рдЙрд╕ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@ рдореЙрд░реНрдирд░ рдЗрд╕рдХрд╛ рд╕рдлрд╛рд░реА рдореЗрдВ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рдкреНрд░рднрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд░реЛрдо рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
screen shot 2015-06-30 at 15 42 07

@IvanSanchez рд╡рд╛рд╣ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ (рдЕрднреА рддрдХ) рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@ рдПрд╢реЛрди рд╣рд╛рдБ, рдореБрдЭреЗ рд╢рд╛рдпрдж рдпрд╣ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЖрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдЯрд┐рдирд╛ рд╕реНрдХреНрд░реАрди рдкрд░, рдпрд╣ рдмрд╣реБрдд рдХрдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЛ рдЕрдм рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕реЗ jsFiddle рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ
рдореБрдЭреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 39 рдФрд░ 41.0a2 рдореЗрдВ рд╕рдорд╛рди рд╕реНрдерд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ iframes рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд▓рдЧрддреА рд╣реИред рдЕрдЧрд░ рдореИрдВ рд╕реАрдзреЗ рдирдХреНрд╢рд╛ рдЦреЛрд▓рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ 1.0 рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдмреИрдХрд▓реЙрдЧ рдХреЗ рдиреАрдЪреЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдХреНрдХрд╛ред

рд╣рдо рдирд╡реАрдирддрдо Chrome рдкрд░ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдлрд╝рд┐рдХреНрд╕ рдорд┐рд▓ рдЬрд╛рдП рдХреНрдпреЛрдВрдХрд┐ OpenStreet рдореИрдкреНрд╕ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рджред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирдХреНрд╢реЗ рдпрд╛ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдореБрджреНрджрд╛ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ antialiasing рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди _fractional_ рдХреЗ рдХрд╛рд░рдг рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЬрд╝реВрдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╡рд╛рди рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рдЬрдм рддрдХ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдпрд╛ рд╣реИрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрд▓реЛрдВ рдХреЛ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдмрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реВрдБрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╕реЗ рд╡реЗ 1 рдкреАрдПрдХреНрд╕ рд╕реЗ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯрд╛рдЗрд▓реЗрдВ рдереЛрдбрд╝реА рдмрдврд╝рд╛рдИ рдФрд░ рдмрдврд╝рд╛рдИ рдЬрд╛рдПрдВрдЧреА (1px рд╕реЗ)ред

/* 
 * Workaround for 1px lines appearing in some browsers due to fractional transforms
 * and resulting anti-aliasing.
 * https://github.com/Leaflet/Leaflet/issues/3575
 */
(function(){
    var originalInitTile = L.GridLayer.prototype._initTile
    L.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();

            tile.style.width = tileSize.x + 1 + 'px';
            tile.style.height = tileSize.y + 1 + 'px';
        }
    });
})()

@cmulders рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрдХреА рд░рд┐рд╕реЙрд░реНрдЯ рдХреЗ рдирдХреНрд╢реЗ рд╣реИрдВ рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдлреЗрдж рдФрд░ рдиреАрд▓реЗ рд╣реИрдВред рд╣рдордиреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЖрдкрдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИред

рдХрд╛рд░реНрдЯреЛрдбрдм рдбрд╛рд░реНрдХ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ jsbin рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рд░реЗрдЯрд┐рдирд╛ рд╕реНрдХреНрд░реАрди рдкрд░ рднреА рд▓рд╛рдЗрдиреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:
http://jsbin.com/ratoli/5/edit?html , js, output

рд╕рдлрд╛рд░реА / рдХреНрд░реЛрдо рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА, рдореЗрд░реЗ рд▓рд┐рдП рдПрдлрдПрдл рдУрдХреЗред

рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ USC-less Chrome рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ Chrome рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдареАрдХ рд╣реЛ рдЬрд╛рдПред

@hyperknot рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд░реЛрдо рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрддрд╛ред

рдореИрдВ рд▓реАрдлрд▓реЗрдЯреНрдЬ 1.0 рдмреАрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдХрднреА-рдХрднреА (рдирд╡реАрдирддрдо: рдХреНрд░реЛрдо, рд╕рдлрд╛рд░реА, рдлрд╛рдпрд░рдлреЙрдХреНрд╕) рдУрдХреНрд╕рдПрдХреНрд╕ рдПрд▓ рдХреИрдкрд┐рдЯрд╛рди рдкрд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореИрдВ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХреА transform css рдХреА рд╕рдВрдкрддреНрддрд┐ 1px рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╕рдВрдкрд╛рджрд┐рдд рдЯрд╛рдЗрд▓ рдЙрд╕рдХреЗ рдмрдЧрд▓ рд╡рд╛рд▓реА рдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддреА рд╣реИред

// ex.
 transform: translate3d(1556px, -81px, 0px);
 // to
 transform: translate3d(1555px, -80px, 0px);

рдХрднреА-рдХрднреА рдпрд╣ рдмрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдВрддрд░ рдХрд╛ 1px) !! рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ :( рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрдВрдЯреЗрдирд░ рдХреА рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХрд╣реЛ рдХрд┐ рдЯрд╛рдЗрд▓реЗрдВ рд░реЗрдВрдбрд░ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА 1px рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреА рд╣реИрдВ, рдорд╛рдирдЪрд┐рддреНрд░ рдЪрд╛рд▓ рдШрдЯрдирд╛ рдкрд░ рдПрдХ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдЯрд╛рдЗрд▓ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ 1px рд╕реАрдорд╛ рдХреЗ рдлреНрд▓реИрд╢ рдХреА рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдлрд╛рд░реА 9.1 рдУрдПрд╕ рдПрдХреНрд╕ рдПрд▓ рдХреИрдкрд┐рдЯрд╛рди рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рджрд┐рд▓рд╛рддрд╛ рд╣реИ:

.leaflet-tile-container img {
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.05);
}

рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреНрдпрд╛рджрд╛ рдХреНрд░реЗрдбрд┐рдЯ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯрд╛реЕрдХрд╡реЕрд▓рдлреНрд▓реЛ рдЙрддреНрддрд░ рд╕реЗ рд▓рд┐рдпрд╛, рдЬреЛ _why_ рдкрд░ рднреА рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИ: http://stackoverflow.com/a/17822836/138103

рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реАрдзреЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдмреЙрдХреНрд╕ рдХреЗ рджрдорд┐рдд рдЖрдпрд╛рдореЛрдВ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд╡реЗрдмрдХрд┐рдЯ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд┐рдХреНрд╕рд▓реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХреЗ рдЬреНрдЮрд╛рдд рдкреНрд░рджрд░реНрд╢рди рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдзреБрдВрдзрд▓реЗ рддреНрд░рд┐рдЬреНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдЫрд╛рдпрд╛ рдореЗрдВ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рджреВрд╕рд░реЛрдВ рдиреЗ рдпрд╣ рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХреЗрдВ? рдЗрд╕рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрдЧреАред

@href @IvanSanchez рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдЕрд▓реНрдлрд╛ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕рдВрднрд╡рддрдГ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рднреА рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@ рдЗрд╡рд╛рдирд╕рд╛рдВрдЭ рдиреЗ рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдЕрд▓реНрдлрд╛ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕рдВрднрд╡рддрдГ рдкреИрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд╕рд░ рд╣реЛрддрд╛ рд╣реИред Stackoverflow рдЬрд╡рд╛рдм рд╕реЗ рдпрд╣ рдПрдХ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ tangentially рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рдФрд░ рдХреА рд░рд╛рдп рдкрд░ рднрд░реЛрд╕рд╛ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рддрднреА рдЦреБрд╢рдХрд┐рд╕реНрдордд рд╣реЛ рдЧрдпрд╛ рдЬрдм рдореИрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рдШрд┐рд░ рдЧрдпрд╛ рдФрд░ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рджреВрд╕рд░реЗ рднреА рдЬрд╛рдиреЗрдВред

@hyperknot @href рдореИрдВ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдореЗрдВ рдХреБрдЫ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЦрд╝реБрд╢реА рд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд░реВрдБрдЧрд╛ред

@IvanSanchez @href рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╣реИрдХ рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд

@IvanSanchez рд░реВрдкрд░реЗрдЦрд╛ рдкреНрд░рд╕реНрддреБрддрд┐рдХрд░рдг рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╣реИрдХ рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕рдлрд╛рд░реА рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреНрд░реЛрдо рдореЗрдВ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдерд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡реЗрдмрдХрд┐рдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрднреА рднреА рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ?

L.Map рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рд╛рдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдореЗрдВ CSS рдХреНрд▓рд╛рд╕ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИред

@ рдХреНрд░реЛрдо рдореЗрд░реЗ рдХреНрд░реЛрдорд┐рдпрдо 49 рдореЗрдВ рдореМрдЬреВрдж рд╣реИ

@hyperknot рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдЕрд╡рдЧрдд рдирд╣реАрдВ рд╣реВрдВред рдЪрд▓реЛ рдЗрд╕ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ ;-)

@ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдареАрдХ рд╣реИ .leaflet-container { background: black } :

fractional-space

img.leaflet-tile.leaflet-tile-loaded { box-shadow: 0 0 1px rgba(0, 0, 0, 0.05); } :

fractional-space1

: crying_cat_face:

рд╡рд╣ рдЕрдЬреАрдм рд╣реИред рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХреНрд░реЛрдорд┐рдпрдо 49 (OS X El Capitan) рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рд╣реИред

рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рддрдХ рдмрдирд╛: http://playground-leaflet.rhcloud.com/yid/1/edit?html , рдЖрдЙрдЯрдкреБрдЯ

рдореИрдВ рд╡реЗрдмрдХрд┐рдЯ рдФрд░ рдмреНрд▓рд┐рдВрдХ рдЯреАрдореЛрдВ рдХреЛ рдХреИрдЯрд▓реЙрдЧ-рдХрдо рдмрдЧ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВрдЧрд╛ред

рдареАрдХ рд╣реИ, рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдкрддреНрд░рдХ-рдХрдо рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
http://playground-leaflet.rhcloud.com/say/1/edit?html , рдЖрдЙрдЯрдкреБрдЯ

рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдорд┐рдЯ рдХреА рдЧрдИ: https://bugs.chromium.org/p/chromium/issues/detail?id┬о6/20

рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: https://bugs.webkit.org/show_bug.cgi?id=156130

img- рдХрдо рд╕рдВрд╕реНрдХрд░рдг: http://playground-leaflet.rhcloud.com/foqi/1/edit?html , рдЖрдЙрдЯрдкреБрдЯ

рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдХреБрдЫ рдЕрдкрдбреЗрдЯ, [email protected] рд╕реЗ

рдЕрд░реЗ рдмрд╕ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрджреНрдпрддрди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рдереАред рдпрджрд┐ рддрддреНрд╡ рдореЗрдВ рдПрдХ рднрд┐рдиреНрдирд╛рддреНрдордХ рдЕрдиреБрд╡рд╛рдж рд╣реИ, рддреЛ рд░реЗрдЦреАрдп рд░реЗрдЬрд╝рдореНрдкрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд┐рдиреНрдирд╛рддреНрдордХ рдмрдирд╛рд╡рдЯ рдХреЛ рднрд┐рдиреНрдирд╛рддреНрдордХ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдзреБрдВрдзрд▓рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рднреМрддрд┐рдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд┐рдХреНрд╕реЗрд▓-рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИред рдпрд╛рдиреА рджрд╛рдВрддреЗрджрд╛рд░ рдмрдирд╛рд╡рдЯ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рдЕрдиреБрд╡рд╛рдж рд▓рд╛рдЧреВ рдХрд░рдирд╛ред

рдлрд┐рдХреНрд╕ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдЖ рдЬрд╛рдПрдЧрд╛:

  1. рдкрд╣рд▓рд╛ рднрд╛рдЧ рдЬреЛ рд╣рдорд╛рд░реЗ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛рдкреБрдВрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрднрдЧ рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ WIP рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдмрдЧ рд╣реИ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред
    https://codereview.chromium.org/2075873002/
  2. рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЬреЛ рд╣рдорд╛рд░реЗ рдЯрд╛рдЗрд▓рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рд╕реНрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕реЗрдЯ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЯрд╛рдЗрд▓ рдХрд╡рд░реЗрдЬ рдХреА рдЧрдгрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдкреИрдорд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдкреНрддрд╛рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореИрдВ M53 рд╢рд╛рдЦрд╛ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдЙрддрд╛рд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдордп рддрдВрдЧ рд╣реИред рдмрд╣реБрдд рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ M54 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

https://bugs.chromium.org/p/chromium/issues/detail?id=600120

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯрд░ рдХреЛ:

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реНрдиреИрдкрд┐рдВрдЧ рдХреЛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрд▓реНрд╕ рдореЗрдВ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╕реАрдо рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред рд╣рдо рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЯрд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЕрднреА рднреА рд╕реАрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдПрдХрдорд╛рддреНрд░ рдЬреНрдЮрд╛рдд рд╕рд╣реА рд╕рдорд╛рдзрд╛рди FSAA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдХреЛрдИ рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реАрдкреАрдпреВ / рдореЗрдореЛрд░реА рд▓рд╛рдЧрдд рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЧрд▓рдд рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдЧрд▓рдд рджрд┐рдЦрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: http://jsbin.com/wayapiz/

рдХреНрд░реЛрдо рд╕рд╣реА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдПрдХ рдЕрдЯрдХ рд╕реБрдЕрд░ рдХреА рддрд░рд╣ рдЦреВрди рдмрд╣ рд░рд╣рд╛ рд╣реИред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 49x49 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд▓рд╛ рдмреЙрдХреНрд╕, 49x50 рдХреЗ рд░реВрдк рдореЗрдВ рджреВрд╕рд░рд╛ рдмреЙрдХреНрд╕ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдПрдЬ рдкрд╣рд▓рд╛ рдмреЙрдХреНрд╕ 50x50 рдХреЗ рд░реВрдк рдореЗрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдмреЙрдХреНрд╕ 50x49 рдХреЗ рд░реВрдк рдореЗрдВред рджреЛрдиреЛрдВ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рдЖрдк рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдЙрдбрд╝рд╛ рджреЗрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдУрд╡рд░рд▓реИрдк рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдП 4 рдкреЗрдкрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЛрд╕реНрдЯрд░ рдмрдирд╛рдирд╛ред рд╕рднреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрд▓ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рднреМрддрд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкрд┐рдХреНрд╕реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдУрд╡рд░рд▓реИрдк рдХреА рдЪреМрдбрд╝рд╛рдИ рдЙрд╕ рдЫреЛрдЯреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 1/4 рдЖрдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдУрд╡рд░рд▓реИрдк рдХреЗ 4 рдкрд┐рдХреНрд╕реЗрд▓ рдЬреЛрдбрд╝реЗрдВред

рдиреАрдЪреЗ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд░рд┐рдкреЛрд░реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ repro рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ repro рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ cc рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдкрде рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдореЗрдВ рдПрдХ рдкрд░рдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареЛрд╕ рд░рдВрдЧ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛, рддреЛ рд╣рдо рдЗрд╕реЗ SolidColorLayerImpl рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреИрдорд╛рдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рд░реАрдкреНрд░реЛ рд╣реИ: http://jsbin.com/hodoxew/

рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдЖрдХрд╛рд░ (100, 100) рдХреЗ SolidColorLayerImpl рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдЖрдХрд╛рд░ (100, 100) рдХреЗ рдПрдХрд▓ рдареЛрд╕ рд░рдВрдЧ рдХреНрд╡рд╛рдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ рдбреНрд░реЙ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдЯреВ (99.5, 99.5) рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдкрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдВрдЯреА-рдЕрд▓рд┐рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рдкрд┐рдХреНрд╕рд▓ рдХрд╛ рд╕рдмрд╕реЗ рджрд╛рд╣рд┐рдирд╛ рдХреЙрд▓рдо рдФрд░ рдирд┐рдЪрд▓рд╛ рд░реЛ рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢реА рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред

рджреВрд╕рд░реА рдУрд░, рдЕрдЧрд░ рд╣рдо рдкрд░рдд рдХреЛ рдЧреИрд░-рдареЛрд╕ рд░рдВрдЧ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕реАрд╕реА рдореЗрдВ рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЕрдм рд╕рдорд╕реНрдпрд╛ рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрддреА рд╣реИ:

  1. рдЕрдВрддрд┐рдо рдЯрд╛рдЗрд▓ рдХрд╛ рдареЛрд╕ рд░рдВрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: http://jsbin.com/zexawa/

рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЖрдХрд╛рд░ рдЧреЛрд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреЗрд▓ рдХреА рдЧрдИ рдкрд░рдд рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ (600, 300) * 0.995 = (597, 298.5) рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХ (597, 299) рдХреЗ рд░реВрдк рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред

  1. рдЧреИрд░-рдареЛрд╕ рд░рдВрдЧ рдХреА рд╕реВрдЪреА рдЯрд╛рдЗрд▓, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: http://jsbin.com/mewaguf/

рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЖрдХрд╛рд░ рдЧреЛрд▓ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреЗрд▓ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ (600, 300) * 0.995 = (597, 298.5) рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИ, рдЙрддреНрдкрдиреНрди рдХреНрд╡реИрдб (597,299) рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧреАред рдПрдВрдЯреА-рдПрд▓рд┐рдпрд╛рд╕ рдХреЗ рдХрд╛рд░рдг рдкрд┐рдХреНрд╕рд▓ рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд▓реЗрдпрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд▓рд░ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рдПрд▓рд┐рдореЗрдВрдЯ рдХрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд▓рд░ рд╣реИ рдЬрд┐рд╕рдиреЗ рд▓реЗрдпрд░ рдмрдирд╛рдпрд╛ рд╣реИред

рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХреЛрдИ рд╕реАрд╡рди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдЦреВрди рдмрд╣рд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: http://jsbin.com/vigufo/

рдЧреИрд░-рдареЛрд╕ рд░рдВрдЧ рдЯрд╛рдЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛:
http://playground-leaflet.rhcloud.com/giqo/edit?output

@hyperknot рд╢рд╛рдирджрд╛рд░ рдЕрдкрдбреЗрдЯ, рд▓реЗрдХрд┐рди рд╡реЗ рджреЛ рдЙрджреНрдзрд░рдг рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ (рдПрдХ рдореЗрдВ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓рд╛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдлрд┐рдХреНрд╕ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ)ред рддреЛ рдХреНрдпрд╛ рд╣рдо рдПрдХ рдареАрдХ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛?

@ рдЖрдкрдХрд╛ рдЦреЗрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкреВрд░рд╛ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВред рддреЛ рдореВрд▓ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдереА:
https://bugs.chromium.org/p/chromium/issues/detail?id=600120

рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдореБрджреНрджреЗ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛:
https://bugs.chromium.org/p/chromium/issues/detail?id=521364

рдЙрд╕ рдЕрдиреНрдп рдореБрджреНрджреЗ рдореЗрдВ, рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдореВрд▓ рд▓рдВрдмрд╛ рдЙрддреНрддрд░ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЬрд╛рдБрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреИрдЯрд▓ рдХреЗрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕рдХреЗ рдХрд╛рдо рд╕реЗ рддрдп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдиреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛:

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдкрддреНрд░рдХ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ 600120 рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛ рдФрд░ рдЕрдкрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред

рдЕрдм рдХреИрдЯрд▓реЙрдЧ рдмрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреИрдЯрд▓ рдмрдЧ рдореЗрдВ рджреВрд╕рд░рд╛ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛ рд╣реИред BTW, рдЕрднреА рдирд╡реАрдирддрдо рдЕрдкрдбреЗрдЯ рд╣реИ:

рдореИрдВрдиреЗ рдореЛрдмрд╛рдЗрд▓ Google рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рднреА рдЧреНрд░рд╕реНрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпреВрдЖрдИ рдЯреНрд░рд┐рдХ рдХреАред

рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд┐рдирдЪ рдЬреВрдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпреВрдкреЛрд░реНрдЯ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬреЗрдПрд╕ рдореЗрдВ рдЪреБрдЯрдХреА рдЬрд╝реВрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЪреБрдЯрдХреА рдЬрд╝реВрдо рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдЕрднреА рднреА рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд╕реАрдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдмрд╣реБрдд рд╕реВрдХреНрд╖реНрдо)ред рдЬреВрдо рдЬреЗрд╕реНрдЪрд░ рдЦрддреНрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╡реЗ рд╕реНрдХреЗрд▓ рдлреИрдХреНрдЯрд░ рдХреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╕рдмрд╕реЗ рдирдЬрджреАрдХреА рдЯрд╛рдЗрд▓ рд╕реЗрдЯ рдкрд░ рд╕реНрдиреИрдк рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрд▓реЗрдВ рдореВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рдЬрд╝реВрдо рдЬреВрдо рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрд╢рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдХреЛрдИ рдареЛрд╕ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдЕрдиреНрдп рдкреЗрдВрдЯ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

BTW, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ Google рдореИрдкреНрд╕ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдПрдХ) рд╣рдорд╛рд░реЗ рдЬреИрд╕реА рд╣реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИред

@mourner @IvanSanchez рд╡рд┐рд▓-рдЪреЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣рд╛рд░реНрдб-рдХреЛрд░ рдкреНрд░рд╢реНрди:
https://bugs.chromium.org/p/chromium/issues/detail?id=600120#c15

рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдкрд░рддрдХрд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрд▓ рдЕрдкрдиреА рдкрд░рдд (рдЯреНрд░рд╛рдВрд╕рд▓реНрдпреВ 3 рдбреА) рдореЗрдВ рдордЬрдмреВрд░ рд╣реИ, рдФрд░ рдЗрди рдкрд░рддреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЖрдВрд╢рд┐рдХ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рддрдХ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдореИрдк рдЯрд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рддреЛ рд▓реЗрдпрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ drawImageRect + рднрд┐рдиреНрдирд╛рддреНрдордХ CTM рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рддрдм рддрдХ рд╕реНрдХреЗрд▓ рд╕реНрдХреЗрд▓ рд╡реИрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рдирд╛рд░реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдкрд┐рдХреНрд╕реЗрд▓-рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдУрд▓реЗ рд╕рдВрдпреЛрдЧ рдмрдврд╝рдд рд╡рд┐рд░реЛрдзреА рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрд╕рддрдд рдПрдП рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдХреЗ рдЦреВрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдирдХреНрд╢реЗ рдХреЛ рдПрдХ рдЧреИрд░-рднрд┐рдиреНрдирд╛рддреНрдордХ рдкреИрдорд╛рдиреЗ (1.0 рдХрд╣реЛ) рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ atscically рдбрд╛рдЙрдирд╕реНрдХреЗрд▓ рдХрд░реЗрдВ:

1) рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯрд╛рдЗрд▓ рд▓реЗрдпрд░рд╛рдЗрдЬреЗрд╢рди рд╕реЗ рдмрдЪреЗрдВ (рдЙрдкрдпреЛрдЧ "рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди) (" рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд╛рдиреНрдЯ 3 рдбреА () ") рдХреЗ рдмрдЬрд╛рдп")
2) рдмрд▓ рдХрдВрдЯреЗрдирд░ (рдкреВрд░рд╛ рдирдХреНрд╢рд╛) рд▓реЗрдпрд░рд╛рдЗрдЬреЗрд╢рди (рдХрдВрдЯреЗрдирд░ рдкрд░ "рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рд╕реНрдХреЗрд▓ 3 рдбреА ()" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)
3) рдПрдХ рдкреИрдорд╛рдиреЗ == 1.0 рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдкрд░рдд рдлреЛрдбрд╝реЗ рдХреЛ рдмрд▓

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдорд╛рдирдЪрд┐рддреНрд░ рдЯрд╛рдЗрд▓ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ 1.0 (=> рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдкрд┐рдХреНрд╕реЗрд▓-рд╕рдВрд░реЗрдЦрд┐рдд => рдХреЛрдИ рд╕реАрдбрд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ) рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рд╛рде rasterized рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдкреВрд░реЗ рдирдХреНрд╢реЗ рдХреА рдкрд░рдд рдХреЛ рдкрд░рдорд╛рдгреБ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ-рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ # 3 рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реИрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ

  • рдкреИрдорд╛рдиреЗ (1) рдФрд░ рдЗрдЪреНрдЫрд╛-рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: рд░реВрдкрд╛рдВрддрд░рдг (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП https://groups.google.com/a/chromium.org/forum/# тАЛтАЛ.topic/blink-dev/Ufwrhx_iZ7U рджреЗрдЦреЗрдВ)
  • рдкрд╣рд▓реЗ рд░реИрд╕реНрдЯрд░ рдкрд╛рд╕ рдХреЗ рдмрд╛рдж рд▓реЗрдпрд░ рд╕реНрдХреЗрд▓ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ

рдЙрджрд╛ред http://jsbin.com/yaqeru/10/embed?output

chrishtr / danakj рдХреНрдпрд╛ рдореБрдЭреЗ рд▓реЗрдпрд░ рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрдХреЗрд▓ рд╢рдмреНрджрд╛рд░реНрде рд╕рд╣реА рдорд┐рд▓рд╛, рдФрд░ рдХреНрдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рди рдХреЗ рд▓рд┐рдП рд▓реЗрдпрд░ рд░реИрд╕реНрдЯрд░рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдХреЗрд▓ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реБрдзрд╛рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЙрд╕ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдзрдиреНрдпрд╡рд╛рдж!), рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ ... @cmulders 'рдХреЗ рдордВрдХреАрдкреИрдХ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдПрдХ рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИ, рдИрдПрд╕ 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдбрдмрд▓-рдкреИрдЪ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рдХрд┐рд╕реА рдХреЛрдкрд┐рд╕реНрдЯрд╛ рдЕрдЪреНрдЫрд╛рдИ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред

https://gist.github.com/ericsoco/5712076f69f9068b11d41262b9b96966

import leaflet from 'leaflet';
// ...
patchMapTileGapBug();
// ...
function patchMapTileGapBug () {

    // Workaround for 1px lines appearing in some browsers due to fractional transforms
    // and resulting anti-aliasing. adapted from <strong i="9">@cmulders</strong>' solution:
    // https://github.com/Leaflet/Leaflet/issues/3575#issuecomment-150544739
    let originalInitTile = leaflet.GridLayer.prototype._initTile;
    if (originalInitTile.isPatched) return;

    leaflet.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();

            tile.style.width = tileSize.x + 1 + 'px';
            tile.style.height = tileSize.y + 1 + 'px';
        }
    });

    leaflet.GridLayer.prototype._initTile.isPatched = true;

}

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕реЗ рдХрдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдкрд░: рдпрджрд┐ рдЖрдк рдЬрдбрд╝рддрд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реИрдВ, рддреЛ рдирдХреНрд╢реЗ рдкрд░ intertia:false рдЬрдорд╛ рдХрд░рдирд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрднрд╡рддрдГ zoomAnimation:false

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ (рдУрд╡рд░рдХрдореНрдкреНрд▓рд┐рдХреЗрдЯреЗрдб) рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд▓рд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ https://github.com/Leaflet/Leaflet.TileLayer.NoGap рдкрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реИ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдкреБрд░рд╛рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ / рдлреЛрди рдкрд░ рдЙрд╕ рдЪреАрдЬ рдХреАред

cc @Eschon @hyperknot

BTW, рдмрдЧ рдЙрдЪреНрдЪ-DPI (2560x1140) рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреА рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рд▓реАрдлрд▓реЗрдЯ рдлреНрд░реИрдХреНрд╢рдирд▓ рдЬреВрдо рдФрд░ рди рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреВрдорд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ред

рджреЗрд░ рд╕реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдбреЗрдореЛ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдлрд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЬрдм рд╕реЗ рдореИрдВ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдкрддреНрд░рдХ рдореИрдВ рдХреЗ рдПрдХ рдкреБрд░рд╛рдиреЗ 1.0-рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ 1.0.0-rc3 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрджреНрдпрддрди http://leafletjs.com/download.html

рдкрд╣рд▓реА рдмрд╛рдд рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ рдЧреМрд░ рдХрд┐рдпрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рддреАрдд рд╣реЛрддреА this._map рдмрджрд▓ рджрд┐рдпрд╛ред

рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдзреАрдорд╛ рд╣реИред рдЦрд╛рд╕рдХрд░ рдХреНрд░реЛрдо рдореЗрдВ рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рднреА рдзреАрдорд╛ рдерд╛ред

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдлреЛрди рдкрд░ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рдерд╛ред
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд▓рдЧрддрд╛ рд╣реИ, рдХреНрд░реЛрдо рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред
IOS рдкрд░ рд╕рдлрд╛рд░реА рднреА рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рд▓рдЧрддреА рд╣реИред

рдПрдХ рдФрд░ рд╡рд┐рдЪрд┐рддреНрд░ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреНрд░реЛрдо рдФрд░ рд╕рдлрд╛рд░реА рдкрд┐рдВрдЪ-рдЬреВрдорд┐рдВрдЧ рддрдп рд╕реНрддрд░реЛрдВ рдкрд░ рдЬрд╛рдХрд░ рд▓рдЧрддрд╛ рд╣реИ

@Eschon рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рд╣рдореЗрд╢рд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЧрд▓рддреА map рдХреЗ рдмрдЬрд╛рдп this._map :-(

рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдзреАрдорд╛ рд╣реИред рдЦрд╛рд╕рдХрд░ рдХреНрд░реЛрдо рдореЗрдВ рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рднреА рдзреАрдорд╛ рдерд╛ред

рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдордВрджреА рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреИрдирд╡рд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ IE9-IE11 рдкрд░ рдПрдХ рд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдерд╛ред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдпрд╣ рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдзреАрдорд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ!

рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдУрдПрд▓ 3 рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рд╡реЗ рдХреИрдирд╡рд╛рд╕ рдХрдВрдкреЛрдЬрд╝рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рд╡рд┐рдЪрд┐рддреНрд░ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреНрд░реЛрдо рдФрд░ рд╕рдлрд╛рд░реА рдкрд┐рдВрдЪ-рдЬреВрдорд┐рдВрдЧ рддрдп рд╕реНрддрд░реЛрдВ рдкрд░ рдЬрд╛рдХрд░ рд▓рдЧрддрд╛ рд╣реИ

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл zoomDelta рдФрд░ zoomSnap рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд┐рдЬрд╝рд▓рд┐рдВрдЧ рд╣реИ, рдФрд░ рдЗрд╕ рдмрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдордВрджреА рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреИрдирд╡рд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ IE9-IE11 рдкрд░ рдПрдХ рд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдерд╛ред

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреНрд░реЛрдо рджреЗрд╡-рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рдмрдирд╛рдирд╛ рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рдмрд╛рдд рд╣реИред рдлрд┐рд░ рд▓реМ рдЪрд╛рд░реНрдЯ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЪреАрдЬреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдмрд╕ рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдФрд░ рджреВрд╕рд░рд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ред рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рдХрд┐ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд "рд╢рд┐рдЦрд░" рдерд╛ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╢рдмреНрдж рд╣реИ) _onZoomTransitionEnd

рдлрд┐рдХреНрд╕ _onZoomTransitionEnd рдмрд┐рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 1.8ms рд▓рд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪрд╛рд░реНрдЯ рдореЗрдВ рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ред рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ 6ms рд▓рд┐рдпрд╛ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ "рд╢рд┐рдЦрд░" рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред

рдЕрдиреНрдп рджреЛ "рдЪреЛрдЯрд┐рдпрд╛рдВ" рджреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЪреАрдЬреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди рджрд┐рдЦрддреА рд╣реИрдВ, рдмрд╕ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрдбрд╝рд╛ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрди рджреЛрдиреЛрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рд╕рд╣реЗрдЬрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдВрджреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ .002 рдХрд╛ рдПрдХ рд╕реНрдХреЗрд▓ рдХрд╛рд░рдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж 3 рдбреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред ".002" рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛рд░рдХ рдерд╛ред рдореБрдЭреЗ рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирдЬрд╝рд░ рдирд╣реАрдВ рдЖрдпрд╛ред

рдирд╡реАрдирддрдо рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдЖрдИрдИ 11 рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред 40 "4k рдореЙрдирд┐рдЯрд░ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рдЬрд╝реВрдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде 150% рддрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЗрд╕ рдмрдЧ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? @AlexanderUhl рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╢реЛрдзрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрдм рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЪрд▓рддреА / рдЬрд╝реВрдо рдХрд░рддреЗ рд╕рдордп рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ will-change рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рдПрдлрдПрдл рдкреНрд░рджрд░реНрд╢рди рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╣реИ: https://github.com/Leaflet/Leaflet/issues/4686

@themre : рд╕реНрдХреЗрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╕рднреА рдЗрдореЗрдЬ рдЯрд╛рдЗрд▓реНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд╕реНрдЯрд╛рдЗрд▓ рдЕрдЯрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
style="width: 256px; height: 256px; transform: translate3d(545px, 745px, 0px) scale(1.002); opacity: 1;"

рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЫрд╡рд┐ рдереЛрдбрд╝реА рдЦрд┐рдВрдЪ рдЬрд╛рдПрдЧреА рдЬреЛ рдЕрд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рд╣реИред рдореИрдВрдиреЗ 1.0.3 рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдореЗрдВ will-change CSS рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╕рдлреЗрдж рдЕрдВрддрд░ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдХреБрдЫ рдФрд░ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

Ofc рдпрд╣ img рдХреЛ рд╕реНрдЯреНрд░реЗрдЪ рдХрд░рддрд╛ рд╣реИ, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ ;-) рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди tbh рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдкреНрд░рдХреГрддрд┐ рд╣реИ, рд╣реИ рдирд╛? рдлрд┐рд░ рднреА, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрд░реЗ рд▓рд┐рдП рдирдЧрдгреНрдп рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореИрдкрдмреЙрдХреНрд╕, рдпрд╣рд╛рдВ, рдУрдПрд╕рдПрдо рдЖрджрд┐ рд╕реЗ рдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдкрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ)

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп translate , рддреЛ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреБрд╡рд╛рдж 3 рдбреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд╡рд╛рдж рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╡рд╛рдж 3 рдбреА рдХреЛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВред

рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦреЗрдВ:
translatemap

image
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (1.0.3) рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╕рдВрднрд╡рддрдГ 1.1 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

2017. рдорд╛рд░реНрдЪ 8., рдмреБрдз 10:13 рдмрдЬреЗ, рдЧреМрд░рд╡ рд╕реВрдЪрдирд╛рдПрдБ @ithub.com рдиреЗ рд▓рд┐рдЦрд╛:

[рдЫрд╡рд┐: рдЫрд╡рд┐]
https://cloud.githubusercontent.com/assets/13112509/23697357/7dcc4cf6-040d-11e7-881a-df3a44254015.png
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (1.0.3) рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред

-
рдЖрдк рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Leaflet/Leaflet/issues/3575#issuecomment-284987808 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAeKj_23QbtFCaXeFjGRJcU-jg0284xBks5rjnEvgaJpZM4OO8Jh
ред

рдпрджрд┐ nx рдФрд░ ny рдХреЗ рдорд╛рди, рдЬреЛ рдХрд┐ .leaflet-pane.leaflet-map-pane div рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЛ рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдлрд╝рд╛рд░реА рдкрд░ рд▓рд╛рдЗрди / рдЧреИрдк рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдореИрдВ рдХреЛрдИ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ (рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП)ред

рдЗрд╕реЗ рдЦреЛрдЬреЛ:
translate3d("+n.x+"px,"+n.y+"px,0)")
рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
translate3d("+Math.round(n.x)+"px,"+Math.round(n.y)+"px,0)")

@LudwigBogner рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реИрд╕реЗ рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд╝реВрдо рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЬрд╝реВрдо рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди)ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ, рдКрдкрд░ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЕрдиреБрд╡рд╛рдж рд╕реНрд╡рдпрдВ рдореЗрдВ рдЧреЛрд▓ рд╣реИрдВ: http://playground-leaflet.rhcloud.com/vicu/edit?html , рдЖрдЙрдЯрдкреБрдЯ

рдмрд╕ рдЗрд╕ рдПрдХ рд╕реЗ рдереЛрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рдпрд╛ рдлрд╛рдпрд░рдлреЙрдХреНрд╕ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рд╕рдлрд╛рд░реА рдкрд░ рдмрд╕ рдХреБрдЫ рдЖрдВрд╢рд┐рдХ рдЭреВрдореЗред

рдкреНрд░рдЧрддрд┐?

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА Chrome рдФрд░ Firefox (Mac) рдкрд░ рдореМрдЬреВрдж рд╣реИред рдореИрдВ рдПрдХ рдЬрд╝реВрдордбреЗрд▓реНрдЯрд╛ рдФрд░ 0.25 рдХрд╛ рдЬрд╝реВрдорд╕реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рддрд╛рдЬреНрдЬреБрдм рд╣реИ, .leaflet-tile { will-change: auto !important; } (рдпрд╛ "рдкрд░реЗрд╢рд╛рди") рд╕реЗрдЯ рдХрд░рдирд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ (рдХреЗрд╡рд▓) рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдЕрднреА рднреА рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред

рдЬрдбрд╝рддрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдЧреЛрд▓рд╛рдИ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП Transl3d рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░реЛрдВ рдиреЗ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

@ рдЬрд╡рд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ L_DISABLE_3D рд╕реЗ true , IIRC рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдлрд▓рддрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, will-change рдмрджрд▓рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдирдХреНрд╢рд╛ред рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдЬрд╝реВрдо рдПрдирд┐рдореЗрд╢рди, рдкреИрдирд┐рдВрдЧ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рджреЗрдЧрд╛ред

рдпрд╣ рд╕рдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдирдордХ рдХреЗ рдПрдХ рджрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд▓реЗ рд▓реЛ, рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рддрдм рддрдХ рдпрд╣ рдХрд╛рдлреА рд╕рдордп рдерд╛ред

@ рдЬрд╡рд╛рдЗрди
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдКрдкрд░

/* 
 * Workaround for 1px lines appearing in some browsers due to fractional transforms
 * and resulting anti-aliasing.
 * https://github.com/Leaflet/Leaflet/issues/3575
 */
(function(){
    var originalInitTile = L.GridLayer.prototype._initTile
    L.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();

            tile.style.width = tileSize.x + 1 + 'px';
            tile.style.height = tileSize.y + 1 + 'px';
        }
    });
})()

рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВред @ рдЗрд╕реНрдХреЙрди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдХреНрд░реЛрдо рдпрд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдХреЛрдИ рдЕрдзрд┐рдХ рдЕрдВрддрд░рд╛рд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред

рдЬреЛ рд▓реЛрдЧ "1px рдлрд┐рдХреНрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ рдХрд┐ рдЖрдкрдХреА рдЫрд╡рд┐рдпрд╛рдВ рдзреБрдВрдзрд▓реА рд╣реЛ рдЬрд╛рдПрдВрдЧреА рдФрд░ рдереЛрдбрд╝рд╛ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛:

рдореЗрд░реЗ рд▓рд┐рдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдореВрд▓ рдЪрд┐рддреНрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдФрд░ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХрд░рдиреЗ рдореЗрдВ рдШрдВрдЯреЛрдВ рдмрд┐рддрд╛рдП, рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ L_DISABLE_3D = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЯрд┐рдордЯрд┐рдорд╛рддреЗ рд╣реБрдП рдПрдирд┐рдореЗрд╢рди рдФрд░ рдЙрдЫрд▓-рдХреВрдж рдХреЗ рд╕рд╛рде рд╕рд╣рди рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: рдореИрдВ рдкрддреНрд░рдХ-рд░реЗрдЦрд╛рдкреБрдВрдЬ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯрд┐рдВрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

    map = L.map('map', {
        center: [3250, 1700],
        zoom: 5,
        minZoom: 2,
        maxZoom: 6,
        maxBoundsViscosity: 1,
    });

рдкреНрд░рд╢реНрди: рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ "рд╕реНрдкреЗрд╕" рдмрдЧ рдирд╣реАрдВ рд╣реИ?

рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ Google рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓ рд▓рд┐рдпрд╛ рд╣реЛред

@ n3tman рдХреНрдпрд╛ рдЖрдкрдиреЗ рднреА NoGap рдкреНрд▓рдЧрдЗрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? рдПрдХ рд╢реЙрдЯ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@perliedman рдЗрд╕ рдПрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ .. Cannot read property 'appendChild' of undefined _initContainer рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред
USC рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (1.0.2 рддрдХ) рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА - рд╡рд╣реА рдкрд░рд┐рдгрд╛рдоред рдбреЗрдореЛ рдХреНрд░реЛрдо / рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣рд╛рдБ 1px рдЕрдВрддрд░ред

рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг 66.0.3359.139 (64-рдмрд┐рдЯ)
рд╡рд┐рдВрдбреЛрдЬ 10 (1709)
рез.рей.1

рдЬрдм рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ рддреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рднрд┐рдиреНрдирд╛рддреНрдордХ рдЬрд╝реВрдо рд╕реНрддрд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ GoogleMutant рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдБ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЬрд╝реВрдо рд╕реНрддрд░ рдХреЛ рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдБ рдФрд░ рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдШреВрдорддрд╛ рд╣реВрдБред

рдпрд╣ # 6040 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд # 6069 рдФрд░ (рдкреНрд░рдХрд╛рд░) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдВрддрд░рд╛рд▓ рдЕрднреА рднреА рдЬреВрдорд┐рдВрдЧ рдФрд░ рдкреИрдирд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ GoogleMutant рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ

@Cmulders 1px рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕реЗ рдкреНрд░реЗрд░рд┐рдд ... рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдзреБрдВрдзрд▓рд╛ рдкреНрд░рднрд╛рд╡ рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдиреАрдЪреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдореИрдВрдиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ...) рдФрд░ рдпрд╣ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рдЧреИрд░-рдЖрдВрд╢рд┐рдХ рдЬрд╝реВрдо рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рддреЗрдЬ рдЫрд╡рд┐рдпрд╛рдВ рд░рдЦрддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд 0.5px рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ (Android рдкрд░ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдкрд░ рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ, рд╕рд╛рде рдореЗрдВ USC 1.3.4)

(function(){
    var originalInitTile = L.GridLayer.prototype._initTile
    L.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();
            var map = this._map;
            var isFix = function() {
                return !(parseFloat(tile.style.width) % 0 === 0);
            };
            var fixOn = function() {
                if(!isFix()) return;
                tile.style.width = tileSize.x + 0.5 + 'px';
                tile.style.height = tileSize.y + 0.5 + 'px';
            };
            var fixOff = function() {
                if(isFix()) return;
                tile.style.width = tileSize.x + 'px';
                tile.style.height = tileSize.y + 'px';
            };
            var checkFix = function(){
                var zoom = map.getZoom();
                if(zoom % 1 === 0) {
                    fixOff();
                }
                else {
                    fixOn();
                }                
            };
            map.on('zoomstart',fixOn);
            map.on('zoomend',checkFix);
            checkFix();
        }
    });
})()

screen shot 2018-09-28 at 3 56 33 pm
3 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрдЧ рдЕрднреА рднреА рдХреНрд░реЛрдо рдореЗрдВ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ! рдореИрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдпрд╛ рд╕рдлрд╛рд░реА рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @cmulders !

рдпрд╣рд╛рдБ (рд╡рд┐рдВрдбреЛрдЬ 7 рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ SP1)ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдпрд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рд▓рд╛рдЗрдиреЗрдВ, рдХреНрд░реЛрдо рдореЗрдВ рдкреВрд░реА рд▓рд╛рдЗрди рдЧреНрд░рд┐рдб, рд▓реЗрдХрд┐рди IE11 рдореЗрдВ рдареАрдХ рд╣реИред @cmulders рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:

  • рд╡рд┐рдВрдбреЛрдЬ 7 рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ SP1

    • IE11: рдареАрдХ рд╣реИ

    • рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: рдареАрдХ рдирд╣реАрдВ рд╣реИ

  • рд╡рд┐рдВрдбреЛрдЬ 10

    • IE11, рдПрдЬ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: рдареАрдХ рд╣реИ

    • рдХреНрд░реЛрдо: рдареАрдХ рдирд╣реАрдВ рд╣реИ

  • рдореИрдХ рдУ рдПрд╕

    • рд╕рдлрд╝рд╛рд░реА, рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: рдареАрдХ рд╣реИ

  • рд▓рд┐рдирдХреНрд╕:

    • рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: рдареАрдХ рд╣реИ

  • рдПрдВрдбреНрд░реЙрдпрдб:

    • рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: рдареАрдХ рд╣реИ

    • WebView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрдк: рдареАрдХ рд╣реИ

рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
рд╡рд┐рдВрдбреЛрдЬ 7 рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ SP1 рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреАрд╕реА рдкрд░ рдерд╛, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рд╣реА NVIDIA рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рдеред

рдЬрдм AMD Radeon рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 7 рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ SP1 рдкрд░ рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рдХреНрд░реЛрдо рдпрд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд░ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд░реЗрдЦрд╛ рдирд╣реАрдВ!

рдЬреИрд╕рд╛ рдХрд┐ NoGap рд╕реЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдореВрд▓ рдХреЛрдб рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдкрддреНрд░рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдпрд╛рдиреА рдкрддреНрд░рдХ ^ 1.3.3) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛:
https://github.com/Endebert/squadmc/blob/master/src/assets/Leaflet_extensions/NoGapTileLayer.js

рдлрд┐рд░ рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрд╛рдЗрд▓рд▓реЗрдпрд░ рдХреА рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/Endebert/squadmc/blob/master/src/assets/SquadMap.js#L34

рдпрд╣ es6 рдлрдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ NoGap рд╕реЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдореВрд▓ рдХреЛрдб рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдкрддреНрд░рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдпрд╛рдиреА рдкрддреНрд░рдХ ^ 1.3.3) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛:
https://github.com/Endebert/squadmc/blob/master/src/assets/Leaflet_extensions/NoGapTileLayer.js

рдлрд┐рд░ рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрд╛рдЗрд▓рд▓реЗрдпрд░ рдХреА рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/Endebert/squadmc/blob/master/src/assets/SquadMap.js#L34

рдпрд╣ es6 рдлрдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

@Endebert рдХреНрдпрд╛ рдЖрдкрдиреЗ NoGap рдХреЛ рдХрд╛рдо рдореЗрдВ рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛? рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ @ n3tman рдЬреИрд╕реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:
Cannot read property 'appendChild' of undefined _initContainer рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐ред

рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореБрдЭреЗ рдЬреЛ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди рдорд┐рд▓рд╛ рд╣реИ, рд╡рд╣ try ... catch рдХреЛ level.ctx.drawImage(imageSource, offset.x, offset.y, tileSize.x, tileSize.y); рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ
рдФрд░ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХреАред

@TomazicM рд╣рд╛рдВ, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрд░реЗ рдРрдк рд╕реНрдХреНрд╡рд╛рдбрдПрдорд╕реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реНрдиреИрдкрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЖрдВрд╢рд┐рдХ рдЬрд╝реВрдо рд╕рдХреНрд╖рдо рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ: рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг TileLayer.include() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдореИрдВ TileLayer.extend() рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рдЗрд▓рд▓реЗрдпрд░ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

рдЦреИрд░, рдпрд╣рд╛рдВ 2 рдШрдВрдЯреЗ рд▓рдВрдмреА рдЬрд╛рдВрдЪ рд╕реЗ рдореЗрд░рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рд╕рдорд╕реНрдпрд╛ translate3d рдЕрдВрджрд░ рдкрд┐рдХреНрд╕реЗрд▓ рджрд╢рдорд▓рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред

<div class="leaflet-pane leaflet-map-pane" style="transform: translate3d(-10.7773px, -8.41406px, 0px);"></div>

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ L_DISABLE_3D = true рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдЗрд╕ translate3d рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрд╛рдп

рдмрд╕ рджрд╢рдорд▓рд╡ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

```js
var pos = (offset && offset.round()) || new Point(0, 0);
```

  • рдпрд╛ рдХрдИ рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ ...

рдЦреИрд░, рдпрд╣рд╛рдВ 2 рдШрдВрдЯреЗ рд▓рдВрдмреА рдЬрд╛рдВрдЪ рд╕реЗ рдореЗрд░рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рд╕рдорд╕реНрдпрд╛ translate3d рдЕрдВрджрд░ рдкрд┐рдХреНрд╕реЗрд▓ рджрд╢рдорд▓рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЬ 2019 рд╣реИ рдФрд░ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП translate3d рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ GPU рдХрд╛рдлреА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИред рдЕрдЪреНрдЫреА рдиреМрдХрд░реА @mdorda

@ рдорд░реНрджреЛрджрд╛ рд╣рд╛рдп! рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧреЛрд▓рд╛рдИ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ: https://github.com/Leaflet/Leaflet/issues/3575#issuecomment -327237235

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдХреБрдЫ рдлрд░реНрдХ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреА рдЖрд╢рд╛рдУрдВ рдХреЛ рддрдм рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо рдПрдХ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВред

рдХреЛрдгреАрдп 2+ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ ...

const tileLayer = new TileLayer(this.tileLayerUrlTemplate, this.tileLayerOptions);
tileLayer.on('load', () => {
    for (const tile of Array.from(document.getElementsByClassName('leaflet-tile'))) {
        (<HTMLElement>tile).style.height = (tile.clientHeight + 1) + 'px';
        (<HTMLElement>tile).style.width = (tile.clientWidth + 1) + 'px';
    }
});
this.map.addLayer(tileLayer);

рдореИрдВ рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 69.0.1 (64-рдмрд┐рдЯ) рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 10 рдкреНрд░реЛ 1903 рдкрд░ рдЬреАрдЯреАрдЖрд░рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг 1.5.1 рдореЗрдВ рдЖрдВрд╢рд┐рдХ рдЬрд╝реВрдо рдкрд░ рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдЕрдВрддрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред
рдкрд┐рдХреНрд╕реЗрд▓ рдЕрдВрддрд░
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдЧреИрдк рдХрд╛ рдХрд╛рд░рдг рд╢рд╛рдпрдж рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди 3 рдбреА () рд╕реАрдПрд╕рдПрд╕ рдлрдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреЗрд▓ () рдореЗрдВ рд╣реИред
image
рд╕рдВрд╕реНрдХрд░рдг 1.5.1 рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдХреЗрд╡рд▓ рдЕрдиреБрд╡рд╛рдж 3 рдбреА () рдкреИрд░рд╛рдореАрдЯрд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИрдВред


рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдмрдВрдз рд╣реИ, IMMSPgisgroup

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдмрдЧ рдХрд╛ рдХреЛрдИ рд╣рд▓ рдорд┐рд▓рд╛?

рдЗрд╕ рдХреНрд╖рдг рдореЗрдВ рднреА рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

error

рдореИрдВ рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

  • рд╡рд┐рдВрдбреЛрдЬ 10 рд╣реЛрдо 1803
  • Google Chrome рд╡рд░реНрдЬрди 77.0.3865.90 (рдмрд┐рд▓реНрдбрд┐рдХрд▓) (64 рдмрд┐рдЯреНрд╕)
  • рез.рел.рез рдЕрдВрдХ

рдЬрдм рдореИрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╕рдлреЗрдж рд░реЗрдЦрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ

no_error

@ рдЕрд░реНрдирд┐рд╡рд╛рд░ 93

рдирд╛ рдореИрдВрдиреЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕ рдкрд░ рдЕрдкрдиреА рдирдЬрд╝рд░ рд░рдЦреА рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдИ рддрд░рд╣ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдореБрдЦ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдКрдкрд░ рдХреА рдУрд░ рд╣реИ: https://bugs.chromium.org/p/chromium/issues/detail?id=600120

рдХреНрд░реЛрдорд┐рдпрдо рдЯреАрдо рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрджреЗрд╢ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдлрдВрд╕ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирдХреНрд╢реЗ рдпрд╛ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдореБрджреНрджрд╛ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ antialiasing рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди _fractional_ рдХреЗ рдХрд╛рд░рдг рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЬрд╝реВрдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╡рд╛рди рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рдЬрдм рддрдХ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдпрд╛ рд╣реИрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрд▓реЛрдВ рдХреЛ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдмрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реВрдБрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╕реЗ рд╡реЗ 1 рдкреАрдПрдХреНрд╕ рд╕реЗ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯрд╛рдЗрд▓реЗрдВ рдереЛрдбрд╝реА рдмрдврд╝рд╛рдИ рдФрд░ рдмрдврд╝рд╛рдИ рдЬрд╛рдПрдВрдЧреА (1px рд╕реЗ)ред

/* 
 * Workaround for 1px lines appearing in some browsers due to fractional transforms
 * and resulting anti-aliasing.
 * https://github.com/Leaflet/Leaflet/issues/3575
 */
(function(){
    var originalInitTile = L.GridLayer.prototype._initTile
    L.GridLayer.include({
        _initTile: function (tile) {
            originalInitTile.call(this, tile);

            var tileSize = this.getTileSize();

            tile.style.width = tileSize.x + 1 + 'px';
            tile.style.height = tileSize.y + 1 + 'px';
        }
    });
})()

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рднрд╛рдЧреНрдп рд╣реИред рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдЖрдзрд╛рд░ рдХреЗ рд░рдВрдЧ рдХреЗ рдЕрдиреБрд░реВрдк рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдорд╣рд╛рд╕рд╛рдЧрд░ рдЧрд╣рд░реЗ рдиреАрд▓реЗ рд░рдВрдЧ рдХрд╛ рдерд╛, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЯрд╛рдЗрд▓реЗрдВ рдЙрд╕ рд░рдВрдЧ рдкрд░ рдУрд╡рд░рд▓реЗ рдХрд░реЗрдВ, рдХреБрдЫ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░ рджреЗрдВ рдЬреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

рдлрд┐рд░ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ

@colbyfayock рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрд╣рд╛рдВ рдФрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ?

рдореИрдВ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ:

// Fix via https://github.com/Leaflet/Leaflet/issues/3575#issuecomment-150544739
import L from 'leaflet';

(function () {
  if (!L || !L.GridLayer || !L.GridLayer.prototype) return;

  var originalInitTile = L.GridLayer.prototype._initTile;

  L.GridLayer.include({
    _initTile: function (tile) {
      originalInitTile.call(this, tile);

      var tileSize = this.getTileSize();

      tile.style.width = tileSize.x + 1 + 'px';
      tile.style.height = tileSize.y + 1 + 'px';
    }
  });
})();

рд╢реАрд░реНрд╖ рдкрд░ рд░рд┐рдЯрд░реНрди рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ precompiles рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдпрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)

рддреЛ рдореИрдВ рдмрд╕ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдкрддреНрд░рдХ рдЖрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

import L from 'leaflet';
...
import '../plugins/leaflet-tilelayer-subpixel-fix';

рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдП рдмрд┐рдирд╛ рдореЗрд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдЧреЛрд▓ рд░реВрдкрд╛рдВрддрд░рдг рдореВрд▓реНрдп рд╣реИред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдлреНрд░рдВрдЯ рдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ JQuery рд╣реИ
рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдзреБрдВрдзрд▓рд╛ рдпрд╛ рджреЛрд╖ рдХреЛ рджреЗрдЦрд╛ рд╣реИред рдПрдХ рдХреЛрд╢рд┐рд╢ рдХреЗ рдХрд╛рдмрд┐рд▓ рд╣реИред

    this.leftMap.on('move', () => {
      const mapDiv = window.document.getElementsByClassName("leaflet-pane leaflet-map-pane")
      let styleString = mapDiv.getAttribute("style");
      const transformValue = styleString.substring(styleString.indexOf("(")+1,styleString.indexOf("px,"));
      const roundedTransformValue = Math.round(parseFloat(transformValue));
      styleString = styleString.replace(transformValue,roundedTransformValue);
      mapDiv.setAttribute("style",styleString);
    });

@colbyfayock - рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред :(

рдореИрдВ рдЬрд╝реВрдо рд╕реНрдиреИрдк 0 рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

image

рд╕рдорд╛рдзрд╛рди рдХрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рд╣реА рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЬреИрд╕реА рд╕рдВрдЧрдд рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ zoomSnap рдлрд╝реАрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдКрдкрд░ рджреЗрдЦрдирд╛ рдерд╛, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ 0 рдЙрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдореИрдВ рд╡рд░реНрдгрди рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЗрдиреЗрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрдж рд╣реИрдВ?

https://leafletjs.com/examples/zoom-levels/#fractional -zoom

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЙрджрд╛рд╣рд░рдг gif рдХреЗ рдмрд╛рдж рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛

ZoomSnap рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрддреНрд░рдХ рдЬрд╝реВрдо рд╕реНрддрд░ рдХреЛ рд╕реНрдиреИрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдкреВрд░реНрдг рдкреВрд░реНрдгрд╛рдВрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдиреИрдк рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ

рдкрддреНрд░рдХ 1.7-dev рдФрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ 7 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ 10 рдореЗрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдЯрд╛рдЗрд▓ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рд▓рд╛рдЗрдиреЗрдВред IE11 рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ (рдЧреИрд░ рдХреНрд░реЛрдо) рдПрдЬ, рдирдП рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рдХреНрд░реЛрдо рдЖрдзрд╛рд░рд┐рдд рдПрдЬред

рджреЛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдПрдХ <script>L_DISABLE_3D = true;</script> 3 рдбреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдирд┐рдореЗрдЯреЗрдб рд╕рдВрдЪрд╛рд▓рди рдЦреЛрдирд╛ред рдЕрдиреНрдп рдЯрд╛рдЗрд▓ HTML рддрддреНрд╡реЛрдВ рдХреЛ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдереЛрдбрд╝реА рдзреБрдВрдзрд▓реА рдЯрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реЗрдВрдЧреАред

рдореБрдЭреЗ рдмрд╣реБрдд рд╣реА рдЖрджрд┐рдо рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЖрджрд┐рдо рд╣реЛрдиреЗ рдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рдпрд╣ 100% рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред

рд╕реЙрд▓реНрдпреВрд╢рди рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореИрдк рдкреИрди рдкрд░ рджреЛ рдмрд╛рд░ рдПрдХ рд╣реА рдЖрдХреНрд░рд╛рдордХ рдЯрд╛рдЗрд▓ рдкрд░рдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдПрдХ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рдиреАрдЪреЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдСрдлрд╕реЗрдЯ [-1, -1] рд╣реИред

рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<style>
  .originOffset {
    transform: translate(-1px, -1px);
  }
</style>

<script>
  var pane1 = map.createPane('pane1');
  var pane2 = map.createPane('pane2');

  pane1.style.zIndex = 210;
  pane2.style.zIndex = 220;

  L.DomUtil.addClass(pane1, 'originOffset');

  var layer1 = L.tileLayer( ... , {
    pane: 'pane1',
    ...
  });
  var layer2 = L.tileLayer( ... , {
    pane: 'pane2,
    ...
  });
  var layer = L.layerGroup([layer1, layer2]);
</script>

@cmulders рд╕реБрдЭрд╛рд╡ рд╕реЗ рдореИрдВрдиреЗ рдЗрди рд▓рд╛рдЗрди рдХреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдЕрдзрд┐рдХ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ

map.on ('рдЬрд╝реВрдореЗрдВрдб рдбреНрд░реИрдЧ', рдлрдВрдХреНрд╢рди () {
$ ('# рдирдХреНрд╢рд╛> div.leaflet-pane.leaflet-map-pane> div.leaflet-pane.leaflet-рдЯрд╛рдЗрд▓-рдлрд▓рдХ> div> div> img')ред рдкреНрд░рддреНрдпреЗрдХред
рдЕрдЧрд░ (рд╕реНрдЯреНрд░рд┐рдВрдЧ ($ (рдпрд╣) .css ("рдЪреМрдбрд╝рд╛рдИ"))ред рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ('5') === рдЧрд▓рдд) (
var imgW = рд╕реНрдЯреНрд░рд┐рдВрдЧ ($ (рдпрд╣) .css ("рдЪреМрдбрд╝рд╛рдИ"))ред рд╡рд┐рднрд╛рдЬрди ("px") .join (".5")ред
var imgH = рд╕реНрдЯреНрд░рд┐рдВрдЧ ($ (рдпрд╣) .css ("рдКрдВрдЪрд╛рдИ"))ред рд╡рд┐рднрд╛рдЬрди ("px") .join (".5")ред
$ (рдпрд╣) .cs ("рдЪреМрдбрд╝рд╛рдИ", imgW);
$ (рдпрд╣) .cs ("рдКрдВрдЪрд╛рдИ", imgH);
}
};

рдореИрдВ @mdorda рдХреЗ рд╕рд╛рде leaflet-map-pane рдХреЙрд▓ translate3d() , рддреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдЕрдВрд╢реЛрдВ рдХреЗ рдмрдЬрд╛рдп, рддрдм (рдореЗрд░реЗ рдЕрдВрдзрд╛ рдкрд░) рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд╕реБрдВрджрд░ рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрдм рдЕрдВрд╢реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХреБрдЫ рд░рд╛рд╣рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ L.Draggable._onMove рдХреБрдЫ рдлрд░реНрд╢ рдореЗрдВ рд░рдЦрдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ред

    offset.x = Math.floor(offset.x / this._parentScale.x);
    offset.y = Math.floor(offset.y / this._parentScale.y);

рдпрд╛ L.DomUtils.setTransform

    pos.x = Math.floor(pos.x);
    pos.y = Math.floor(pos.y);

рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЕрдВрд╢ рди рджрд┐рдП рдЬрд╛ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡рдд: рдмреЗрдХрд╛рд░ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрд▓ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рднрд┐рдиреНрдирд╛рддреНрдордХ рдЕрдиреБрд╡рд╛рджреЛрдВ (рджрд╛рдПрдВ) рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред

рдореБрдЭреЗ рджреЛ рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рд╣реБрдП, рдЗрд╕рдХреЗ рдмрд╛рдж рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬрд╝реВрдо рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ рдореЗрдВ рдирд╣реАрдВ
рдмрд╕ рдЬреВрдо рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реЗрдВ рдФрд░ рд╕рднреА рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВ, рдпрд╣ рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рдерд╛

рдореБрдЭреЗ рджреЛ рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рд╣реБрдП, рдЗрд╕рдХреЗ рдмрд╛рдж рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬрд╝реВрдо рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ рдореЗрдВ рдирд╣реАрдВ
рдмрд╕ рдЬреВрдо рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реЗрдВ рдФрд░ рд╕рднреА рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВ, рдпрд╣ рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рдерд╛

@tokenflow : рдпрд╣ рд╡рд┐рд╖рдп рд╡рд╕реНрддреБрддрдГ 'рд╡реЗрдмрдХрд┐рдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рдЬрд╝реВрдо рд╕реНрддрд░реЛрдВ рдкрд░ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕реНрдерд╛рди' рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдЕрд╣рдВрдХрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ 100% рддрдХ рдЬрд╝реВрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ?

рдореИрдВрдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдорд┐рдпрдо рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЗрд╕ рдмрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ (рдХрдо рд╕реЗ рдХрдо рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП) scale() рдореБрдЦреНрдп .leaflet-tile-container , рдЬреЛ рдореБрдЭреЗ document.querySelector('.leaflet-tile-container:last-of-type').getAttribute('style') рд╕рд╛рде рдорд┐рд▓ рдкрд╛ рд░рд╣реА
рдИред рдЬреАред рдЖрдкрдХреЗ рдкрд╛рд╕ scale(0.707107) , рд▓реЗрдХрд┐рди рд╕рднреА img рдмрдЪреНрдЪреЗ рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ 256 рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЖрдк рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ: 0.707107 * 256px = 181.019392px , рдЬреЛ рдПрдХ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдЧреЛрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкреИрдорд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ / рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ: 181px / 256px = 0.70703125 ред

рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ:

function getCurrentScale (doFix = false) {
    const tileContainer = document.querySelector('.leaflet-tile-container:last-of-type');

    if (!tileContainer) {
        return;
    }

    const tileStyle = tileContainer.getAttribute('style');
    const scaleRegEx = /scale\(([0-9\.]+)\)/i;
    const matches = scaleRegEx.exec(tileStyle);

    if (!matches || matches.length !== 2) {
        return;
    }

    const scale = parseFloat(matches[1]);

    const mod = (scale * 256) % 1;

    if (mod) {
        console.log('scale is off by px:', mod);
        if (doFix) {
            const newScale = Math.round(scale * 256) / 256;
            console.log('old scale / new scale', scale, newScale);
            const newStyle = tileStyle.replace(scaleRegEx, `scale(${newScale})`);
            tileContainer.setAttribute('style', newStyle);
        }
    } else {
        console.log('scale seems to be fine:', scale);
    }
}

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ true рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреИрдорд╛рдиреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдмреЗрд╡рдХреВрдл рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

.leaflet-tile-container img {
    width: 256.5px !important;
    height: 256.5px !important;
}

рдЗрд╕рд╕реЗ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЭрдВрдЭрд░реА рд╡рд╛рд▓реЗ рд╕реАрдо рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдФрд░ рдпрд╣ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдХреА рдЬрдЧрд╣ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

@ ChrisLowe-Takor рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ред
рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЕрднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рдХреБрдЫ рдФрд░ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред

@ ChrisLowe-Takor - рд╡рд╛рд╣, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ ЁЯСН

@ ChrisLowe-Takor рднреА рдЖрд░-рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, USC- рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

@ ChrisLowe-Takor рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЪрд╛рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдмреЗрд╡рдХреВрдл рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ (рдкреБрд░рд╛рдиреЗ рдЖрджрд░рдгреАрдп IE11 рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)! рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдЪреАрдЬ рд╣реИ: рдпрджрд┐ рд╡рд┐рдХрд▓реНрдк detectRetina рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрд▓ рдХреА рдкрд░рдд рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд░реЗрдЯрд┐рдирд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 125 x 125 px рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рд╣реА рджреЛрд╖ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЯрд╛рдЗрд▓ рдХрдВрдЯреЗрдирд░ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ: рдЯрд╛рдЗрд▓ рдереЛрдбрд╝рд╛ рдзреБрдВрдзрд▓рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

@ рдХреНрд░рд┐рд╕рд▓реЛ-рдЯреИрдХреЛрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛ред рдпрджрд┐ maxZoom, maxNativeZoom рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЯрд╛рдЗрд▓реНрд╕ рдареАрдХ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zdila picture zdila  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jcarenza picture jcarenza  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

CallMarl picture CallMarl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

prbaron picture prbaron  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arminghm picture arminghm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ