{"id":482111,"date":"2026-06-02T13:45:22","date_gmt":"2026-06-02T13:45:22","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=482111"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=482111","title":{"rendered":"\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433. \u0427\u0430\u0441\u0442\u044c 2 \u2013 \u043c\u0430\u043f\u043f\u0438\u043d\u0433"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7af\/d72\/572\/7afd725726633a7cafa683c9aeee5131.png\" width=\"330\" height=\"330\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7af\/d72\/572\/7afd725726633a7cafa683c9aeee5131.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7af\/d72\/572\/7afd725726633a7cafa683c9aeee5131.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430!<\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/articles\/1040940\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 PostGIS. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438\u00a0\u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u0447\u0451\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043a \u043d\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h2>\n<ul>\n<li>\n<p><a href=\"#%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%20%D1%81%D0%BE%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8\" rel=\"noopener noreferrer nofollow\">\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#%D0%98%D1%82%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5%20%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5\" rel=\"noopener noreferrer nofollow\">\u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BC%D0%B0%D0%BF%D0%BF%D0%B8%D0%BD%D0%B3%D0%B0\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8,%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8,%20%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0438, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b<\/a><\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5\" id=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0435\u0440\u043d\u044b\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0431\u0438\u0437\u043d\u0435\u0441-\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u0441\u0444\u0435\u0440\u0430\u0445 Smart City \u0438 Smart Transport.<\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u0433\u043e\u0440\u043e\u0434\u0435 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 PostGIS. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u2013 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.<\/p>\n<p><strong>\u0427\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<\/strong> \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u0432\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433\u0438, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f. \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043f\u043e\u0434 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439. \u041d\u043e\u0432\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u043f\u0443\u0442\u0451\u043c \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u043e\u0439. \u041e\u0431\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0431\u044b\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u0438\u0445 \u043e\u0431\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442. \u042d\u0442\u043e \u0442\u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d96\/3bc\/143\/d963bc1432e52039c8759e79e5128b11.png\" alt=\"\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f.\" title=\"\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f.\" width=\"428\" height=\"348\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d96\/3bc\/143\/d963bc1432e52039c8759e79e5128b11.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d96\/3bc\/143\/d963bc1432e52039c8759e79e5128b11.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u0441 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443 \u0434\u043e\u0440\u043e\u0433\u0438, \u0430 \u043d\u0435 \u0432\u0441\u0435\u043c\u0443 \u043c\u043d\u043e\u0433\u043e\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0443. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445, \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0435 \u0438 \u043e\u043f\u0430\u0441\u043d\u044b\u0435. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0430 1-\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438, \u0435\u0451 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438 \u043a \u0435\u0451 5-\u043c\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043b\u0438 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u00ab\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb. \u0417\u0430\u0442\u0435\u043c \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u044e \u0434\u043e\u0440\u043e\u0433\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u0443\u0434\u043b\u0438\u043d\u0438\u0442\u044c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f 2-\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0446\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438. \u0417\u0430\u0442\u0435\u043c \u0435\u0441\u043b\u0438 \u043c\u044b \u0435\u0451 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043c \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0442\u043e \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 5-\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u0438 \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a \u043d\u0435\u043c\u0443 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442. \u041d\u043e \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432, \u0442\u043e 5-\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u043a \u043d\u0435\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0443\u0447\u0430\u0441\u0442\u043a\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0433\u043e \u043d\u043e\u0432\u0430\u044f \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0435\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b, \u0442\u043e \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u0440\u043e\u0433\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433, \u0430 \u043f\u0440\u0438 \u0438\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u043c\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0435 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 (\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443) \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c (INSERT) \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>layer_id \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u043b\u043e\u044f,<\/p>\n<\/li>\n<li>\n<p>object_id\u00a0\u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0441\u043b\u043e\u0435,<\/p>\n<\/li>\n<li>\n<p>zone_id \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430,<\/p>\n<\/li>\n<li>\n<p>geom \u2014 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%20%D1%81%D0%BE%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8\" id=\"\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0438\"><\/a><\/p>\n<h2>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0438<\/h2>\n<p>\u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u0434\u043b\u044f \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u0434\u0432\u0443\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043a \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u0430\u043d\u043d\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0435\u0436\u043d\u0435\u0439.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/679\/bde\/e97\/679bdee97b636ea27089ee93e3209747.png\" alt=\"\u0421\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0440\u043e\u0433\u0430.\" title=\"\u0421\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0440\u043e\u0433\u0430.\" width=\"711\" height=\"439\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/679\/bde\/e97\/679bdee97b636ea27089ee93e3209747.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/679\/bde\/e97\/679bdee97b636ea27089ee93e3209747.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0421\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0440\u043e\u0433\u0430.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>1) \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0433\u0438.<\/strong> \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_old_road_partition \u0437\u0430\u043d\u043e\u0441\u0438\u0442 \u0441\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 old_road_partition.<\/p>\n<p><strong>2) \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u0446\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u0440\u043e\u0433\u0443.<\/strong> \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_new_solid_road \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043d\u043e\u0432\u043e\u0439 \u0446\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_solid_road.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c02\/209\/5ad\/c022095adad23c1435c9d13bbe0ee18f.png\" alt=\"\u041d\u043e\u0432\u044b\u0439 \u0446\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_solid_road.\" title=\"\u041d\u043e\u0432\u044b\u0439 \u0446\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_solid_road.\" width=\"862\" height=\"436\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c02\/209\/5ad\/c022095adad23c1435c9d13bbe0ee18f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c02\/209\/5ad\/c022095adad23c1435c9d13bbe0ee18f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u041d\u043e\u0432\u044b\u0439 \u0446\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_solid_road.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>3) \u0420\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0430 \u0448\u0430\u0440\u0434\u044b.<\/strong> \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_new_road_shards \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0430 \u0448\u0430\u0440\u0434\u044b \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_shards (\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c ST_Subdivide(ST_Segmentize(geom, segment_len))) \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u043d\u0430 14-\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_road_parts \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/55d\/b83\/ebe\/55db83ebe7a75cccfc9230c06efa3693.png\" alt=\"\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u043d\u0430 \u043e\u0441\u043a\u043e\u043b\u043a\u0438 (\u0448\u0430\u0440\u0434\u044b).\" title=\"\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u043d\u0430 \u043e\u0441\u043a\u043e\u043b\u043a\u0438 (\u0448\u0430\u0440\u0434\u044b).\" width=\"372\" height=\"389\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/55d\/b83\/ebe\/55db83ebe7a75cccfc9230c06efa3693.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/55d\/b83\/ebe\/55db83ebe7a75cccfc9230c06efa3693.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u043d\u0430 \u043e\u0441\u043a\u043e\u043b\u043a\u0438 (\u0448\u0430\u0440\u0434\u044b).<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>4) \u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0448\u0430\u0440\u0434\u044b.<\/strong> \u0424\u0443\u043d\u043a\u0446\u0438\u044f new_road_shards_classification \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0448\u0430\u0440\u0434\u0430 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0430\u0440\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043d\u0430 17-\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 road_part_classification \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0437\u043a\u0435 \u0434\u043e\u0440\u043e\u0433\u0438 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430. \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 zone_id \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_road_shards.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/41c\/062\/c60\/41c062c60c2079a20a663811cb2aec89.png\" alt=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0440\u0434\u044b \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.\" title=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0440\u0434\u044b \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.\" width=\"639\" height=\"337\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/41c\/062\/c60\/41c062c60c2079a20a663811cb2aec89.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/41c\/062\/c60\/41c062c60c2079a20a663811cb2aec89.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0440\u0434\u044b \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>5) \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0448\u0430\u0440\u0434\u044b \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b<\/strong>. \u0424\u0443\u043d\u043a\u0446\u0438\u044f group_zones_for_new_road_partition \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u0442 \u0448\u0430\u0440\u0434\u044b \u043f\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c zone_id, \u0441\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_partition.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/477\/de1\/e6c\/477de1e6c5ab71218e010564afd5de05.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430.\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430.\" width=\"667\" height=\"278\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/477\/de1\/e6c\/477de1e6c5ab71218e010564afd5de05.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/477\/de1\/e6c\/477de1e6c5ab71218e010564afd5de05.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430.<\/strong><\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f group_zones_for_new_road_partition<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">-- \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u043e\u043d\u044b \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u044f\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_partitionCREATE OR REPLACE FUNCTION road_processing.group_zones_for_new_road_partition(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT)RETURNS VOID AS $$begin-- \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442delete from road_processing.new_road_partitionwhere part_id = p_part_id and layer_id = p_layer_id and object_id = p_object_id;insert into road_processing.new_road_partition(part_id, layer_id, object_id, zone_id, geom)SELECTp_part_id as part_id, p_layer_id as layer_id, p_object_id as object_id, zone_id,ST_Union(geom) as geomFROM road_processing.new_road_shardswhere part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_idgroup by zone_id;END;$$ LANGUAGE plpgsql;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4c8\/332\/e1a\/4c8332e1aca1033a1ad9e033e05cb327.png\" alt=\"\u0421\u0442\u0430\u0440\u0430\u044f (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0441\u0438\u043d\u0438\u043c) \u0438 \u043d\u043e\u0432\u0430\u044f (\u043a\u0440\u0430\u0441\u043d\u044b\u043c) \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\" title=\"\u0421\u0442\u0430\u0440\u0430\u044f (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0441\u0438\u043d\u0438\u043c) \u0438 \u043d\u043e\u0432\u0430\u044f (\u043a\u0440\u0430\u0441\u043d\u044b\u043c) \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\" width=\"741\" height=\"446\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4c8\/332\/e1a\/4c8332e1aca1033a1ad9e033e05cb327.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4c8\/332\/e1a\/4c8332e1aca1033a1ad9e033e05cb327.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0421\u0442\u0430\u0440\u0430\u044f (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0441\u0438\u043d\u0438\u043c) \u0438 \u043d\u043e\u0432\u0430\u044f (\u043a\u0440\u0430\u0441\u043d\u044b\u043c) \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.<\/strong><\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/71b\/194\/109\/71b19410927475cdb2d50918bfa77882.png\" alt=\"\u0421\u0442\u0430\u0440\u0430\u044f \u0438 \u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\" title=\"\u0421\u0442\u0430\u0440\u0430\u044f \u0438 \u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\" width=\"340\" height=\"452\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/71b\/194\/109\/71b19410927475cdb2d50918bfa77882.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/71b\/194\/109\/71b19410927475cdb2d50918bfa77882.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0421\u0442\u0430\u0440\u0430\u044f \u0438 \u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u0425\u043e\u0442\u044f \u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0438 \u043d\u0435\u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0437\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0438 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u042d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445.<\/p>\n<\/li>\n<\/ul>\n<p><strong>4) \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438.<\/strong><\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_diff_zones \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 (zone_id).<\/p>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043f\u043b\u043e\u0449\u0430\u0434\u044f\u043c\u0438 \u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 diff_zones.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ac8\/620\/497\/ac8620497f84ea0f146b7c132f7401cb.png\" alt=\"\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438.\" title=\"\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438.\" width=\"805\" height=\"243\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ac8\/620\/497\/ac8620497f84ea0f146b7c132f7401cb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ac8\/620\/497\/ac8620497f84ea0f146b7c132f7401cb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438.<\/strong><\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_diff_zones<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">-- \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0441\u0442\u0430\u0440\u044b\u0445 \u0438 \u043d\u043e\u0432\u044b\u0445 \u0437\u043e\u043d \u043f\u0440\u0438 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0435CREATE OR REPLACE FUNCTION road_processing.fill_diff_zones(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT)RETURNS VOID AS $$begin-- \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438delete from road_processing.diff_zoneswhere part_id = p_part_id and p_layer_id = layer_id  and p_object_id = object_id;insert into road_processing.diff_zones(part_id, layer_id, object_id, zone_id, diff_area, diff_len)select p_part_id as part_id,p_layer_id as layer_id,p_object_id as object_id,old_road.zone_id as zone_id,(ST_Area(old_road.geom) - ST_Area(new_road.geom)) \/ NULLIF(ST_Area(old_road.geom), 0) * 100 as diff_area,(ST_Length(ST_Boundary(old_road.geom))-ST_Length(ST_Boundary(new_road.geom))) \/ NULLIF(ST_Length(ST_Boundary(new_road.geom)), 0) * 100 as diff_lenfrom road_processing.old_road_partition as old_roadjoin road_processing.new_road_partition as new_road on old_road.zone_id = new_road.zone_id where old_road.part_id = p_part_id AND old_road.layer_id = p_layer_id AND old_road.object_id = p_object_idand new_road.part_id = p_part_id AND new_road.layer_id = p_layer_id AND new_road.object_id = p_object_id;END;$$ LANGUAGE plpgsql;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u0442\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f fill_large_zones \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442  \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043e\u043d\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b diff_zones \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0435\u0439 \u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 large_zones. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044b.\u0422\u0430\u043a \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u0440\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439) \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0437\u043e\u043d\u044b \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 (\u0441\u0438\u043d\u0438\u0439).<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fb0\/86c\/58a\/fb086c58a209dd28902e8aaa6846371b.png\" alt=\"\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0435 (\u0441\u0438\u043d\u0438\u0439) \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439).\" title=\"\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0435 (\u0441\u0438\u043d\u0438\u0439) \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439).\" width=\"794\" height=\"354\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fb0\/86c\/58a\/fb086c58a209dd28902e8aaa6846371b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fb0\/86c\/58a\/fb086c58a209dd28902e8aaa6846371b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0435 (\u0441\u0438\u043d\u0438\u0439) \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439).<\/strong><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/def\/9be\/dd8\/def9bedd8cce114dc7ddef71c937cd02.png\" alt=\"\u0412\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u043e\u043d\u0430.\" title=\"\u0412\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u043e\u043d\u0430.\" width=\"974\" height=\"215\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/def\/9be\/dd8\/def9bedd8cce114dc7ddef71c937cd02.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/def\/9be\/dd8\/def9bedd8cce114dc7ddef71c937cd02.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0412\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u043e\u043d\u0430.<\/strong><\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_large_zones<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">CREATE OR REPLACE FUNCTION road_processing.fill_large_zones(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT,    area_threshold double precision default 50,    len_threshold double precision default 50,    standart_segment_len double precision default 300,    diff_len_coefficient double precision default 2)RETURNS VOID AS $$begin-- \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438delete from road_processing.large_zoneswhere part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id;-- \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043e\u043d\u044bwith increased_zones as (select zone_idfrom road_processing.diff_zoneswhere (diff_area &lt; 0 and abs(diff_area) &gt;= area_threshold ) or (diff_len &lt; 0 and abs(diff_len) &gt;= len_threshold ) and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id),-- \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044fzones_for_partitions as (select iz.zone_id as zone_id, nrp.geom as geomfrom increased_zones as iz join road_processing.new_road_partition as nrp on iz.zone_id = nrp.zone_idwhere  ST_Length(ST_Boundary(nrp.geom))&gt;= diff_len_coefficient*standart_segment_len AND nrp.part_id = p_part_id AND nrp.layer_id = p_layer_id AND nrp.object_id = p_object_id)insert into road_processing.large_zones(part_id, layer_id, object_id, zone_id, geom)select p_part_id as part_id,p_layer_id as layer_id,p_object_id as object_id,zone_id as zone_id,geomfrom zones_for_partitions;END;$$ LANGUAGE plpgsql;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f make_large_zones_partition \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u043e\u043d \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b large_zones. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 make_part_of_road_segmentation \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_large_zones_partition.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f new_large_zones_classification \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0437\u043e\u043d \u0438\u0437 new_large_zones_partition. <\/p>\n<p>\u0418 \u0443\u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f manage_new_large_zones \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043e\u043d\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b new_large_zones_partition \u0432 new_road_partition.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/056\/a2c\/768\/056a2c7683d9c5f75ff28ec1693cfe44.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f.\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f.\" width=\"449\" height=\"318\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/056\/a2c\/768\/056a2c7683d9c5f75ff28ec1693cfe44.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/056\/a2c\/768\/056a2c7683d9c5f75ff28ec1693cfe44.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>5) \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043c\u0430\u043b\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b.<\/strong> \u0424\u0443\u043d\u043a\u0446\u0438\u044f merge_small_intersected_mapped_zones \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438 \u0441\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u043c\u0435\u0436\u043d\u044b\u0435 \u043c\u0430\u043b\u044b\u0435 \u0437\u043e\u043d\u044b. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_road_partition.<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f merge_small_intersected_mapped_zones<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">CREATE OR REPLACE FUNCTION road_processing.merge_small_intersected_mapped_zones(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT,    max_area DOUBLE PRECISION DEFAULT 20000,-- \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430    max_length DOUBLE PRECISION DEFAULT 350,-- \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u043d\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430    min_area DOUBLE PRECISION DEFAULT 5000,      -- \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \"\u043c\u0430\u043b\u044b\u043c\u0438\"    min_length DOUBLE PRECISION DEFAULT 150      -- \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \"\u043c\u0430\u043b\u044b\u043c\u0438\")--RETURNS INTEGER AS $$RETURNS VOID AS $$DECLAREmerged INTEGER;    v_small_id INTEGER;    v_target_id INTEGER;    v_new_geom GEOMETRY(GEOMETRY, 3857);    v_small_geom GEOMETRY(GEOMETRY, 3857);    v_small_area DOUBLE PRECISION;    v_small_length DOUBLE PRECISION;BEGIN    LOOP        -- \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043e\u0434\u0438\u043d \u043c\u0430\u043b\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d (\u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438\u043b\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u0443)        SELECT             zone_id,             geom,            ST_Area(geom),            ST_MaxDistance(geom, geom)  -- \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440        INTO             v_small_id,            v_small_geom,            v_small_area,            v_small_length        FROM road_processing.new_road_partition        WHERE (ST_Area(geom) &lt;= min_area            OR ST_MaxDistance(geom, geom) &lt;= min_length)and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id        LIMIT 1;        --         \u0415\u0441\u043b\u0438 \u043c\u0430\u043b\u044b\u0445 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043d\u0435\u0442 - \u0432\u044b\u0445\u043e\u0434\u0438\u043c        IF NOT FOUND THEN            EXIT;        END IF;        --         \u0418\u0449\u0435\u043c \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0441 \u041d\u0410\u0418\u041c\u0415\u041d\u042c\u0428\u0415\u0419 \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u044c\u044e \u0438 \u0434\u043b\u0438\u043d\u043d\u0435        SELECT             b.zone_id,            ST_Union(v_small_geom, b.geom)        INTO             v_target_id,            v_new_geom        FROM road_processing.new_road_partition b        WHERE b.zone_id != v_small_id          AND ST_Intersects(v_small_geom, b.geom)   and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id-- \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438 \u0434\u043b\u0438\u043d\u043d\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d        ORDER BY  (COALESCE(ST_MaxDistance(v_small_geom, v_small_geom), 0) +              COALESCE(ST_MaxDistance(b.geom, b.geom), 0)) * 0.5 +             (COALESCE(ST_Area(v_small_geom), 0) + COALESCE(ST_Area(b.geom), 0)) * 0.5 ASC        LIMIT 1;                -- \u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0432\u044b\u0445\u043e\u0434\u0438\u043c        IF NOT FOUND THEN            EXIT;        END IF;                -- \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430        UPDATE road_processing.new_road_partition         SET geom = v_new_geom         WHERE zone_id = v_target_id and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id;                GET DIAGNOSTICS merged = ROW_COUNT;                -- \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043c\u0430\u043b\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d        DELETE FROM road_processing.new_road_partition WHERE zone_id = v_small_id and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id;    END LOOP;END;$$ LANGUAGE plpgsql;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p><a class=\"anchor\" name=\"%D0%98%D1%82%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5%20%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5\" id=\"\u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\"><\/a><\/p>\n<h2>\u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b \u0431\u044b\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e make_part_of_road_mapping, \u043e\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438. \u041a\u0430\u043a \u0438 \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u043e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 main_road_mapping \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u043d\u0451\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 (part_id).<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f make_part_of_road_mapping<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">CREATE OR REPLACE FUNCTION road_processing.make_part_of_road_mapping(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT,            standart_segment_len DOUBLE PRECISION DEFAULT 300, -- \u0436\u0435\u043b\u0430\u0435\u043c\u0430\u044f \u0434\u043b\u0438\u043d\u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0434\u043e\u0440\u043e\u0433\u0438    standart_segment_wide DOUBLE PRECISION DEFAULT 50, -- \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438    max_segment_area DOUBLE PRECISION DEFAULT 20000,-- \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430    max_segment_length DOUBLE PRECISION DEFAULT 350,-- \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u043d\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430    min_segment_area DOUBLE PRECISION DEFAULT 5000,     -- \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \"\u043c\u0430\u043b\u044b\u043c\u0438\"    min_segment_length DOUBLE PRECISION DEFAULT 150,     -- \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \"\u043c\u0430\u043b\u044b\u043c\u0438\"    merge_area_tolerance_percent DOUBLE PRECISION DEFAULT 50, -- \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0437\u043e\u043d \u0434\u043b\u044f \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u043f\u043e \u043e\u0431\u0449\u0435\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044fintersection_area_weight double precision default 0.2, -- \u0432\u0435\u0441 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification    boundary_length_weight double precision default 0.2, -- \u0432\u0435\u0441 \u0434\u043b\u0438\u043d\u044b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification    centroid_distance_weight double precision default 0.2, -- \u0432\u0435\u0441 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430\u043c\u0438 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification    min_distance_weight double precision default 0.2, -- \u0432\u0435\u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification    lies_inside_weight double precision default 1.0, -- \u0432\u0435\u0441 \u0442\u043e\u0433\u043e \u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432 \u0437\u043e\u043d\u0435 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification    topology_distance_tolerance DOUBLE PRECISION DEFAULT 2.0, --  \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 generate_road_skeleton - \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f \u0432 ST_SimplifyPreserveTopology    shard_segment_len DOUBLE PRECISION DEFAULT 1.0, -- \u0434\u043b\u0438\u043d\u043d\u0430 \"\u043e\u0441\u043a\u043e\u043b\u043a\u0430\" \u0434\u043e\u0440\u043e\u0433\u0438. \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_road_parts, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f ST_Segmentize    buffer_distance DOUBLE PRECISION DEFAULT 1.0, -- \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0431\u0443\u0444\u0444\u0435\u0440\u0430 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ST_Buffer \u0432 process_again_and_get_better_zones    buffer_distance_for_group_zones DOUBLE PRECISION DEFAULT 0.01, -- \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0440\u0434\u043e\u0432    unsuitable_road_zones_area_threshold double precision default 100, -- \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0437\u043e\u043d \u0441 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u044c\u044e    unsuitable_road_zones_len_threshold double precision default 100,  -- \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0437\u043e\u043d \u0441 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0434\u043b\u0438\u043d\u043d\u043e\u0439    area_threshold double precision default 50, -- \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u0435\u0439 \u0437\u043e\u043d \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones    len_threshold DOUBLE PRECISION DEFAULT 50, -- \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0434\u043b\u0438\u043d \u0437\u043e\u043d \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones    diff_len_coefficient DOUBLE PRECISION DEFAULT 2.0 -- \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0434\u043b\u0438\u043d\u044b \u0437\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones)RETURNS VOID AS $$begin-- \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u0434\u043e\u0440\u043e\u0433\u0443 \u043d\u0430 \u0448\u0430\u0440\u0434\u044bperform road_processing.fill_new_road_shards(p_part_id =&gt; p_part_id, p_object_id =&gt; p_object_id, p_layer_id =&gt; p_layer_id, segment_len =&gt; shard_segment_len);-- \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0448\u0430\u0440\u0434\u0430perform road_processing.new_road_shards_classification(p_part_id =&gt; p_part_id, p_object_id =&gt; p_object_id,  p_layer_id =&gt; p_layer_id,intersection_area_weight =&gt; intersection_area_weight, boundary_length_weight =&gt; boundary_length_weight,centroid_distance_weight =&gt; centroid_distance_weight, min_distance_weight =&gt; min_distance_weight,lies_inside_weight =&gt; lies_inside_weight);-- \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u043e\u043d\u044bperform road_processing.group_zones_for_new_road_partition(p_part_id =&gt; p_part_id, p_object_id =&gt; p_object_id,  p_layer_id =&gt; p_layer_id);-- \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0437\u043e\u043dperform road_processing.fill_diff_zones(p_part_id =&gt; p_part_id, p_layer_id =&gt; p_layer_id, p_object_id =&gt; p_object_id);-- \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044bperform road_processing.fill_large_zones(p_part_id =&gt; p_part_id, p_layer_id =&gt; p_layer_id,p_object_id =&gt; p_object_id,standart_segment_len =&gt; standart_segment_len,area_threshold =&gt; area_threshold, len_threshold =&gt; len_threshold,diff_len_coefficient=&gt; diff_len_coefficient);-- \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044bperform road_processing.make_large_zones_partition(p_part_id =&gt; p_part_id, p_layer_id =&gt; p_layer_id, p_object_id =&gt; p_object_id,process_for_better_zones =&gt; process_for_better_zones, process_for_split_overlapped_zones =&gt; process_for_split_overlapped_zones,process_for_fill_road_parts_considering_zones =&gt; process_for_fill_road_parts_considering_zones,            standart_segment_len =&gt; standart_segment_len, standart_segment_wide =&gt; standart_segment_wide,            max_segment_area =&gt; max_segment_area, min_segment_area =&gt; min_segment_area,            max_segment_length =&gt; max_segment_length, min_segment_length =&gt; min_segment_length,merge_area_tolerance_percent =&gt; merge_area_tolerance_percent,intersection_area_weight =&gt; intersection_area_weight,boundary_length_weight =&gt; boundary_length_weight,centroid_distance_weight =&gt; centroid_distance_weight,min_distance_weight =&gt; min_distance_weight,lies_inside_weight =&gt; lies_inside_weight,shard_segment_len =&gt; shard_segment_len,buffer_distance =&gt; buffer_distance,unsuitable_road_zones_area_threshold =&gt; unsuitable_road_zones_area_threshold,unsuitable_road_zones_len_threshold =&gt; unsuitable_road_zones_len_threshold);-- \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u043e\u043d (\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c zone_id)perform road_processing.new_large_zones_classification(p_layer_id =&gt; p_layer_id, p_object_id =&gt; p_object_id,intersection_area_weight =&gt; intersection_area_weight,boundary_length_weight =&gt; boundary_length_weight,centroid_distance_weight =&gt; centroid_distance_weight,min_distance_weight =&gt; min_distance_weight,lies_inside_weight =&gt; lies_inside_weight);-- \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u043e\u043d \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435perform road_processing.manage_new_large_zones(p_layer_id =&gt; p_layer_id,p_object_id =&gt; p_object_id);-- \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043c\u0430\u043b\u044b\u0435 \u0437\u043e\u043d\u044bperform road_processing.merge_small_intersected_mapped_zones(p_part_id =&gt; p_part_id,p_layer_id =&gt; p_layer_id,p_object_id =&gt; p_object_id,max_area =&gt; max_segment_area, max_length =&gt; max_segment_length,min_area =&gt; min_segment_area, min_length =&gt; min_segment_length);END;$$ LANGUAGE plpgsql;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary> \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 main_road_mapping<\/summary>\n<div class=\"spoiler__content\">\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">\u2116<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">\u0418\u043c\u044f   \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0421\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0435   \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">\u0422\u0438\u043f<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435   \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">p_layer_id<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440   \u0441\u043b\u043e\u044f <\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">INTEGER<\/p>\n<\/td>\n<td>\n<p align=\"center\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">p_object_id<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">TEXT<\/p>\n<\/td>\n<td>\n<p align=\"center\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">3<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">standart_segment_len<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0416\u0435\u043b\u0430\u0435\u043c\u0430\u044f   \u0434\u043b\u0438\u043d\u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0434\u043e\u0440\u043e\u0433\u0438<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">300<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">4<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">standart_segment_wide<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u0430\u044f   \u0448\u0438\u0440\u0438\u043d\u0430 \u0437\u043e\u043d\u044b \u0434\u043e\u0440\u043e\u0433\u0438<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">50<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">5<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">max_segment_area<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f   \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 <\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">20 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">6<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">max_segment_length<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f   \u0434\u043b\u0438\u043d\u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">350<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">7<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">min_segment_area<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u00ab\u043c\u0430\u043b\u044b\u043c\u0438\u00bb<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">5 000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">8<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">min_segment_length<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b   \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0433\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u00ab\u043c\u0430\u043b\u044b\u043c\u0438\u00bb<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">150<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">9<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">merge_area_tolerance_percent<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439   \u043f\u043e\u0440\u043e\u0433 \u0434\u043b\u044f \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0437\u043e\u043d \u043f\u043e \u043e\u0431\u0449\u0435\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">50<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">10<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">intersection_area_weight<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0412\u0435\u0441 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">0.2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">11<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">boundary_length_weight<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0412\u0435\u0441 \u0434\u043b\u0438\u043d\u044b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430 road_part_classification<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">0.2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">12<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">centroid_distance_weight<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0412\u0435\u0441 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430\u043c\u0438 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430   road_part_classification<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">0.2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">13<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">min_distance_weight<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0412\u0435\u0441   \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430   road_part_classification<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">0.2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">14<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">lies_inside_weight<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0412\u0435\u0441 \u0442\u043e\u0433\u043e \u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432 \u0437\u043e\u043d\u0435 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0448\u0430\u0440\u0434\u0430   road_part_classification<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">1.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">15<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">topology_distance_tolerance<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 generate_road_skeleton \u2013 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f \u0432 ST_SimplifyPreserveTopology<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">2.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">16<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">shard_segment_len<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u0414\u043b\u0438\u043d\u043d\u0430 \u00ab\u043e\u0441\u043a\u043e\u043b\u043a\u0430\u00bb \u0434\u043e\u0440\u043e\u0433\u0438. \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_road_parts, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f ST_Segmentize<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">1.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">17<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">area_threshold<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439   \u043f\u043e\u0440\u043e\u0433 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u0435\u0439 \u0437\u043e\u043d \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">50<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">18<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">len_threshold<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u044b\u0439   \u043f\u043e\u0440\u043e\u0433 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0434\u043b\u0438\u043d \u0437\u043e\u043d \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">50<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"center\">19<\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"center\">diff_len_coefficient<\/p>\n<\/td>\n<td data-colwidth=\"170\" width=\"170\">\n<p align=\"center\">\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0434\u043b\u0438\u043d\u044b \u0437\u043e\u043d \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_large_zones<\/p>\n<\/td>\n<td data-colwidth=\"187\" width=\"187\">\n<p align=\"center\">DOUBLE   PRECISION<\/p>\n<\/td>\n<td>\n<p align=\"center\">2.0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; main_road_mapping.<\/p>\n<pre><code class=\"sql\">select road_processing.main_road_mapping(p_layer_id =&gt; 179, p_object_id =&gt; '10000257');<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BC%D0%B0%D0%BF%D0%BF%D0%B8%D0%BD%D0%B3%D0%B0\" id=\"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430\"><\/a><\/p>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430<\/h2>\n<p><strong>\u21161<\/strong><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fcd\/993\/e36\/fcd993e36469741dc78775ce9de8bc4e.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f. 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f. 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.\" width=\"381\" height=\"309\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fcd\/993\/e36\/fcd993e36469741dc78775ce9de8bc4e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fcd\/993\/e36\/fcd993e36469741dc78775ce9de8bc4e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u043d\u043e\u0432\u0430\u044f. 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u21162<\/strong><\/p>\n<p>\u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u2013 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 part_id.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f50\/b96\/f3b\/f50b96f3b6191302df37c691cce42af0.png\" alt=\"\u0421\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.\" title=\"\u0421\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.\" width=\"90\" height=\"393\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f50\/b96\/f3b\/f50b96f3b6191302df37c691cce42af0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f50\/b96\/f3b\/f50b96f3b6191302df37c691cce42af0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u0421\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.<\/strong><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2e\/fac\/010\/d2efac0101e699637f5ec419a539fb18.png\" alt=\"\u041d\u043e\u0432\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.\" title=\"\u041d\u043e\u0432\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.\" width=\"590\" height=\"343\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d2e\/fac\/010\/d2efac0101e699637f5ec419a539fb18.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2e\/fac\/010\/d2efac0101e699637f5ec419a539fb18.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u041d\u043e\u0432\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u21163<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79c\/099\/f83\/79c099f833b68083cf2457e96177e54e.png\" width=\"649\" height=\"383\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/79c\/099\/f83\/79c099f833b68083cf2457e96177e54e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79c\/099\/f83\/79c099f833b68083cf2457e96177e54e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u21164<\/strong><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ebd\/f59\/bc7\/ebdf59bc771f0052d739e2bac4ad91a2.png\" width=\"434\" height=\"340\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ebd\/f59\/bc7\/ebdf59bc771f0052d739e2bac4ad91a2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ebd\/f59\/bc7\/ebdf59bc771f0052d739e2bac4ad91a2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u21165<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ddd\/870\/eb8\/ddd870eb81733c56cf7244f7bea1a580.png\" alt=\"100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 - \u043e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430.\" title=\"100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 - \u043e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430.\" width=\"932\" height=\"475\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ddd\/870\/eb8\/ddd870eb81733c56cf7244f7bea1a580.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ddd\/870\/eb8\/ddd870eb81733c56cf7244f7bea1a580.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 &#8212; \u043e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u21166<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/12a\/433\/6fd\/12a4336fdd72702dcbbeb7b52299f3d6.png\" width=\"753\" height=\"362\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/12a\/433\/6fd\/12a4336fdd72702dcbbeb7b52299f3d6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/12a\/433\/6fd\/12a4336fdd72702dcbbeb7b52299f3d6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u21167<\/strong><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2d6\/cfc\/a8c\/2d6cfca8c3b8eb2feed0228cfb3fe820.png\" width=\"439\" height=\"426\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2d6\/cfc\/a8c\/2d6cfca8c3b8eb2feed0228cfb3fe820.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2d6\/cfc\/a8c\/2d6cfca8c3b8eb2feed0228cfb3fe820.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u21168<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b5e\/986\/57d\/b5e98657d07eef76661967853fadf3a1.png\" alt=\"\u041e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430, 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.\" title=\"\u041e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430, 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.\" width=\"673\" height=\"273\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b5e\/986\/57d\/b5e98657d07eef76661967853fadf3a1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b5e\/986\/57d\/b5e98657d07eef76661967853fadf3a1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u041e\u0434\u043d\u0430 \u0437\u043e\u043d\u0430, 100% \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/strong><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u21169<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/552\/5a7\/55b\/5525a755b0b88fd07b7e0bb2c9516763.png\" width=\"658\" height=\"299\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/552\/5a7\/55b\/5525a755b0b88fd07b7e0bb2c9516763.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/552\/5a7\/55b\/5525a755b0b88fd07b7e0bb2c9516763.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u211610<\/strong><\/p>\n<pre><code class=\"sql\">select road_processing.main_road_mapping(p_layer_id =&gt; 179, p_object_id =&gt; '10000502', shard_segment_len =&gt; 1);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afc\/a5f\/516\/afca5f516f68746d52f07498ea9aeac9.png\" width=\"1009\" height=\"461\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/afc\/a5f\/516\/afca5f516f68746d52f07498ea9aeac9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afc\/a5f\/516\/afca5f516f68746d52f07498ea9aeac9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c1f\/d3f\/b70\/c1fd3fb7031becea0ec87f14c50b7b25.png\" width=\"854\" height=\"634\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c1f\/d3f\/b70\/c1fd3fb7031becea0ec87f14c50b7b25.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c1f\/d3f\/b70\/c1fd3fb7031becea0ec87f14c50b7b25.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u211611<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/314\/48c\/990\/31448c990e4e198575ab5598bc09bbca.png\" width=\"784\" height=\"489\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/314\/48c\/990\/31448c990e4e198575ab5598bc09bbca.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/314\/48c\/990\/31448c990e4e198575ab5598bc09bbca.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u211612<\/strong><\/p>\n<pre><code class=\"sql\">select road_processing.main_road_mapping(p_layer_id =&gt; 179, p_object_id =&gt; '10001480', shard_segment_len =&gt; 1);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cb8\/256\/c72\/cb8256c7205a790eb26a122c0340738a.png\" width=\"421\" height=\"342\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cb8\/256\/c72\/cb8256c7205a790eb26a122c0340738a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cb8\/256\/c72\/cb8256c7205a790eb26a122c0340738a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u211613<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa5\/135\/aa1\/fa5135aa1660dded71e1ced47562072c.png\" width=\"1009\" height=\"226\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fa5\/135\/aa1\/fa5135aa1660dded71e1ced47562072c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa5\/135\/aa1\/fa5135aa1660dded71e1ced47562072c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><a class=\"anchor\" name=\"%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5\" id=\"\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\"><\/a><\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0438\u043c\u0438 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439.<\/p>\n<p>\u0412\u0440\u0435\u043c\u044f \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u043b\u0438\u043d\u044b \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0438 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 5 \u0434\u043e 30 \u0441\u0435\u043a\u0443\u043d\u0434: \u0447\u0435\u043c \u043a\u0440\u0443\u043f\u043d\u0435\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0442\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u00a0\u2014 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0435\u0437\u043e\u0432.<\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0434\u043e\u0440\u043e\u0433. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430, \u043e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e \u043d\u0430\u0448\u0438\u043c \u043e\u0446\u0435\u043d\u043a\u0430\u043c, \u043e\u043a\u043e\u043b\u043e 90% \u0434\u043e\u0440\u043e\u0433 \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041a\u0430\u043a \u0431\u044b \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443? \u0414\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0438\u0434\u0435\u044f\u043c\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0417\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<p><a class=\"anchor\" name=\"%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8,%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8,%20%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B\" id=\"\u0421\u0441\u044b\u043b\u043a\u0438, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b\"><\/a><\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b<\/h2>\n<ol>\n<li>\n<p>Stephen Vincent Mather, Pedro Wightma, Bborie Park, Thomas Kraft. PostGIS Cookbook: Store, organize, manipulate, and analyze spatial data, Second Edition, 2018, \u0441\u0442\u0440. 576<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/18\/index\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Postgres Pro<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/postgis.net\/docs\/en\/\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c PostGIS<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1042618\/\">https:\/\/habr.com\/ru\/articles\/1042618\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430!\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 PostGIS. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438\u00a0\u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u0447\u0451\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043a \u043d\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439.\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0438\u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0421\u0441\u044b\u043b\u043a\u0438, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u041c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0435\u0440\u043d\u044b\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0431\u0438\u0437\u043d\u0435\u0441-\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u0441\u0444\u0435\u0440\u0430\u0445 Smart City \u0438 Smart Transport.\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u0433\u043e\u0440\u043e\u0434\u0435 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 PostGIS. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u2013 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.\u0427\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e? \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u0432\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433\u0438, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f. \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043f\u043e\u0434 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439. \u041d\u043e\u0432\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u043f\u0443\u0442\u0451\u043c \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u043e\u0439. \u041e\u0431\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0431\u044b\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u0438\u0445 \u043e\u0431\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442. \u042d\u0442\u043e \u0442\u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c.\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438. \u0421\u0438\u043d\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u2013 \u0441\u0442\u0430\u0440\u0430\u044f.\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u0441 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443 \u0434\u043e\u0440\u043e\u0433\u0438, \u0430 \u043d\u0435 \u0432\u0441\u0435\u043c\u0443 \u043c\u043d\u043e\u0433\u043e\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0443. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445, \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0435 \u0438 \u043e\u043f\u0430\u0441\u043d\u044b\u0435. \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0430 1-\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438, \u0435\u0451 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438 \u043a \u0435\u0451 5-\u043c\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043b\u0438 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u00ab\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb. \u0417\u0430\u0442\u0435\u043c \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u044e \u0434\u043e\u0440\u043e\u0433\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u0443\u0434\u043b\u0438\u043d\u0438\u0442\u044c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f 2-\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0446\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438. \u0417\u0430\u0442\u0435\u043c \u0435\u0441\u043b\u0438 \u043c\u044b \u0435\u0451 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043c \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0442\u043e \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 5-\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u0438 \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a \u043d\u0435\u043c\u0443 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442. \u041d\u043e \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432, \u0442\u043e 5-\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u043a \u043d\u0435\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0443\u0447\u0430\u0441\u0442\u043a\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0433\u043e \u043d\u043e\u0432\u0430\u044f \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0435\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b, \u0442\u043e \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u0440\u043e\u0433\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440.\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433, \u0430 \u043f\u0440\u0438 \u0438\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u043c\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0443 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0435 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 (\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443) \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c (INSERT) \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438:layer_id \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u043b\u043e\u044f,object_id\u00a0\u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0441\u043b\u043e\u0435,zone_id \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430,geom \u2014 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430.\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0438\u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u0434\u043b\u044f \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u0434\u0432\u0443\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043a \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u0430\u043d\u043d\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0435\u0436\u043d\u0435\u0439.\u0421\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0440\u043e\u0433\u0430.1) \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0433\u0438. \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_old_road_partition \u0437\u0430\u043d\u043e\u0441\u0438\u0442 \u0441\u0442\u0430\u0440\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 old_road_partition.2) \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u0446\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u0440\u043e\u0433\u0443. \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_new_solid_road \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043d\u043e\u0432\u043e\u0439 \u0446\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_solid_road.\u041d\u043e\u0432\u044b\u0439 \u0446\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_solid_road.3) \u0420\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0430 \u0448\u0430\u0440\u0434\u044b. \u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_new_road_shards \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0430 \u0448\u0430\u0440\u0434\u044b \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_shards (\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c ST_Subdivide(ST_Segmentize(geom, segment_len))) \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u043d\u0430 14-\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 fill_road_parts \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 \u043d\u0430 \u043e\u0441\u043a\u043e\u043b\u043a\u0438 (\u0448\u0430\u0440\u0434\u044b).4) \u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0448\u0430\u0440\u0434\u044b. \u0424\u0443\u043d\u043a\u0446\u0438\u044f new_road_shards_classification \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0448\u0430\u0440\u0434\u0430 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0430\u0440\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043d\u0430 17-\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 road_part_classification \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0437\u043a\u0435 \u0434\u043e\u0440\u043e\u0433\u0438 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043e\u043d \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430. \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 zone_id \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 new_road_shards.\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0440\u0434\u044b \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438.5) \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0448\u0430\u0440\u0434\u044b \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b. \u0424\u0443\u043d\u043a\u0446\u0438\u044f group_zones_for_new_road_partition \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u0442 \u0448\u0430\u0440\u0434\u044b \u043f\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c zone_id, \u0441\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_partition.\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0430.\u0424\u0443\u043d\u043a\u0446\u0438\u044f group_zones_for_new_road_partition&#8212; \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u043e\u043d\u044b \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u044f\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_road_partitionCREATE OR REPLACE FUNCTION road_processing.group_zones_for_new_road_partition(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT)RETURNS VOID AS $$begin&#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442delete from road_processing.new_road_partitionwhere part_id = p_part_id and layer_id = p_layer_id and object_id = p_object_id;insert into road_processing.new_road_partition(part_id, layer_id, object_id, zone_id, geom)SELECTp_part_id as part_id, p_layer_id as layer_id, p_object_id as object_id, zone_id,ST_Union(geom) as geomFROM road_processing.new_road_shardswhere part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_idgroup by zone_id;END;$$ LANGUAGE plpgsql;\u0421\u0442\u0430\u0440\u0430\u044f (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0441\u0438\u043d\u0438\u043c) \u0438 \u043d\u043e\u0432\u0430\u044f (\u043a\u0440\u0430\u0441\u043d\u044b\u043c) \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\u0421\u0442\u0430\u0440\u0430\u044f \u0438 \u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u0434\u043e\u0440\u043e\u0433\u0438.\u0412 \u0446\u0435\u043b\u043e\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u0425\u043e\u0442\u044f \u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0438 \u043d\u0435\u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0437\u043e\u0432.\u041f\u0440\u0438 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b:\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u042d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438.\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445.\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445.4) \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0433\u0438.\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_diff_zones \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 (zone_id).\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043f\u043b\u043e\u0449\u0430\u0434\u044f\u043c\u0438 \u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 diff_zones.\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438.\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_diff_zones&#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0441\u0442\u0430\u0440\u044b\u0445 \u0438 \u043d\u043e\u0432\u044b\u0445 \u0437\u043e\u043d \u043f\u0440\u0438 \u043c\u0430\u043f\u043f\u0438\u043d\u0433\u0435CREATE OR REPLACE FUNCTION road_processing.fill_diff_zones(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT)RETURNS VOID AS $$begin&#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438delete from road_processing.diff_zoneswhere part_id = p_part_id and p_layer_id = layer_id  and p_object_id = object_id;insert into road_processing.diff_zones(part_id, layer_id, object_id, zone_id, diff_area, diff_len)select p_part_id as part_id,p_layer_id as layer_id,p_object_id as object_id,old_road.zone_id as zone_id,(ST_Area(old_road.geom) &#8212; ST_Area(new_road.geom)) \/ NULLIF(ST_Area(old_road.geom), 0) * 100 as diff_area,(ST_Length(ST_Boundary(old_road.geom))-ST_Length(ST_Boundary(new_road.geom))) \/ NULLIF(ST_Length(ST_Boundary(new_road.geom)), 0) * 100 as diff_lenfrom road_processing.old_road_partition as old_roadjoin road_processing.new_road_partition as new_road on old_road.zone_id = new_road.zone_id where old_road.part_id = p_part_id AND old_road.layer_id = p_layer_id AND old_road.object_id = p_object_idand new_road.part_id = p_part_id AND new_road.layer_id = p_layer_id AND new_road.object_id = p_object_id;END;$$ LANGUAGE plpgsql;\u0417\u0430\u0442\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f fill_large_zones \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442  \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043e\u043d\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b diff_zones \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0435\u0439 \u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 large_zones. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044b.\u0422\u0430\u043a \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u0440\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439) \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0437\u043e\u043d\u044b \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 (\u0441\u0438\u043d\u0438\u0439).\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0435 (\u0441\u0438\u043d\u0438\u0439) \u0438 \u0441\u0442\u0430\u0440\u0430\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439).\u0412\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u043e\u043d\u0430.\u0424\u0443\u043d\u043a\u0446\u0438\u044f fill_large_zonesCREATE OR REPLACE FUNCTION road_processing.fill_large_zones(p_part_id INTEGER,    p_layer_id INTEGER,    p_object_id TEXT,    area_threshold double precision default 50,    len_threshold double precision default 50,    standart_segment_len double precision default 300,    diff_len_coefficient double precision default 2)RETURNS VOID AS $$begin&#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438delete from road_processing.large_zoneswhere part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id;&#8212; \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043e\u043d\u044bwith increased_zones as (select zone_idfrom road_processing.diff_zoneswhere (diff_area &lt; 0 and abs(diff_area) &gt;= area_threshold ) or (diff_len &lt; 0 and abs(diff_len) &gt;= len_threshold ) and part_id = p_part_id AND layer_id = p_layer_id AND object_id = p_object_id),&#8212; \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043e\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044fzones_for_partitions as (select iz.zone_id as zone_id, nrp.geom as geomfrom increased_zones as iz join road_processing.new_road_partition as nrp on iz.zone_id = nrp.zone_idwhere  ST_Length(ST_Boundary(nrp.geom))&gt;= diff_len_coefficient*standart_segment_len AND nrp.part_id = p_part_id AND nrp.layer_id = p_layer_id AND nrp.object_id = p_object_id)insert into road_processing.large_zones(part_id, layer_id, object_id, zone_id, geom)select p_part_id as part_id,p_layer_id as layer_id,p_object_id as object_id,zone_id as zone_id,geomfrom zones_for_partitions;END;$$ LANGUAGE plpgsql;\u0424\u0443\u043d\u043a\u0446\u0438\u044f make_large_zones_partition \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u043e\u043d \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b large_zones. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 make_part_of_road_segmentation \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 new_large_zones_partition.\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f new_large_zones_classification \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0437\u043e\u043d \u0438\u0437 new_large_zones_partition. \u0418 \u0443\u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f manage_new_large_zones \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043e\u043d\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-482111","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=482111"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482111\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=482111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=482111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=482111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}