{"id":362249,"date":"2024-05-21T01:31:12","date_gmt":"2024-05-21T01:31:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=362249"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=362249","title":{"rendered":"<span>\u0414\u043e\u0440\u043e\u0433\u0438 \u0438\u0437 \u0434\u043e\u043c\u0430 \u0432\u0435\u0434\u0443\u0442 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d: \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0441\u0443\u043c\u043c\u044b \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0440\u0430\u0439\u043e\u043d\u0430\u0445 \u041c\u043e\u0441\u043a\u0432\u044b<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431 \u043f\u0438\u0441\u0430\u043b\u0438 \u0447\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0436\u0438\u0442\u044c \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u0412\u043e\u0442 \u0441 \u044d\u0442\u0438\u043c \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u0441\u043f\u043e\u0440\u0438\u0442\u044c &#8212; \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\u0445. \u0412 90\u0435 \u0431\u044b\u043b\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u0432\u0435\u0449\u0435\u0432\u044b\u0435 \u0440\u044b\u043d\u043a\u0438 \u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0438 \u043e\u0434\u0435\u0436\u0434\u0443 \u0442\u0430\u043c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0448\u0435\u0432\u043b\u0435. \u0423 \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0435\u043d\u0441\u0438\u043e\u043d\u0435\u0440\u043e\u0432 \u0438\u0445 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0437\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043a\u0443\u0440\u044c\u0435\u0440\u043e\u043c, \u043d\u043e \u0434\u0430\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u0443\u043f\u0438\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u043e\u0434\u0435\u0436\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043a\u0432\u0430\u0440\u0442\u043f\u043b\u0430\u0442\u044b &#8212; \u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0436\u0438\u0437\u043d\u0438. \u0418\u043c \u043d\u0435\u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043a\u043e\u043c\u043c\u0438\u0432\u043e\u044f\u0436\u0435\u0440\u0430 \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0438 \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u043f\u043e\u043a\u0443\u043f\u043e\u043a. \u0428\u0430\u0433\u043e\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0433\u043e\u0440\u043e\u0434\u043e\u0432.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0438 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p>\u0415\u0433\u043e \u043b\u043e\u043a\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u0420\u044f\u0434\u043e\u043c \u0441 \u043e\u0444\u0438\u0441\u043d\u044b\u043c\u0438 \u0437\u0434\u0430\u043d\u0438\u044f\u043c\u0438, \u0432 \u0442\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0432 \u0436\u0438\u043b\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043e\u0432, \u0442\u0430\u043a \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0438 \u043f\u0430\u0440\u043a\u043e\u0432\u043e\u043a. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044e: \u0434\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0434\u0435\u0442\u0441\u043a\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u0442\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u0433\u0434\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0435\u043c\u0435\u0439 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0438. \u041d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u043f\u043e\u0436\u0430\u0440\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0441\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0443\u0437\u0430\u043a\u043e\u043d\u0435\u043d\u044b. \u041f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430. \u0425\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044e\u0440\u0438\u0441\u0442\u0430 \/ \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u043e \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u043c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 + \u043e\u043f\u044b\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0442\u0440\u0430\u0442 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0437\u0434\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0430\u0440\u0435\u043d\u0434\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438\u043b\u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u0440\u0435\u043c\u043e\u043d\u0442, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0439, \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0430, \u0437\u0430\u043a\u0443\u043f\u043a\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0443\u043f\u043b\u0430\u0442\u0443 \u043d\u0430\u043b\u043e\u0433\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432? \u041a\u0442\u043e \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f, \u0433\u0434\u0435 \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043b\u0438 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0441\u0435\u0449\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0440\u0430\u0439\u043e\u043d?<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0448\u0438\u0442\u0435 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u0439\u0434\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u043c \u0437\u0430\u043b\u0435&#8230;<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u0418 \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435, \u0430 \u043c\u044b \u0436\u0435 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u043c\u0441\u044f \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 &#8212; \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430: \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u044e\u0434\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u044e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u0442\u0430\u043c \u0433\u0434\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u0431\u043b\u0438\u0436\u0435 \u0438 \u0433\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. <\/p>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u043a\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0433\u0435\u043e\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432, \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043c\u0443 \u0447\u0430\u0441\u0442\u043e \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438: \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u044f\u0437\u0438, \u043f\u043b\u0430\u0442\u0435\u0436\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0431\u0430\u043d\u043a\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u0437 \u0413\u0418\u0421 \u0416\u041a\u0425\/\u0420\u0435\u0444\u043e\u0440\u043c\u0430 \u0416\u041a\u0425, \u0438 \u043c\u043d\u043e\u0433\u043e \u0435\u0449\u0435 \u043a \u0447\u0435\u043c\u0443. \u041d\u043e \u043e\u043d\u0438, \u043a\u0430\u043a \u043f\u043e\u0447\u0442\u0430\u043b\u044c\u043e\u043d \u041f\u0435\u0447\u043a\u0438\u043d, \u0432\u0430\u043c \u0438\u0445 \u043d\u0435 \u0434\u0430\u0434\u0443\u0442. \u0418 \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u0435\u0448\u0435\u0432\u043e, \u0431\u044b\u0441\u0442\u0440\u043e, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e &#8212; \u0432\u044b\u0431\u0438\u0440\u0430\u0439 \u043b\u044e\u0431\u044b\u0435 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430.<\/p>\n<p>\u041d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u044e \u043d\u0430 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0435\u0433\u043e \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043b\u0438\u0448\u044c \u043f\u043e\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043a\u0430\u043a c\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 OpenStreetMap. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b \u043f\u043e\u043b\u043d\u043e\u0442\u0430 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043b\u0443\u0447\u0448\u0438\u0445 \u043f\u043e \u0420\u0424.<\/p>\n<h2>\u0414\u0430\u043d\u043d\u044b\u0435 \u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u044b<\/h2>\n<p>\u041a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/770044\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0413\u0434\u0435 15 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0448\u043a\u043e\u043c \u043e\u0442 \u0434\u043e\u043c\u0430 \u0434\u043e \u043c\u0435\u0442\u0440\u043e \u0432 \u041c\u043e\u0441\u043a\u0432\u0435\u2026&#187;<\/a> \u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/760562\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0413\u0434\u0435 \u0431\u044b \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0436\u0438\u043b\u0438 \u0438 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0430\u0436\u0435 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f, \u0435\u0441\u043b\u0438 \u0431\u044b \u0437\u043d\u0430\u043b\u0438 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0430\u043a\u0442\u043e\u0432&#187;<\/a>. \u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/771184\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0416\u0438\u043b\u044c\u0435 \u0432 500\u043c \u043e\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435&#187;<\/a>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 OpenStreetMap PBF \u0444\u0430\u0439\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 PostgreSQL \u0431\u0430\u0437\u0443 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c PostGIS \u0438 H3. <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439, \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GraphHopper, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0435\u0449\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0434\u043e\u043c\u0435. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 OSM \u0442\u0435\u0433\u0430 <code>building:flats<\/code>.<\/p>\n<p>\u0414\u043b\u044f \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u044d\u0442\u043e\u0442 \u0442\u0435\u0433 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043d\u0430 \u043f\u043e\u0434\u044a\u0435\u0437\u0434\u0430\u0445 (<code>addr:flats<\/code>) \u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u043e\u043c\u0430. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 50% \u043e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443, \u0442\u043e \u0434\u043b\u044f \u0437\u0434\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e, \u0438\u043d\u0430\u0447\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 <\/p>\n<\/li>\n<li>\n<p>\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0447\u0438\u0441\u043b\u043e \u044d\u0442\u0430\u0436\u0435\u0439 \u0432 \u0434\u043e\u043c\u0435 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u0437\u0434\u0430\u043d\u0438\u044f:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"sql\">CREATE TABLE flats_per_building AS WITH flats_precalc AS   (SELECT g.id,           g.type,           (CASE                WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'                ELSE NULL            END)::real levels,           (CASE                WHEN g.tags->'building:flats' ~ '^[0-9]+$' THEN g.tags->'building:flats'                ELSE NULL            END)::smallint flats,           (CASE                WHEN g.type='ways'                     AND ST_IsClosed(g.geom) THEN st_area(ST_MakePolygon(g.geom)::geography)                WHEN g.type='multipolygon' THEN st_area(g.geom::geography)                ELSE 0            END) area    FROM geometry_global_view g    WHERE type&lt;>'nodes'      AND (CASE               WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'               ELSE NULL           END)::real>2 --and **\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0436\u0438\u043b\u043e\u0435 - \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0430 OSM \u0442\u0435\u0433\u043e\u0432**;      ),  building_max_flat AS   (SELECT g.id,           type,           max(max_flat)::smallint max_flat    FROM geometry_global_view g    INNER JOIN      (SELECT id,(regexp_split_to_array(tags->'addr:flats', '-'))[2] max_flat,                                                                     geom       FROM nodes       WHERE tags?'addr:flats'         AND tags?'entrance'         AND tags->'addr:flats' ~ '^\\d+\\-\\d+?$') e ON st_contains(CASE                                                                      WHEN TYPE='ways'                                                                           AND ST_IsClosed(g.geom) THEN ST_MakePolygon(g.geom)                                                                      ELSE g.geom                                                                  END, e.geom)    WHERE type&lt;>'nodes'      AND ((CASE                WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'                ELSE NULL            END)::real>2)      AND not(g.tags?'building:flats')    GROUP BY 1,2),  flats_aprox AS   (SELECT id,           type,           flats,           (levels*area*              (SELECT avg((flats\/levels)\/area)               FROM flats_precalc               WHERE area>0                 AND flats>0))::smallint aproximated_flats    FROM flats_precalc) SELECT b.id,        b.type,        coalesce(flats, CASE                            WHEN max_flat IS NOT NULL                                 AND aproximated_flats>0                                 AND abs(max_flat-aproximated_flats)\/(aproximated_flats::real)&lt;0.5 THEN -1*max_flat                            ELSE aproximated_flats                        END) flats FROM flats_aprox b LEFT JOIN building_max_flat USING(id,type);  ALTER TABLE flats_per_building ADD PRIMARY KEY(id,type);<\/code><\/pre>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e <a class=\"mention\" href=\"\/users\/roman_deev\">@roman_deev<\/a> \u0437\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 OSM!<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u043e\u0433\u043e \u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0433\u0434\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 flats \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0440\u0435\u0434\u043d\u0438\u043c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">create table flats_per_building as  WITH flats_precalc as (select g.id,g.type,    (case when g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' then g.tags->'building:levels' else NULL end)::real levels,   (case when g.tags->'building:flats' ~ '^[0-9]+$' then g.tags->'building:flats' else NULL end)::smallint flats,   (CASE WHEN g.type='ways' and ST_IsClosed(g.geom) THEN st_area(ST_MakePolygon(g.geom)::geography) WHEN g.type='multipolygon' THEN st_area(g.geom::geography) ELSE 0 END) area  from geometry_global_view g   where  type&lt;>'nodes' and (case when g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' then g.tags->'building:levels' else NULL end)::real>2)--and **\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0436\u0438\u043b\u043e\u0435 - \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0430 OSM \u0442\u0435\u0433\u043e\u0432**;    select id,type,        coalesce(flats, (levels*area*                         (select avg((flats\/levels)\/area)                           from flats_precalc                           where area>0 and flats>0))::smallint) flats     from flats_precalc ;   alter table flats_per_building add primary key(id,type);<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0438 \u0442\u043e\u0447\u043d\u0435\u0435 &#8212; \u044d\u0442\u043e  \u043e\u0431\u043e\u0439\u0442\u0438 \u0434\u043e\u043c\u0430 \u0433\u0434\u0435 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u043f\u043e \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u043c \u044f\u0449\u0438\u043a\u0430\u043c( \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0430\u043c \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0434\u044a\u0435\u0437\u0434\u0430) \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0434\u043e\u043c\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043e\u0433\u0434\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0413\u0418\u0421 \u0416\u041a\u0425, \u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u043e\u043a \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043d\u0435\u0442. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2da\/d7d\/c88\/2dad7dc883aaa7b10c071ecaca154148.png\" alt=\"\u0417\u0435\u043b\u0435\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 - building:flats - \u0443\u043a\u0430\u0437\u0430\u043d \u0432 OSM, \u0441\u0435\u0440\u044b\u0435 - \u0430\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0438 \u043d\u0435 \u0437\u0430 \u041c\u041a\u0410\u0414 (\u0445\u043e\u0442\u044f \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).\" title=\"\u0417\u0435\u043b\u0435\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 - building:flats - \u0443\u043a\u0430\u0437\u0430\u043d \u0432 OSM, \u0441\u0435\u0440\u044b\u0435 - \u0430\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0438 \u043d\u0435 \u0437\u0430 \u041c\u041a\u0410\u0414 (\u0445\u043e\u0442\u044f \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).\" width=\"1120\" height=\"882\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2da\/d7d\/c88\/2dad7dc883aaa7b10c071ecaca154148.png\"\/><\/p>\n<div><figcaption>\u0417\u0435\u043b\u0435\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 &#8212; building:flats &#8212; \u0443\u043a\u0430\u0437\u0430\u043d \u0432 OSM, \u0441\u0435\u0440\u044b\u0435 &#8212; \u0430\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0438 \u043d\u0435 \u0437\u0430 \u041c\u041a\u0410\u0414 (\u0445\u043e\u0442\u044f \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0435 \u043e\u0442 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0440\u0430\u0434\u0438\u0443\u0441\u0435 1\u043a\u043c \u043e\u0442 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430, \u0442\u043e \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0441\u043b\u0443 \u043b\u044e\u0434\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u0442 \u043c\u0430\u0433\u0430\u0437\u0438\u043d. <\/p>\n<pre><code class=\"sql\">osmworld=# \\d flats_per_building   Column |      Type       |   --------+-----------------|  id     | bigint          |   type   | table_reference |   flats  | smallint        | Indexes:     \"flats_per_building_pkey\" PRIMARY KEY, btree (id, type)  osmworld=# \\d distance      Column     |      Type       |   ---------------+-----------------|  building_id   | bigint          |   building_type | table_reference |   poi_id        | bigint          |   poi_type      | table_reference |   distance      | smallint        |   osmworld=# select count(*) from distance;   count    ----------  60816611 (1 row) Time: 1722,807 ms (00:01,723)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; \u0441\u043b\u043e\u0436\u0438\u0432 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 1000\u043c \u043e\u0442 \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 (POI) &#8212; \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432:<\/p>\n<pre><code class=\"sql\">create table flats_per_poi as    select poi_id, poi_type, sum(flats) total_flats    from distance inner join flats_per_building      on building_id=id and building_type=type and distance&lt;=1000    group by poi_id,poi_type    order by total_flats desc;  SELECT 129128 Time: 3108,646 ms (00:03,109)<\/code><\/pre>\n<p>\u041e\u0431\u043e\u0433\u0430\u0442\u0438\u043c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0439\u043e\u043d\u043e\u043c \u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u0447\u0438\u0441\u043b\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043f\u0435\u0448\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"sql\">CREATE TABLE moscow_district AS select tags->'name' name,polygon from multipolygon where tags->'admin_level'='8' and tags->'boundary'='administrative';  CREATE INDEX idx_moscow_district_geometry ON moscow_district USING gist (polygon);  create table best_retail_location_per_district as    select name,           row_number() over (partition by district order by total_flats desc) max_flats_rating, district,          total_flats,           centre    from (select total_flats,                 coalesce(r.tags->'name',r.tags->'name:ru',r.tags->'name:en') name, (select name from moscow_district where st_contains(polygon, centre) limit 1) district, centre          from flats_per_poi inner join poi r              on poi_id=id and poi_type=type                 and 'shop' = any(categories)                 and coalesce(r.tags->'name',r.tags->'name:ru',r.tags->'name:en') is not null            order by total_flats desc) shops;<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u0430\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0443 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u041f\u044f\u0442\u0451\u0440\u043e\u0447\u043a\u0430, \u041f\u0435\u0440\u0435\u043a\u0440\u0451\u0441\u0442\u043e\u043a, \u0414\u0438\u043a\u0441\u0438, \u041c\u0430\u0433\u043d\u0438\u0442, \u041c\u0430\u0433\u043d\u043e\u043b\u0438\u044f, \u0412\u043a\u0443\u0441\u0412\u0438\u043b\u043b, \u041b\u0435\u043d\u0442\u0430, \u0410\u0437\u0431\u0443\u043a\u0430 \u0412\u043a\u0443\u0441\u0430, \u0410\u0448\u0430\u043d, \u0410\u0442\u0430\u043a, \u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0442\u0443 \u0436\u0435 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044e, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0436\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438 \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c:<\/p>\n<pre><code class=\"sql\">(tags@>'shop=>supermarket' or tags@>'shop=>convenience') and      (tags->'brand' in ('Billa',                                'Eurospar','EuroSPAR','EUROSPAR',                                '\"METRO Cash &amp; Carry\"',                                'Spar','SPAR',                                '\"\u0410\u0412 Daily\"','\u0410\u0432\u043e\u043a\u0430\u0434\u043e','\u0410\u0432\u043e\u0441\u044c\u043a\u0430','\"\u0410\u0437\u0431\u0443\u043a\u0430 \u0412\u043a\u0443\u0441\u0430\"',                                '\u0410\u0442\u0430\u043a','\u0410\u0448\u0430\u043d','\"\u0410\u0448\u0430\u043d \u0421\u0438\u0442\u0438\"',                                '\u0412\u0435\u0440\u043d\u044b\u0439','\u0412\u0438\u043a\u0442\u043e\u0440\u0438\u044f',                                '\u0412\u043a\u0443\u0441\u0412\u0438\u043b\u043b','\u0414\u0438\u043a\u0441\u0438','\u041b\u0435\u043d\u0442\u0430','\u041c\u0430\u0433\u043d\u0438\u0442',                                '\u041c\u0430\u0433\u043d\u043e\u043b\u0438\u044f','\"\u041c\u0438\u043d\u0438 \u041b\u0435\u043d\u0442\u0430\"','\u041c\u044f\u0441\u043d\u043e\u0432\u042a',                                '\u041e\u2019\u041a\u0415\u0419',                                '\u041f\u0435\u0440\u0435\u043a\u0440\u0451\u0441\u0442\u043e\u043a','\"\u041f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043e\u043a \u042d\u043a\u0441\u043f\u0440\u0435\u0441\u0441\"',                                '\u041f\u044f\u0442\u0451\u0440\u043e\u0447\u043a\u0430','\u0421\u0432\u0435\u0442\u043e\u0444\u043e\u0440',                                '\"\u0421\u0443\u043f\u0435\u0440 \u041b\u0435\u043d\u0442\u0430\"','\u0421\u0443\u043f\u0435\u0440\u041b\u0435\u043d\u0442\u0430',                                '\"\u0423 \u041f\u0430\u043b\u044b\u0447\u0430\"','\u0424\u0430\u0441\u043e\u043b\u044c','\u0427\u0438\u0436\u0438\u043a','\u042f\u0440\u0447\u0435!')<\/code><\/pre>\n<p>\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0431\u0440\u0435\u043d\u0434\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0445 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435:<\/p>\n<pre><code class=\"sql\">select upper(tags->'brand') brand,count(*) from geometry_global_view where (tags@>'shop=>supermarket' or tags@>'shop=>convenience') and tags?'brand' group by 1 having count(*)>1 order by 2 desc;          brand         | count  ----------------------+-------  \u041f\u042f\u0422\u0401\u0420\u041e\u0427\u041a\u0410            |  1144  \u0412\u041a\u0423\u0421\u0412\u0418\u041b\u041b             |   596  \u0414\u0418\u041a\u0421\u0418                |   432  \u041c\u0410\u0413\u041d\u0418\u0422               |   391  \u041f\u0415\u0420\u0415\u041a\u0420\u0401\u0421\u0422\u041e\u041a          |   296  \u041c\u0410\u0413\u041d\u041e\u041b\u0418\u042f             |   161  \u041b\u0415\u041d\u0422\u0410                |    82  \u0423 \u041f\u0410\u041b\u042b\u0427\u0410             |    76  \u0412\u0415\u0420\u041d\u042b\u0419               |    69  \u0410\u0417\u0411\u0423\u041a\u0410 \u0412\u041a\u0423\u0421\u0410         |    68  \u041c\u042f\u0421\u041d\u041e\u0412\u042a              |    56  \u0421\u0423\u0428\u0418 WOK             |    39  EUROSPAR             |    28  \u0410\u0412 DAILY             |    27  \u0410\u0428\u0410\u041d                 |    27  \u0421\u0423\u041f\u0415\u0420 \u041b\u0415\u041d\u0422\u0410          |    24  \u0412\u0418\u041a\u0422\u041e\u0420\u0418\u042f             |    24  \u042f\u0420\u0427\u0415!                |    22  \u0410\u0422\u0410\u041a                 |    15  SPAR                 |    11  \u0421\u0412\u0415\u0422\u041e\u0424\u041e\u0420             |    11  \u041e\u2019\u041a\u0415\u0419                |     9  \u0427\u0418\u0416\u0418\u041a                |     9  \u0410\u0412\u041e\u041a\u0410\u0414\u041e              |     6  \u041f\u0415\u0420\u0415\u041a\u0420\u0415\u0421\u0422\u041e\u041a \u042d\u041a\u0421\u041f\u0420\u0415\u0421\u0421 |     6  \u0410\u0428\u0410\u041d \u0421\u0418\u0422\u0418            |     3  \u041c\u0418\u041d\u0418 \u041b\u0415\u041d\u0422\u0410           |     3  \u0410\u0412\u041e\u0421\u042c\u041a\u0410              |     3  METRO CASH &amp; CARRY   |     3  \u0424\u0410\u0421\u041e\u041b\u042c               |     3  \u041d\u0415\u0424\u0422\u042c\u041c\u0410\u0413\u0418\u0421\u0422\u0420\u0410\u041b\u042c      |     2  BILLA                |     2  \u041f\u0420\u041e\u0414\u0423\u041a\u0422\u041e\u0412\u0418\u0419 \u041c\u0410\u0413\u0410\u0417\u0418\u041d  |     2 (33 rows)<\/code><\/pre>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0436\u0438\u0442\u0435\u043b\u0435\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/422\/56d\/6fa\/42256d6fadf4d8fb796c6fde35fdeae8.png\" alt=\"select * from best_retail_location_per_district where max_flats_rating&lt;=10\" title=\"select * from best_retail_location_per_district where max_flats_rating&lt;=10\" width=\"1302\" height=\"1043\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/422\/56d\/6fa\/42256d6fadf4d8fb796c6fde35fdeae8.png\"\/><\/p>\n<div><figcaption>select * from best_retail_location_per_district where max_flats_rating&lt;=10<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u043c\u0435\u0441\u0442 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u0440\u0430\u0439\u043e\u043d\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 1\u043a\u043c \u043e\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">select district, total_flats, st_x(centre), st_y(centre)    from best_retail_location_per_district    where max_flats_rating=1    order by total_flats desc;              district             | total_flats |        st_x        |        st_y         ---------------------------------+-------------+--------------------+--------------------  \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e                    |       44554 | 37.355865200000004 |         55.8478696  \u0440\u0430\u0439\u043e\u043d \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e                 |       39255 |          37.800719 | 55.793489400000006  \u0440\u0430\u0439\u043e\u043d \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435 \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e       |       39254 | 37.799821800000004 |  55.79304380000001  \u0440\u0430\u0439\u043e\u043d \u0413\u043e\u043b\u044c\u044f\u043d\u043e\u0432\u043e                 |       32907 |        37.80093225 |        55.81096895  \u0440\u0430\u0439\u043e\u043d \u0420\u0430\u043c\u0435\u043d\u043a\u0438                   |       31709 |         37.5055284 |  55.70210530000001  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e        |       30541 |         37.8124447 |         55.8050585  \u041b\u043e\u043c\u043e\u043d\u043e\u0441\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             |       29928 |         37.5473658 |         55.6803493  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u0411\u0443\u0442\u043e\u0432\u043e              |       29658 |         37.5593346 |         55.5486773  \u0422\u0430\u0433\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 |       29457 |         37.6752278 | 55.739144700000004  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0451\u043c\u0443\u0448\u043a\u0438                 |       28843 |         37.5469279 |         55.6735065  \u041f\u0440\u0435\u0441\u043d\u0435\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       28788 | 37.518790700000004 |         55.7570794  \u0413\u0430\u0433\u0430\u0440\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       28615 |         37.5473967 |         55.6811439  \u0440\u0430\u0439\u043e\u043d \u0425\u043e\u0440\u043e\u0448\u0451\u0432\u043e-\u041c\u043d\u0451\u0432\u043d\u0438\u043a\u0438         |       28588 |         37.4602547 |         55.7818655  \u0440\u0430\u0439\u043e\u043d \u0429\u0443\u043a\u0438\u043d\u043e                    |       28155 |         37.4625799 |         55.8089335  \u0440\u0430\u0439\u043e\u043d \u0425\u043e\u0432\u0440\u0438\u043d\u043e                   |       27974 |         37.5031309 |         55.8609803  \u041e\u0431\u0440\u0443\u0447\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       27952 |          37.517463 |         55.6643959  \u0440\u0430\u0439\u043e\u043d \u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442                  |       27551 |         37.5356024 | 55.803232200000004  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0411\u0443\u0442\u043e\u0432\u043e           |       27199 | 37.577473600000005 |          55.568533  \u0440\u0430\u0439\u043e\u043d \u041d\u0435\u043a\u0440\u0430\u0441\u043e\u0432\u043a\u0430                |       27009 | 37.927194300000004 |         55.7028795  \u0411\u0435\u0441\u043a\u0443\u0434\u043d\u0438\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d           |       26881 | 37.550535800000006 | 55.875935000000005  \u0440\u0430\u0439\u043e\u043d \u041a\u0443\u043d\u0446\u0435\u0432\u043e                   |       26791 | 37.410576407649934 |  55.73863922462011  \u0440\u0430\u0439\u043e\u043d \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u043e\u0435               |       26623 | 37.719145000000005 |         55.8078323  \u0440\u0430\u0439\u043e\u043d \u0417\u044e\u0437\u0438\u043d\u043e                    |       26066 | 37.599057900000005 | 55.653555100000005  \u0440\u0430\u0439\u043e\u043d \u041b\u0435\u0432\u043e\u0431\u0435\u0440\u0435\u0436\u043d\u044b\u0439              |       25818 | 37.475883100000004 | 55.864906600000005  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0422\u0443\u0448\u0438\u043d\u043e           |       25815 |         37.4244894 |         55.8499326  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043b\u043d\u0446\u0435\u0432\u043e                  |       25813 |         37.4061808 |         55.6502106  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u043d\u044c\u043a\u043e\u0432\u043e                  |       25808 | 37.524680000000004 |         55.6426711  \u0440\u0430\u0439\u043e\u043d \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435 \u0414\u0435\u0433\u0443\u043d\u0438\u043d\u043e        |       25701 |         37.5481326 | 55.878368900000005  \u0440\u0430\u0439\u043e\u043d \u041b\u044e\u0431\u043b\u0438\u043d\u043e                   |       25541 |         37.7584202 |  55.67367470000001  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e       |       25425 | 37.662568300000004 | 55.888120150000006  \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             |       25403 |         37.5539208 |         55.6836137  \u0440\u0430\u0439\u043e\u043d \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0441\u043a\u043e\u0435            |       25278 | 37.717225500000005 | 55.804943400000006  \u0440\u0430\u0439\u043e\u043d \u0412\u044b\u0445\u0438\u043d\u043e-\u0416\u0443\u043b\u0435\u0431\u0438\u043d\u043e           |       24985 |         37.8533144 | 55.684696200000005  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u044c\u0438\u043d\u043e                   |       24825 |          37.765138 |          55.668098  \u0414\u043c\u0438\u0442\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       24682 |         37.5332311 |         55.8812342  \u0440\u0430\u0439\u043e\u043d \u0410\u0440\u0431\u0430\u0442                     |       24663 |         37.5830846 |         55.7471182  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u0422\u0443\u0448\u0438\u043d\u043e              |       24653 | 37.425816600000005 | 55.848617700000005  \u0440\u0430\u0439\u043e\u043d \u041e\u0442\u0440\u0430\u0434\u043d\u043e\u0435                  |       24578 |        37.60205305 | 55.863150100000006  \u0440\u0430\u0439\u043e\u043d \u041d\u043e\u0432\u043e\u043a\u043e\u0441\u0438\u043d\u043e                |       24372 | 37.858880500000005 | 55.740321800000004  \u041d\u0430\u0433\u043e\u0440\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d                  |       24369 |         37.6060573 |         55.6516913  \u041d\u043e\u0432\u043e-\u041f\u0435\u0440\u0435\u0434\u0435\u043b\u043a\u0438\u043d\u043e                |       24264 | 37.349189800000005 |         55.6410172  \u0440\u0430\u0439\u043e\u043d \u0422\u0435\u043a\u0441\u0442\u0438\u043b\u044c\u0449\u0438\u043a\u0438              |       24168 |         37.7484052 |         55.7007545  \u0440\u0430\u0439\u043e\u043d \u041d\u0430\u0433\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0417\u0430\u0442\u043e\u043d         |       24130 |         37.6775296 |  55.68217430000001  \u0440\u0430\u0439\u043e\u043d \u0421\u0432\u0438\u0431\u043b\u043e\u0432\u043e                  |       24093 |         37.6462869 |         55.8517595  \u0440\u0430\u0439\u043e\u043d \u0425\u0430\u043c\u043e\u0432\u043d\u0438\u043a\u0438                 |       24042 |         37.5789264 |         55.7254597  \u0422\u0432\u0435\u0440\u0441\u043a\u043e\u0439 \u0440\u0430\u0439\u043e\u043d                  |       24037 |         37.5973848 |         55.7709714  \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              |       23962 | 37.645125400000005 |  55.81044300000001  \u041e\u0440\u0435\u0445\u043e\u0432\u043e-\u0411\u043e\u0440\u0438\u0441\u043e\u0432\u043e \u042e\u0436\u043d\u043e\u0435          |       23737 |         37.7338043 |         55.6073353  \u0440\u0430\u0439\u043e\u043d \u041d\u043e\u0432\u043e\u0433\u0438\u0440\u0435\u0435\u0432\u043e               |       23715 |         37.8027832 | 55.753313600000006  \u0413\u043e\u043b\u043e\u0432\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       23674 |         37.5111866 |  55.85889400000001  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435     |       23578 | 37.593337250000005 |        55.60662975  \u0440\u0430\u0439\u043e\u043d \u041a\u0443\u0437\u044c\u043c\u0438\u043d\u043a\u0438                 |       23536 |          37.763281 | 55.705186100000006  \u0440\u0430\u0439\u043e\u043d \u041f\u0435\u0440\u043e\u0432\u043e                    |       23473 |         37.7999486 | 55.754013400000005  \u041b\u043e\u0441\u0438\u043d\u043e\u043e\u0441\u0442\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d          |       23342 |         37.6858603 |          55.876531  \u0440\u0430\u0439\u043e\u043d \u0411\u0438\u0431\u0438\u0440\u0435\u0432\u043e                  |       23312 | 37.596387500000006 |         55.8903642  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e          |       23006 |         37.6367825 |  55.87363860000001  \u0420\u044f\u0437\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 |       22981 | 37.778901677736364 |  55.71208193761292  \u0440\u0430\u0439\u043e\u043d \u0421\u0442\u0440\u043e\u0433\u0438\u043d\u043e                  |       22929 |         37.4063571 | 55.807376600000005  \u0422\u0438\u043c\u0438\u0440\u044f\u0437\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             |       22852 |         37.5732797 | 55.812274200000004  \u0440\u0430\u0439\u043e\u043d \u042f\u043a\u0438\u043c\u0430\u043d\u043a\u0430                  |       22658 |         37.6136508 |         55.7213738  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u042e\u0436\u043d\u043e\u0435           |       22591 | 37.605664700000005 | 55.594416100000004  \u0440\u0430\u0439\u043e\u043d \u041a\u0440\u044b\u043b\u0430\u0442\u0441\u043a\u043e\u0435                |       22568 |         37.4084348 | 55.760584400000006  \u0440\u0430\u0439\u043e\u043d \u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 \u0412\u0435\u0440\u043d\u0430\u0434\u0441\u043a\u043e\u0433\u043e      |       22325 | 37.512944600000004 | 55.666986800000004  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0421\u043e\u0441\u0435\u043d\u0441\u043a\u043e\u0435             |       22225 | 37.477374700000006 |  55.57048090000001  \u0411\u0430\u0431\u0443\u0448\u043a\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              |       21958 |         37.6771351 | 55.867305300000005  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0412\u043d\u0443\u043a\u043e\u0432\u0441\u043a\u043e\u0435            |       21831 |         37.3237201 |         55.6370195  \u0440\u0430\u0439\u043e\u043d \u0417\u044f\u0431\u043b\u0438\u043a\u043e\u0432\u043e                 |       21643 |         37.7416136 |         55.6214627  \u0440\u0430\u0439\u043e\u043d \u0422\u0451\u043f\u043b\u044b\u0439 \u0421\u0442\u0430\u043d               |       21573 |         37.5181272 | 55.632703400000004  \u0414\u0430\u043d\u0438\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       21467 |         37.6175062 | 55.719938000000006  \u0440\u0430\u0439\u043e\u043d \u042f\u0441\u0435\u043d\u0435\u0432\u043e                   |       21410 |         37.5439495 | 55.607119700000005  \u0440\u0430\u0439\u043e\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0435                |       21390 | 37.826334100000004 | 55.753645600000006  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u043f\u0442\u0435\u0432\u043e                   |       21371 |          37.520052 | 55.823584700000005  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u044c\u0438\u043d\u0430 \u0420\u043e\u0449\u0430              |       21313 |         37.6127702 |         55.7926579  \u0440\u0430\u0439\u043e\u043d \u041b\u0438\u0430\u043d\u043e\u0437\u043e\u0432\u043e                 |       21263 |         37.5785372 |  55.89771390000001  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b                     |       21262 |         37.5147357 | 55.800178700000004  \u041e\u0441\u0442\u0430\u043d\u043a\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              |       21086 | 37.637360900000004 |         55.8134049  \u042e\u0436\u043d\u043e\u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0439 \u0440\u0430\u0439\u043e\u043d              |       21057 | 37.664825900000004 | 55.731036100000004  \u0421\u0430\u0432\u0451\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       21011 |         37.5738591 |         55.7945739  \u0440\u0430\u0439\u043e\u043d \u0417\u0430\u043c\u043e\u0441\u043a\u0432\u043e\u0440\u0435\u0447\u044c\u0435             |       20951 |          37.617964 |         55.7204885  \u0411\u0430\u0441\u043c\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d                 |       20784 |         37.6759708 |  55.77245370000001  \u0440\u0430\u0439\u043e\u043d \u041e\u0440\u0435\u0445\u043e\u0432\u043e-\u0411\u043e\u0440\u0438\u0441\u043e\u0432\u043e \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 |       20782 | 37.708416400000004 | 55.609964500000004  \u0440\u0430\u0439\u043e\u043d \u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0435 \u0414\u0435\u0433\u0443\u043d\u0438\u043d\u043e         |       20547 |         37.5228794 |         55.8780158  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435        |       20459 |         37.6001775 |         55.6291803  \u0411\u0443\u0442\u044b\u0440\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 |       20390 | 37.581405100000005 |         55.8199976  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u0438                |       20328 | 37.676637400000004 |         55.7855112  \u0412\u043e\u0439\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                |       20192 |         37.5187881 | 55.821412200000005  \u041c\u0435\u0449\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 |       20033 | 37.621846000000005 |         55.7732935  \u041c\u043e\u0436\u0430\u0439\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 |       19652 | 37.423553500000004 | 55.725824700000004  \u0414\u043e\u043d\u0441\u043a\u043e\u0439 \u0440\u0430\u0439\u043e\u043d                   |       19509 | 37.607535000000006 |         55.7157616  \u0440\u0430\u0439\u043e\u043d \u041e\u0447\u0430\u043a\u043e\u0432\u043e-\u041c\u0430\u0442\u0432\u0435\u0435\u0432\u0441\u043a\u043e\u0435       |       19501 |         37.4757927 |         55.7104287  \u0422\u0440\u043e\u043f\u0430\u0440\u0451\u0432\u043e-\u041d\u0438\u043a\u0443\u043b\u0438\u043d\u043e              |       19432 |         37.4681865 | 55.664694000000004  \u041a\u0440\u0430\u0441\u043d\u043e\u0441\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d            |       18394 | 37.636166200000005 |         55.7719856  \u0410\u043b\u0442\u0443\u0444\u044c\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              |       18364 | 37.597489200000005 | 55.885716900000006  \u0440\u0430\u0439\u043e\u043d \u041b\u0435\u0444\u043e\u0440\u0442\u043e\u0432\u043e                 |       18326 |         37.7081619 |         55.7505072  \u0440\u0430\u0439\u043e\u043d \u0411\u0440\u0430\u0442\u0435\u0435\u0432\u043e                  |       18287 |         37.7634054 |  55.63621010000001  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b\u0438\u043d\u0430\u044f \u0413\u043e\u0440\u0430            |       18285 |         37.7326258 | 55.779113100000004  \u0440\u0430\u0439\u043e\u043d \u0426\u0430\u0440\u0438\u0446\u044b\u043d\u043e                  |       18200 |         37.6565437 |         55.6260485  \u0425\u043e\u0440\u043e\u0448\u0451\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       17739 | 37.533148600000004 | 55.776608200000005  \u0440\u0430\u0439\u043e\u043d \u0412\u0435\u0448\u043d\u044f\u043a\u0438                   |       17409 | 37.823054400000004 | 55.721068200000005  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u0442\u043b\u043e\u0432\u043a\u0430                  |       17388 |         37.5936012 |         55.6813876  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u0441\u0438\u043d\u043e-\u0423\u0445\u0442\u043e\u043c\u0441\u043a\u0438\u0439          |       17371 |  37.88647929577547 |   55.7146019953649  \u0440\u0430\u0439\u043e\u043d \u0414\u043e\u0440\u043e\u0433\u043e\u043c\u0438\u043b\u043e\u0432\u043e              |       17313 |         37.5489696 | 55.743085300000004  \u0440\u0430\u0439\u043e\u043d \u0424\u0438\u043b\u0451\u0432\u0441\u043a\u0438\u0439 \u041f\u0430\u0440\u043a            |       17221 | 37.489751000000005 |         55.7397427  \u0440\u0430\u0439\u043e\u043d \u041d\u0430\u0433\u0430\u0442\u0438\u043d\u043e-\u0421\u0430\u0434\u043e\u0432\u043d\u0438\u043a\u0438        |       17176 |         37.6629725 | 55.679679900000004  \u0440\u0430\u0439\u043e\u043d \u041f\u0435\u0447\u0430\u0442\u043d\u0438\u043a\u0438                 |       17069 |         37.7247369 | 55.682193700000006  \u0440\u0430\u0439\u043e\u043d \u0424\u0438\u043b\u0438-\u0414\u0430\u0432\u044b\u0434\u043a\u043e\u0432\u043e            |       16830 | 37.451718400000004 | 55.723709500000005  \u0440\u0430\u0439\u043e\u043d \u0411\u0435\u0433\u043e\u0432\u043e\u0439                   |       16642 |         37.5755901 |         55.7896471  \u0440\u0430\u0439\u043e\u043d \u0420\u043e\u0441\u0442\u043e\u043a\u0438\u043d\u043e                 |       15438 |         37.6557199 |         55.8335372  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u0444\u0438\u043d\u043e                   |       14216 | 37.589894400000006 |         55.8285594  \u0440\u0430\u0439\u043e\u043d \u041c\u0435\u0442\u0440\u043e\u0433\u043e\u0440\u043e\u0434\u043e\u043a              |       13866 |         37.7586345 | 55.825178550000004  \u0440\u0430\u0439\u043e\u043d \u0411\u0438\u0440\u044e\u043b\u0451\u0432\u043e \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435        |       13122 |        37.66389045 | 55.601072300000006  \u0440\u0430\u0439\u043e\u043d \u041c\u043e\u0441\u043a\u0432\u043e\u0440\u0435\u0447\u044c\u0435-\u0421\u0430\u0431\u0443\u0440\u043e\u0432\u043e      |       12305 | 37.663324800000005 |         55.6403018  \u0440\u0430\u0439\u043e\u043d \u041f\u043e\u043a\u0440\u043e\u0432\u0441\u043a\u043e\u0435-\u0421\u0442\u0440\u0435\u0448\u043d\u0435\u0432\u043e      |       12231 |         37.4536358 | 55.830881500000004  \u042f\u0440\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               |       10980 |          37.687691 | 55.862006400000006  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0439            |       10884 |  37.41915496649685 | 55.660058285851896  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0439                  |       10731 | 37.544192200000005 | 55.928780100000004  \u041d\u0438\u0436\u0435\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             |       10346 | 37.681484632205915 |  55.72787293563479  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u0441\u043a\u043e\u0435         |        9373 |          37.514949 |         55.5256966  \u0440\u0430\u0439\u043e\u043d \u041a\u0430\u043f\u043e\u0442\u043d\u044f                   |        9128 | 37.796075200000004 |         55.6350781  \u0440\u0430\u0439\u043e\u043d \u041a\u0443\u0440\u043a\u0438\u043d\u043e                   |        7364 | 37.428532700000005 |  55.87720755000001  \u0440\u0430\u0439\u043e\u043d \u0412\u043d\u0443\u043a\u043e\u0432\u043e                   |        5940 |         37.2621203 | 55.614216500000005  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u00ab\u041c\u043e\u0441\u0440\u0435\u043d\u0442\u0433\u0435\u043d\u00bb          |        4296 |         37.4733691 | 55.620890900000006  \u0440\u0430\u0439\u043e\u043d \u0411\u0438\u0440\u044e\u043b\u0451\u0432\u043e \u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0435         |        1817 |         37.6464437 |         55.5913467<\/code><\/pre>\n<p>\u0413\u0434\u0435 total_flats &#8212; \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0440\u0430\u0434\u0438\u0443\u0441\u0435 1\u043a\u043c \u043e\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0439\u043e\u043d\u0430 district \u0438 \u0435\u0451 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u044d\u0442\u0438 \u0446\u0438\u0444\u0440\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0445 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0434\u043e\u043c\u043e\u0432, <em>\u0447\u0442\u043e \u043d\u0435 \u0434\u0430\u043b\u044c\u0448\u0435 2\u043a\u043c \u043e\u0442 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043c\u0435\u0442\u0440\u043e<\/em>. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/baa\/014\/300\/baa0143003572105585415b550a1ecba.png\" alt=\"\u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 - \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435\" title=\"\u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 - \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435\" width=\"910\" height=\"882\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/baa\/014\/300\/baa0143003572105585415b550a1ecba.png\"\/><\/p>\n<div><figcaption>\u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 &#8212; \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e\u0442 \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0442\u0430\u043a \u0436\u0435 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043b\u044e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443. \u041e\u0434\u043d\u043e \u0434\u0435\u043b\u043e \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043f\u043e \u043f\u0443\u0442\u0438 \u043a \u043c\u0435\u0442\u0440\u043e, \u0430 \u0434\u0440\u0443\u0433\u043e\u0435 &#8212; \u043b\u0430\u0440\u0435\u043a \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u043d\u044b\u0439 \u0432\u043e \u0434\u0432\u043e\u0440\u0430\u0445. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043b\u044e\u0434\u0435\u0439 \u043a \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u0430\u043c \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0445\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 &#8212; \u0431\u0443\u0434\u0443\u0442 \u0447\u0430\u0449\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043a \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.  \u0422\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u0438\u0441\u043a \u043b\u043e\u043a\u0430\u0446\u0438\u0438-\u0434\u0432\u043e\u0439\u043d\u0438\u043a\u0430 \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0425\u0430\u0444\u0444\u0430( Huff model), Multinomial Logit Model, Multiplicative Interactive Choice. \u0414\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043a\u0430\u043a \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 OSM, \u0442\u0430\u043a \u0438 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 Places \u043e\u0442 Overture Maps Foundation. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u0438 \u0433\u0435\u043e\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0439\u0442\u0438 \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0432 \u043c\u0435\u0441\u0442\u0435, \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0443 \u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0440\u0430\u0439\u043e\u043d\u0430 \u041c\u043e\u0441\u043a\u0432\u044b.<\/p>\n<p><strong>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u0430\u044f \u0431\u0443\u043b\u044c\u0432\u0430\u0440\u043d\u0430\u044f \u043f\u0440\u0435\u0441\u0441\u0430<\/strong>! \u041f\u0440\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0425\u0430\u0431\u0440 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430! \u0418\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0430\u043c\u0438 \u043c\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0441 \u0425\u0430\u0431\u0440\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0437\u0430\u043a\u0430\u0437\u043d\u043e\u043c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0435 \u0432\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0438\u0437\u043a\u043e\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c\u0435.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434<\/h2>\n<p>\u0425\u043e\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043c\u0435\u0433\u0430\u043f\u043e\u043b\u0438\u0441\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0443\u0442\u043e\u043a, \u043d\u043e \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043b\u044e\u0434\u0435\u0439 (\u0438\u0437 \u043a\u0432\u0430\u0440\u0442\u0438\u0440), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u043e\u0439\u0442\u0438 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. <\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c open source \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0433\u0430\u0434\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u0444\u0435\u0439\u043d\u043e\u0439 \u0433\u0443\u0449\u0435 \u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u0441\u043b\u043e\u0432\u043e. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0432\u044b\u0431\u043e\u0440\u0430 \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0433\u0434\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0441\u043f\u0435\u0445 \u043c\u0430\u043b\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/778970\/\"> https:\/\/habr.com\/ru\/articles\/778970\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431 \u043f\u0438\u0441\u0430\u043b\u0438 \u0447\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0436\u0438\u0442\u044c \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u0412\u043e\u0442 \u0441 \u044d\u0442\u0438\u043c \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u0441\u043f\u043e\u0440\u0438\u0442\u044c &#8212; \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\u0445. \u0412 90\u0435 \u0431\u044b\u043b\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u0432\u0435\u0449\u0435\u0432\u044b\u0435 \u0440\u044b\u043d\u043a\u0438 \u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0438 \u043e\u0434\u0435\u0436\u0434\u0443 \u0442\u0430\u043c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0448\u0435\u0432\u043b\u0435. \u0423 \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0435\u043d\u0441\u0438\u043e\u043d\u0435\u0440\u043e\u0432 \u0438\u0445 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0437\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043a\u0443\u0440\u044c\u0435\u0440\u043e\u043c, \u043d\u043e \u0434\u0430\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u0443\u043f\u0438\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u043e\u0434\u0435\u0436\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043a\u0432\u0430\u0440\u0442\u043f\u043b\u0430\u0442\u044b &#8212; \u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0436\u0438\u0437\u043d\u0438. \u0418\u043c \u043d\u0435\u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043a\u043e\u043c\u043c\u0438\u0432\u043e\u044f\u0436\u0435\u0440\u0430 \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0438 \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u043f\u043e\u043a\u0443\u043f\u043e\u043a. \u0428\u0430\u0433\u043e\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0433\u043e\u0440\u043e\u0434\u043e\u0432.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0438 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p>\u0415\u0433\u043e \u043b\u043e\u043a\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u0420\u044f\u0434\u043e\u043c \u0441 \u043e\u0444\u0438\u0441\u043d\u044b\u043c\u0438 \u0437\u0434\u0430\u043d\u0438\u044f\u043c\u0438, \u0432 \u0442\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0432 \u0436\u0438\u043b\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043e\u0432, \u0442\u0430\u043a \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0438 \u043f\u0430\u0440\u043a\u043e\u0432\u043e\u043a. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044e: \u0434\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0434\u0435\u0442\u0441\u043a\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u0442\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u0433\u0434\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0435\u043c\u0435\u0439 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0438. \u041d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u043f\u043e\u0436\u0430\u0440\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0441\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0443\u0437\u0430\u043a\u043e\u043d\u0435\u043d\u044b. \u041f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430. \u0425\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044e\u0440\u0438\u0441\u0442\u0430 \/ \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u043e \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u043c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 + \u043e\u043f\u044b\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0442\u0440\u0430\u0442 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0437\u0434\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0430\u0440\u0435\u043d\u0434\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438\u043b\u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u0440\u0435\u043c\u043e\u043d\u0442, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0439, \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0430, \u0437\u0430\u043a\u0443\u043f\u043a\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0443\u043f\u043b\u0430\u0442\u0443 \u043d\u0430\u043b\u043e\u0433\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432? \u041a\u0442\u043e \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f, \u0433\u0434\u0435 \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043b\u0438 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0441\u0435\u0449\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0440\u0430\u0439\u043e\u043d?<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0448\u0438\u0442\u0435 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u0439\u0434\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u043c \u0437\u0430\u043b\u0435&#8230;<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u0418 \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435, \u0430 \u043c\u044b \u0436\u0435 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u043c\u0441\u044f \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 &#8212; \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430: \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u044e\u0434\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u044e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u0442\u0430\u043c \u0433\u0434\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u0431\u043b\u0438\u0436\u0435 \u0438 \u0433\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. <\/p>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u043a\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0433\u0435\u043e\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432, \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043c\u0443 \u0447\u0430\u0441\u0442\u043e \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438: \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u044f\u0437\u0438, \u043f\u043b\u0430\u0442\u0435\u0436\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0431\u0430\u043d\u043a\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u0437 \u0413\u0418\u0421 \u0416\u041a\u0425\/\u0420\u0435\u0444\u043e\u0440\u043c\u0430 \u0416\u041a\u0425, \u0438 \u043c\u043d\u043e\u0433\u043e \u0435\u0449\u0435 \u043a \u0447\u0435\u043c\u0443. \u041d\u043e \u043e\u043d\u0438, \u043a\u0430\u043a \u043f\u043e\u0447\u0442\u0430\u043b\u044c\u043e\u043d \u041f\u0435\u0447\u043a\u0438\u043d, \u0432\u0430\u043c \u0438\u0445 \u043d\u0435 \u0434\u0430\u0434\u0443\u0442. \u0418 \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u0435\u0448\u0435\u0432\u043e, \u0431\u044b\u0441\u0442\u0440\u043e, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e &#8212; \u0432\u044b\u0431\u0438\u0440\u0430\u0439 \u043b\u044e\u0431\u044b\u0435 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430.<\/p>\n<p>\u041d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u044e \u043d\u0430 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0435\u0433\u043e \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043b\u0438\u0448\u044c \u043f\u043e\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043a\u0430\u043a c\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 OpenStreetMap. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b \u043f\u043e\u043b\u043d\u043e\u0442\u0430 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043b\u0443\u0447\u0448\u0438\u0445 \u043f\u043e \u0420\u0424.<\/p>\n<h2>\u0414\u0430\u043d\u043d\u044b\u0435 \u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u044b<\/h2>\n<p>\u041a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/770044\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0413\u0434\u0435 15 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0448\u043a\u043e\u043c \u043e\u0442 \u0434\u043e\u043c\u0430 \u0434\u043e \u043c\u0435\u0442\u0440\u043e \u0432 \u041c\u043e\u0441\u043a\u0432\u0435\u2026&#187;<\/a> \u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/760562\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0413\u0434\u0435 \u0431\u044b \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0436\u0438\u043b\u0438 \u0438 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0430\u0436\u0435 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f, \u0435\u0441\u043b\u0438 \u0431\u044b \u0437\u043d\u0430\u043b\u0438 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0430\u043a\u0442\u043e\u0432&#187;<\/a>. \u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/771184\/\" rel=\"noopener noreferrer nofollow\">&#171;\u0416\u0438\u043b\u044c\u0435 \u0432 500\u043c \u043e\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435&#187;<\/a>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 OpenStreetMap PBF \u0444\u0430\u0439\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 PostgreSQL \u0431\u0430\u0437\u0443 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c PostGIS \u0438 H3. <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439, \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GraphHopper, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0435\u0449\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0434\u043e\u043c\u0435. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 OSM \u0442\u0435\u0433\u0430 <code>building:flats<\/code>.<\/p>\n<p>\u0414\u043b\u044f \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u044d\u0442\u043e\u0442 \u0442\u0435\u0433 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043d\u0430 \u043f\u043e\u0434\u044a\u0435\u0437\u0434\u0430\u0445 (<code>addr:flats<\/code>) \u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u043e\u043c\u0430. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 50% \u043e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443, \u0442\u043e \u0434\u043b\u044f \u0437\u0434\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e, \u0438\u043d\u0430\u0447\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 <\/p>\n<\/li>\n<li>\n<p>\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0447\u0438\u0441\u043b\u043e \u044d\u0442\u0430\u0436\u0435\u0439 \u0432 \u0434\u043e\u043c\u0435 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u0437\u0434\u0430\u043d\u0438\u044f:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"sql\">CREATE TABLE flats_per_building AS WITH flats_precalc AS   (SELECT g.id,           g.type,           (CASE                WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'                ELSE NULL            END)::real levels,           (CASE                WHEN g.tags->'building:flats' ~ '^[0-9]+$' THEN g.tags->'building:flats'                ELSE NULL            END)::smallint flats,           (CASE                WHEN g.type='ways'                     AND ST_IsClosed(g.geom) THEN st_area(ST_MakePolygon(g.geom)::geography)                WHEN g.type='multipolygon' THEN st_area(g.geom::geography)                ELSE 0            END) area    FROM geometry_global_view g    WHERE type&lt;>'nodes'      AND (CASE               WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'               ELSE NULL           END)::real>2 --and **\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0436\u0438\u043b\u043e\u0435 - \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0430 OSM \u0442\u0435\u0433\u043e\u0432**;      ),  building_max_flat AS   (SELECT g.id,           type,           max(max_flat)::smallint max_flat    FROM geometry_global_view g    INNER JOIN      (SELECT id,(regexp_split_to_array(tags->'addr:flats', '-'))[2] max_flat,                                                                     geom       FROM nodes       WHERE tags?'addr:flats'         AND tags?'entrance'         AND tags->'addr:flats' ~ '^\\d+\\-\\d+?$') e ON st_contains(CASE                                                                      WHEN TYPE='ways'                                                                           AND ST_IsClosed(g.geom) THEN ST_MakePolygon(g.geom)                                                                      ELSE g.geom                                                                  END, e.geom)    WHERE type&lt;>'nodes'      AND ((CASE                WHEN g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' THEN g.tags->'building:levels'                ELSE NULL            END)::real>2)      AND not(g.tags?'building:flats')    GROUP BY 1,2),  flats_aprox AS   (SELECT id,           type,           flats,           (levels*area*              (SELECT avg((flats\/levels)\/area)               FROM flats_precalc               WHERE area>0                 AND flats>0))::smallint aproximated_flats    FROM flats_precalc) SELECT b.id,        b.type,        coalesce(flats, CASE                            WHEN max_flat IS NOT NULL                                 AND aproximated_flats>0                                 AND abs(max_flat-aproximated_flats)\/(aproximated_flats::real)&lt;0.5 THEN -1*max_flat                            ELSE aproximated_flats                        END) flats FROM flats_aprox b LEFT JOIN building_max_flat USING(id,type);  ALTER TABLE flats_per_building ADD PRIMARY KEY(id,type);<\/code><\/pre>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e <a class=\"mention\" href=\"\/users\/roman_deev\">@roman_deev<\/a> \u0437\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 OSM!<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u043e\u0433\u043e \u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0433\u0434\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 flats \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0440\u0435\u0434\u043d\u0438\u043c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">create table flats_per_building as  WITH flats_precalc as (select g.id,g.type,    (case when g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' then g.tags->'building:levels' else NULL end)::real levels,   (case when g.tags->'building:flats' ~ '^[0-9]+$' then g.tags->'building:flats' else NULL end)::smallint flats,   (CASE WHEN g.type='ways' and ST_IsClosed(g.geom) THEN st_area(ST_MakePolygon(g.geom)::geography) WHEN g.type='multipolygon' THEN st_area(g.geom::geography) ELSE 0 END) area  from geometry_global_view g   where  type&lt;>'nodes' and (case when g.tags->'building:levels' ~ '^\\d+(\\.\\d+)?$' then g.tags->'building:levels' else NULL end)::real>2)--and **\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0442\u043e \u0437\u0434\u0430\u043d\u0438\u0435 \u0436\u0438\u043b\u043e\u0435 - \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0430 OSM \u0442\u0435\u0433\u043e\u0432**;    select id,type,        coalesce(flats, (levels*area*                         (select avg((flats\/levels)\/area)                           from flats_precalc                           where area>0 and flats>0))::smallint) flats     from flats_precalc ;   alter table flats_per_building add primary key(id,type);<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0438 \u0442\u043e\u0447\u043d\u0435\u0435 &#8212; \u044d\u0442\u043e  \u043e\u0431\u043e\u0439\u0442\u0438 \u0434\u043e\u043c\u0430 \u0433\u0434\u0435 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u043f\u043e \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u043c \u044f\u0449\u0438\u043a\u0430\u043c( \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0430\u043c \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0434\u044a\u0435\u0437\u0434\u0430) \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0434\u043e\u043c\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043e\u0433\u0434\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0413\u0418\u0421 \u0416\u041a\u0425, \u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u043e\u043a \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043d\u0435\u0442. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0417\u0435\u043b\u0435\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 &#8212; building:flats &#8212; \u0443\u043a\u0430\u0437\u0430\u043d \u0432 OSM, \u0441\u0435\u0440\u044b\u0435 &#8212; \u0430\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0438 \u043d\u0435 \u0437\u0430 \u041c\u041a\u0410\u0414 (\u0445\u043e\u0442\u044f \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0435 \u043e\u0442 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u0440\u0430\u0434\u0438\u0443\u0441\u0435 1\u043a\u043c \u043e\u0442 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430, \u0442\u043e \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0441\u043b\u0443 \u043b\u044e\u0434\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u0442 \u043c\u0430\u0433\u0430\u0437\u0438\u043d. <\/p>\n<pre><code class=\"sql\">osmworld=# \\d flats_per_building   Column |      Type       |   --------+-----------------|  id     | bigint          |   type   | table_reference |   flats  | smallint        | Indexes:     \"flats_per_building_pkey\" PRIMARY KEY, btree (id, type)  osmworld=# \\d distance      Column     |      Type       |   ---------------+-----------------|  building_id   | bigint          |   building_type | table_reference |   poi_id        | bigint          |   poi_type      | table_reference |   distance      | smallint        |   osmworld=# select count(*) from distance;   count    ----------  60816611 (1 row) Time: 1722,807 ms (00:01,723)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; \u0441\u043b\u043e\u0436\u0438\u0432 \u0447\u0438\u0441\u043b\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 1000\u043c \u043e\u0442 \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 (POI) &#8212; \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432:<\/p>\n<pre><code class=\"sql\">create table flats_per_poi as    select poi_id, poi_type, sum(flats) total_flats    from distance inner join flats_per_building      on<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-362249","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362249","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=362249"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362249\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=362249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=362249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=362249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}