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

рдЪрд░рдг 1. рд╕рд░реНрд╡реЗрдХреНрд╖рдгред
рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рд╕реЗ рдЖрдХрд╛рд╢ рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХреА-рдСрд╕рдо рдореЗрдВ рдЬрд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдФрд░ рд╡рд╣рд╛рдБ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реАрдорд╛ = forest_compartment
рдЗрд╕рд▓рд┐рдП, рд╡рди рдмреНрд▓реЙрдХреЛрдВ рдХреЛ boundary=forest_compartment
рджреНрд╡рд╛рд░рд╛ рдЯреИрдЧ boundary=forest_compartment
рд╕рд╛рде рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ рдХрд┐ рд╢реБрд░реВ рдореЗрдВ рдЗрд╕реЗ boundary=forestry_compartment
рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рд╕рд╛рдХреНрд╖рд░ рдерд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдкреБрд░рд╛рдиреЗ рдкрджрдирд╛рдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ (рдЯреИрдЧрд┐рдирдлреЛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рдЧрднрдЧ 4 рд╣рдЬрд╛рд░ рдмрд╛рд░), рд╣рдо рдЗрд╕реЗ рдЫреВрдЯ рдирд╣реАрдВ рджреЗрдВрдЧреЗред
рдЪрд░рдг 2. рдбреЗрдЯрд╛ред
рдЬрд┐рдпреЛрдлреИрдмреНрд░рд┐рдХ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрдВ ред рдкреВрд░реЗ рд░реВрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ - russia-latest.osm.pbf
ред russia-latest.osm.pbf
ред osmconvert
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ osmconvert
рд╣рдореЗрдВ рдмрд╛рдж рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдУ 5 рдПрдо рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред
osmconvert russia-latest.osm.pbf -o=russia-latest.o5m
рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ osmfilter
рд╕рд╛рде osmfilter
osmfilter russia-latest.o5m --keep="boundary=forest_compartment =forestry_compartment" -o=forest_compartment-local.o5m
рдЪрд░рдг 3. рд╡реЗрдХреНрдЯрд░ рдЯрд╛рдЗрд▓ред
рдереЛрдбрд╝рд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрддред рдкреБрд░рд╛рдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╣реИ, рдЙрдирд╕реЗ рдПрдХ рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рд╣реИред рдирдП рдореЗрдВ, рдПрдХ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдЪрд╛рдПрдВред рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рджреЗрдВред рд▓рд╛рдн, рдЬреИрд╕рд╛ рдХрд┐ рдЪреЗрд╣рд░реЗ рдкрд░ рдерд╛ - рд╣рдордиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рднрд╛рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред Minuses рдХреЗ - рдХреЙрдлреА рдирд┐рд░реНрдорд╛рддрд╛ рдкрд░ рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ WebGL рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдкрдмреЙрдХреНрд╕ рдиреЗ рд╡реЗрдХреНрдЯрд░ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдПрдХ sqlite рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдЕрдм рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдмрд┐рдЦрд░рдирд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рд╛рдл рдЕрдХреЗрд▓рд╛ рдлрд╛рдЗрд▓ рд╣реИред рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЯрд╛рдЗрд▓ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рддреЗрдВ (рдордХрд╛рди, рд╕рдбрд╝рдХ рдЖрджрд┐) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддреА рд╣реИрдВред
рдпрд╣рд╛рдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рд╡рди рдкрдбрд╝реЛрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдЯрд╛рдЗрд▓рдореЗрдХрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ ред рдпрд╣ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ pbf рдкреНрд░рд╛рд░реВрдк рдореЗрдВ OSM рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
osmconvert forest_compartment-local.o5m -o=forest_compartment-local.pbf
рдЕрдм рд╣рдореЗрдВ рдЯрд╛рдЗрд▓рдореЗрдХрд░ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдкрд░рддреЗрдВ рдФрд░ рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рдЪрд░рдг 4. рдкрд░рддреЗрдВ?
рдФрд░ рд╣рдореЗрдВ рдХрд┐рди рдкрд░рддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдФрд░ рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╛рдиреА рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рджреГрд╢реНрдп рднрд╛рдЧ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣ рдЙрдкрд▓рдмреНрдз рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдУрдПрд╕рдПрдо рдбреЗрдЯрд╛ рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрднреБрдЬ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд┐рдб рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╡рд╛рдирд┐рдХреА рдФрд░ рддрд┐рдорд╛рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдирд╛рдо рд╣реИред

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

рдЗрд╕рд▓рд┐рдП, рд╡реЗрдХреНрдЯрд░ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╢рд┐рд▓рд╛рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдкрд░рдд рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрдм рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдЕрднреА рднреА рд╣реИред
рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐: рд╣рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рджреЛ рдкрд░рддреЛрдВ, рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрднреБрдЬ рдФрд░ рдбреЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред config.json
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред
{ "layers": { }, "settings": { "minzoom": 11, "maxzoom": 11, "basezoom": 14, "include_ids": false, "author": "freeExec", "name": "Forest Compartment RUS", "license": "ODbL 1.0", "version": "0.1", "description": "Forest compartment from OpenStreetMap", "compress": "gzip", "metadata": { "attribution": "<a href=\"http://www.openstreetmap.org/copyright/\" target=\"_blank\">© OpenStreetMap</a>", "json": { "vector_layers": [ ] } } } }
рдкрд░рддреЛрдВ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП
"layers": { "forest_compartment": { "minzoom": 11, "maxzoom": 11 }, "forest_compartment_label": { "minzoom": 11, "maxzoom": 11 } },
рдкрд░рддреЛрдВ рдХреЗ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХрд┐рд╕ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рджрд┐рдЦрд╛рдПрдВрдЧреЗред
"json": { "vector_layers": [ { "id": "forest_compartment", "description": "Compartment", "fields": {}}, { "id": "forest_compartment_label", "description": "Compartment", "fields": {"ref":"String"}} ] }
рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ, рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЯреИрдЧ рд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ref
рдореЗрдВ рдХреНрд╡рд╛рд░реНрдЯрд░ рдирдВрдмрд░ рд╣реЛрдЧрд╛ред
рдЪрд░рдг 5. рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред
рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, lua
рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рддрдп рдХрд░реЗрдЧрд╛ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рдУрдПрд╕рдПрдо рдбреЗрдЯрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХрд┐рд╕ рдкрд░рдд рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬрдирд╛ рд╣реИ рдФрд░ рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред
рдЪрд▓рд┐рдП process.lua
рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ process.lua
рдлрд╝рд╛рдЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯред
рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ:
рдиреЛрдб_рдХреА - рдУрдПрд╕рдПрдо рдбреЗрдЯрд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрд┐рдВрджреБ рд╣реИрдВ, рдпрджрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдпрд╣ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
function рдиреЛрдб_рдлрдВрдХреНрд╢рди (рдиреЛрдб) - рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣рд░ рдмрд┐рдВрджреБ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред
function way_function (рд░рд╛рд╕реНрддрд╛) - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрди рдкрд░ рдФрд░ рдмрд╣реБрднреБрдЬ рдФрд░ рд╕реАрдорд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзреЛрдВ рдкрд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрд░рд┐рдпрд╛рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
node_keys = { "boundary" }
рдЕрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
function node_function(node) local boundary = node:Find("boundary") if boundary == "forestry_compartment" or boundary == "forest_compartment" then local ref = node:Find("ref") if ref ~= "" then node:Layer("forest_compartment_label", false) node:Attribute("ref", ref) end end end
рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: рд╣рдо node:Find("")
рдорд╛рдзреНрдпрдо рд╕реЗ boundary
рдХреБрдВрдЬреА рдХрд╛ рдореВрд▓реНрдп рдкрдврд╝рддреЗ рд╣реИрдВ node:Find("")
ред рдпрджрд┐ рдпрд╣ forest_compartment
, рддреЛ ref
рдЯреИрдЧ рд╕реЗ рдХреНрд╡рд╛рд░реНрдЯрд░ рдирдВрдмрд░ рдкрдврд╝реЗрдВред рдпрджрд┐ рдпрд╣ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ Layer("_", ___)
рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдкрд░рдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред ref
рдкрд░рдд рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╣рдо рдХреНрд╡рд╛рд░реНрдЯрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред
рд▓рдЧрднрдЧ рд╡рд░реНрдЧ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓:
function way_function(way) local boundary = way:Find("boundary") if way:IsClosed() and ( boundary == "forestry_compartment" or boundary == "forest_compartment" ) then way:Layer("forest_compartment", true) way:AttributeNumeric("nomerge", way:Id()) local ref = way:Find("ref") if ref ~= "" then way:LayerAsCentroid("forest_compartment_label", false) way:Attribute("ref", ref) end end end
рдпрд╣рд╛рдВ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрди рдмрдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЯреИрдЧ рдХреЗрд╡рд▓ рдЦрдВрдбреЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ forest_compartment
рд▓реЗрдпрд░ рдПрд░рд┐рдпрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, Layer("", true))
рд▓рд┐рдП рджреВрд╕рд░рд╛ рддрд░реНрдХ Layer("", true))
рдлрдВрдХреНрд╢рди Layer("", true))
, рдФрд░ рд╣рдо LayerAsCentroid
рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВред
рдпрд╣ рдЙрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - nomerge
ред рдпрд╣ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд╛рдЗрд▓рдореЗрдХрд░ рдХрдирд╡рд░реНрдЯрд░ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ)ред
рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдкрд░рдд рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реА рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдХрдирд╡рд░реНрдЯрд░ рдЬреНрдпрд╛рдорд┐рддреАрдп рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдбрд╝рдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦрдВрдб рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреАрди рдмрд╛рд░ рд░реЗрдВрдбрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реИ рдХрд┐ рд╣рдо рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рднреЗрдЬреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ (рдЙрди рд╕рднреА рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░рддреЗ рд╣реБрдП) рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рдеред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдЖрд╕рдиреНрди рдХреНрд╡рд╛рд░реНрдЯрд░ рдПрдХ рдмрдбрд╝реЗ рдмрд╣реБрднреБрдЬ рдореЗрдВ рдПрдХрдЬреБрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВ рдФрд░ рд╕рдВрдпреБрдХреНрдд рди рд╣реЛрдВред
рдЕрдм рд╡реЗрдХреНрдЯрд░ рдЯрд╛рдЗрд▓реНрд╕ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
tilemaker forest_compartment-local.pbf --output forest_compartment-local.mbtiles
рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ forest_compartment-local.mbtiles
рдЪрд░рдг 6. рдПрдХ рд╢реИрд▓реА рдмрдирд╛рдПрдВред
рд╣рдо mapbox.com рдкрд░ рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ ред рдЯрд╛рдЗрд▓рдмреЙрдХреНрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдореИрдкрдмреЙрдХреНрд╕ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ, рд╣рдорд╛рд░реА рдкрд┐рдЫрд▓реА рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪрдХрд░ рдПрдХ рдирдпрд╛ рдЯрд╛рдЗрд▓рдЯ рдмрдирд╛рдПрдВред рдПрдХ рдорд┐рдирдЯ рдХреЗ рднреАрддрд░, рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рд╣рдо рд╕реНрдЯрд╛рдЗрд▓реНрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рддреИрдпрд╛рд░ рд▓рд╛рдЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╣рдо рдирдХреНрд╢реЗ рдХреЗ рдореБрдЦреНрдп рддрддреНрд╡реЛрдВ, рдЬреИрд╕реЗ рд╕рдбрд╝рдХреЗрдВ, рдмрд╕реНрддрд┐рдпрд╛рдВ рдЖрджрд┐ рдХреЛ рджреЗрдЦ рд╕рдХреЗрдВред рд╣рдо Cheboksary рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ рд╡рди рдмреНрд▓реЙрдХ рджреЗрдЦреЗ рдЧрдП рдереЗред
рд╣рдо рд╕реНрдХреЗрд▓ рдХреЗ 11 рд╕реНрддрд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ (рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рд╣реИрдВ) рдФрд░ рдкрд░рдд рдкрд░рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЯреИрдм рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ forest_compartment-local-XXXXX
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдкрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╣рдо рдмрд╣реБрднреБрдЬ рдкрд░рдд рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдЯрд╛рдЗрд▓ рдЯреИрдм рдкрд░, рд╣рд░рд╛ рд░рдВрдЧ рднрд░реЗрдВ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ рднреВрд░реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдПред

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

рд╢реИрд▓реА рдЯреИрдм рдореЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреА ref
рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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