{"id":283747,"date":"2017-03-22T16:15:03","date_gmt":"2017-03-22T13:15:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=283747"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=283747","title":{"rendered":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 \u2014 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0435"},"content":{"rendered":"<h1>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  \u041d\u0430\u0447\u043d\u0443 \u0441 \u043a\u043e\u043d\u0446\u0430. \u042d\u0442\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441 \u043d\u0435\u043a\u043e\u0439 web-\u043a\u0430\u0440\u0442\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0421\u0430\u0440\u0430\u0442\u043e\u0432\u0430 \u0438 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e28\/b31\/420\/e28b314201954a63a3ebb18c5e29ce2f.png\"\/><\/p>\n<p>  \u0426\u0432\u0435\u0442\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u0441 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb, \u0446\u0432\u0435\u0442 \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u0449\u0435\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0432 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0440\u0443\u0431\u043b\u0435\u0439.<\/p>\n<p>  \u0422\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0435 (\u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435) \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b \u0441 \u0410\u0432\u0438\u0442\u043e. \u0412\u0441\u0435\u0433\u043e \u0442\u0430\u043a\u0438\u0445 \u0442\u043e\u0447\u0435\u043a, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb, \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c 4943.<br \/>  \u041a\u0430\u0440\u0442\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 <a href=\"https:\/\/dmitriik.github.io\/RealtyEstimation\/\">GitHub<\/a>.<\/p>\n<h1>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438..<\/h1>\n<p>  \u0414\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e\u2026<br \/>  <a name=\"habracut\"><\/a><br \/>  \u2026 \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0447\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u043c \u043c\u0435\u0445\u043c\u0430\u0442\u0430 \u044f \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0446\u0435\u043d\u0430\u043c \u043d\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c, \u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0448\u0435\u043b \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u2014 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0440\u0430\u0439\u043e\u043d\u043e\u0432 \u043f\u043e \u0446\u0435\u043d\u0430\u043c \u043d\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c, \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u201c\u0426\u0435\u043d\u043e\u0432\u044b\u0435 \u0437\u043e\u043d\u044b \u0421\u0430\u0440\u0430\u0442\u043e\u0432\u0430\u201d. \u041d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0442\u043e \u0435\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b, \u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e, \u2014 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e (\u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b), \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0440\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0438\u0437 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0446\u0435\u043d\u043e\u0432\u044b\u0445 \u0437\u043e\u043d \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10%. \u0421 \u0442\u0435\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 \u043e\u0446\u0435\u043d\u0449\u0438\u043a\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 (\u043d\u0430 \u0431\u044b\u0442\u043e\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435), \u043a\u0430\u043a \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0445 \u043b\u044e\u0434\u0435\u0439, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043d\u0435 \u0440\u0430\u0437.<\/p>\n<p>  \u0418\u0434\u0435\u044f \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u043a \u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0431\u043e\u043b\u0435\u0435 \u201c\u043d\u0430\u0443\u0447\u043d\u043e\u201d \u043f\u0440\u0438\u0448\u043b\u0430 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043a\u043e\u0433\u0434\u0430 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e Jeff Kaufman <a href=\"https:\/\/www.jefftk.com\/p\/updated-boston-apartment-price-maps\">Boston Apartment Price Maps<\/a>.<\/p>\n<p>  \u0422\u043e\u0432\u0430\u0440\u0438\u0449 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>Python \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0430\u0440\u0441\u0438\u0442 \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.padmapper.com\">PadMapper<\/a> \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0430\u0440\u0435\u043d\u0434\u044b \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438.<\/li>\n<li>\u0435\u0449\u0435 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434\u044b Spatial interpolation, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/li>\n<li>\u041d\u0430\u043b\u043e\u0436\u0438\u043b \u044d\u0442\u043e\u0442 \u0440\u0438\u0441\u0443\u043d\u043e\u043a <a href=\"https:\/\/www.jefftk.com\/apartment_prices\/\">\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0443 \u0441 Google Maps<\/a> <\/li>\n<\/ul>\n<p>(\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 <a href=\"https:\/\/github.com\/jeffkaufman\/apartment_prices\">\u0437\u0434\u0435\u0441\u044c<\/a>)<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443 \u043d\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0430\u0440\u0435\u043d\u0434\u044b \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 <a href=\"https:\/\/www.youtube.com\/watch?v=x-64CaD8GXw\">\u0411\u043e\u0441\u0442\u043e\u043d<\/a>-\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e0e\/8d5\/f31\/e0e8d5f31cfa423ab47c1477ef57b562.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u201c\u0412\u0430\u0443, \u043f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u043e\u201d, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043c\u044b\u0441\u043b\u044c \u2014 \u201c\u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435, \u043d\u043e \u0434\u043b\u044f \u0420\u043e\u0441\u0441\u0438\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0430\u0440\u0435\u043d\u0434\u044b, \u0430 \u043f\u043e \u0446\u0435\u043d\u0430\u043c \u043d\u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438\u201d.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u044f, \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0440\u043e\u0434\u0443 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0441\u043a\u043e\u0440\u0435\u0435 database developer, \u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u043c \u043d\u0438 \u043f\u043e GIS \u0434\u0430\u043d\u043d\u044b\u043c, \u043d\u0438 \u043f\u043e front-end \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043d\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435, \u043d\u0438 \u043f\u043e Python, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442\u043d\u0435\u0441\u0438\u0442\u0435\u0441\u044c \u0441\u043d\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u2026 \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u044e \u043a \u0447\u0435\u043c\u0443, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438 \u0432\u044b \u043c\u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0438\u0448\u0435\u0442\u0435 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0418 \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u0430\u044f \u043a\u0440\u0443\u043f\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/p>\n<h1>Web Scraping \u0441 \u0410\u0432\u0438\u0442\u043e. <\/h1>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0441 Python-\u043e\u043c \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0431\u044b\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0430 \u201c\u0432\u044b\u201d, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f HTML \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0410\u0432\u0438\u0442\u043e, \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430 C#, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 <a href=\"https:\/\/anglesharp.github.io\/\">AngleSharp<\/a>.<\/p>\n<p>  \u041d\u0435 \u0431\u0443\u0434\u0443 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0437\u0430\u043c\u0435\u0447\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e:<\/p>\n<ul>\n<li> \u0432\u0441\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0410\u0432\u0438\u0442\u043e \u044f \u0432\u044b\u043d\u0435\u0441 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u0447\u0442\u043e\u0431\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u0410\u0432\u0438\u0442\u043e, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435.<\/li>\n<li>\u0434\u0430\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0431\u0430\u043d\u0430 \u043e\u0442 \u0410\u0432\u0438\u0442\u043e, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f. (\u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d, \u2014 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0443\u043c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0443\u043b \u043f\u0440\u043e\u043a\u0441\u0438 -\u0430\u0439\u043f\u0438\u0448\u043d\u0438\u043a\u043e\u0432 \u043d\u0430\u0432\u0441\u043a\u0438\u0434\u043a\u0443 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c).<\/li>\n<\/ul>\n<p>  \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043f\u0430\u0440\u0441\u0438\u043b\u043a\u0443 \u043d\u0430 \u043d\u043e\u0447\u044c, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 \u0432 \u0431\u0430\u0437\u0435<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5e3\/e04\/80a\/5e3e0480ad4140e0a9b5c40d1763eefb.png\"\/><\/p>\n<p>  \u041e\u0447\u0438\u0441\u0442\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u201c\u0421\u0442\u0430\u0440\u043e\u0433\u043e \u0444\u043e\u043d\u0434\u0430\u201d, \u201c\u042d\u043b\u0438\u0442\u043d\u044b\u0445\u201d, \u0438 \u0432\u0441\u044f\u043a\u0438\u0445 \u044f\u0432\u043d\u043e \u043d\u0435\u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0442\u043e\u0447\u0435\u043a \u2014 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0421\u0430\u0440\u0430\u0442\u043e\u0432\u0430 \u0438 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0430. \u0418 \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0448\u0430\u0433\u0443:<\/p>\n<h1>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 GIS \u0434\u0430\u043d\u043d\u044b\u0445.<\/h1>\n<p>  \u041e\u0431\u0449\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<p>   \u2014 \u0435\u0441\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0435\u043a\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438(\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u044b\u0441\u043e\u0442\u0430, \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0438\u044f \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u0442.\u043f), \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 (X, Y \u0438\u043b\u0438 \u0448\u0438\u0440\u043e\u0442\u0430, \u0434\u043e\u043b\u0433\u043e\u0442\u0430), <br \/>   \u2014 \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u044d\u0442\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438,<br \/>   \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u0430. <\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440, \u2014 \u0441\u043d\u044f\u043b\u0438 \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/docs.qgis.org\/2.2\/en\/_images\/temperature_map.png\"\/><\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043c\u0443 \u201c<a href=\"http:\/\/www.bisolutions.us\/A-Brief-Introduction-to-Spatial-Interpolation.php\">Spatial interpolation<\/a>\u201d. \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>   \u2014 <a href=\"http:\/\/http\/\/gisgeography.com\/inverse-distance-weighting-idw-interpolation\/\">Inverse Distance Weighting (IDW) Interpolation <\/a><br \/>   \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kriging\">Kriging<\/a><br \/>  \u0418 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 GIS \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<br \/>   \u2014 <a href=\"http:\/\/www.qgistutorials.com\/ru\/docs\/interpolating_point_data.html\">\u0418\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 qGIS<\/a><br \/>   \u2014 <a href=\"http:\/\/npk-kaluga.ru\/GeoStatAnalyze_AGIS.htm\"> GeoStatistical Analyst ArcGIS <\/a> \u2014  \u2014 <a href=\"http:\/\/www.dmcsee.org\/uploads\/file\/337_4_saga_kriging_manual.pdf\"> Use of SAGA GIS for spatial interpolation(kriging) <\/a><br \/>   \u2014 <a href=\"https:\/\/rpubs.com\/nabilabd\/118172\">Kriging in R<\/a>.<\/p>\n<p>  IDW \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 qGIS (\u0441\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0438\u0437 \u0441\u0441\u044b\u043b\u043e\u043a) \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b, \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0435\u043d\u044f \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u043b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5af\/8dd\/0c1\/5af8dd0c12f342e7849ba30b747497a1.png\"\/><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u0432\u044f\u0437\u043d\u0443\u0442\u044c \u043d\u0430\u0434\u043e\u043b\u0433\u043e \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f, \u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0435\u043b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"http:\/\/https\/\/github.com\/jeffkaufman\/apartment_prices\">\u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0420ython \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043e\u0442 Jeff Kraufman <\/a>. \u0414\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0438 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 GPS \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 X,Y \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u0440\u0430\u0441\u0442\u0440\u0435 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430, \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Web_Mercator\">\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0432 Google MapsWeb Mercator \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438<\/a>.<\/p>\n<p>  \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u044f\u043b, \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f \u043d\u0430 \u0442\u0435\u043c\u0443 Inverse Distance Weighting (IDW), \u0433\u043b\u0430\u0432\u043d\u0430\u044f (\u0438 \u0441\u0430\u043c\u0430\u044f \u0442\u044f\u0436\u0435\u043b\u043e\u0432\u0435\u0441\u043d\u0430\u044f \u043f\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438) \u0432 \u044d\u0442\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0432 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Python \u043a\u043e\u0434 spatial interpolation<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">gaussian_variance = IGNORE_DIST\/2     gaussian_a = 1 \/ (gaussian_variance * math.sqrt(2 * math.pi))     gaussian_negative_inverse_twice_variance_squared = -1 \/ (2 * gaussian_variance * gaussian_variance)      def gaussian(prices, lat, lon, ignore=None):     num = 0     dnm = 0     c = 0      for price, plat, plon, _ in prices:     if ignore:     ilat, ilon = ignore     if distance_squared(plat, plon, ilat, ilon) &lt; 0.0001:     continue      weight = gaussian_a * math.exp(distance_squared(lat,lon,plat,plon) *     gaussian_negative_inverse_twice_variance_squared)      num += price * weight     dnm += weight      if weight &gt; 2:     c += 1      # don't display any averages that don't take into account at least five data points with significant weight     if c &lt; 5:     return None      return num\/dnm     def distance_squared(x1,y1,x2,y2):     return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0434\u043e\u0433\u043d\u0430\u043b \u0441\u0432\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u0443\u0431\u0440\u0430\u043b \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0442\u0443 \u0447\u0430\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e bedroom_category (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043d\u0430\u0442), \u043f\u043e\u0438\u0433\u0440\u0430\u043b\u0441\u044f \u0441 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0440\u0430\u0441\u0447\u0435\u0442. \u041d\u0430 \u043c\u043e\u0435\u043c \u043a\u043e\u043c\u043f\u0435 (Intel&reg; Core(TM) i7-6700 CPU, 16GB RAM), \u0440\u0430\u0441\u0447\u0435\u0442 \u0441 5 \u0442\u044b\u0441 \u0442\u043e\u0447\u0435\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 1000*1000 \u0437\u0430\u043d\u044f\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u043b\u0447\u0430\u0441\u0430.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 Front-End -\u043e\u043c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c <a href=\"http:\/\/HTML source \u043a\u0430\u0440\u0442\u044b \u0411\u043e\u0441\u0442\u043e\u043d\u0430\">HTML source \u043a\u0430\u0440\u0442\u044b \u0411\u043e\u0441\u0442\u043e\u043d\u0430 <\/a>\u043e\u0442 Jeff Kraufman. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u043e\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u00ab\u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043c\u0430\u0441\u043b\u043e\u043c\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/389\/d5c\/5e9\/389d5c5e95114cb4b9619bfe751c27d7.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u044f\u0432\u043d\u044b\u0435 \u201c\u043a\u043e\u0441\u044f\u043a\u0438\u201d \u0432 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Georeferencing\">Georeferencing<\/a> \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0442\u043e\u0442 \u0436\u0435 \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a \u0432 qGIS, \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0413\u0443\u0433\u043b\u043e\u041a\u0430\u0440\u0442\u044b, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/052\/1b7\/720\/0521b77200284b238dffc5fd03a899e3.png\"\/><\/p>\n<p>  \u0423\u0431\u0435\u0434\u0438\u0432\u0448\u0438\u0441\u044c, \u0447\u0442\u043e \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0430 \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u043d\u0435\u0439 \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0442 \u0446\u0435\u043d\u044b \u043d\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b \u0432 \u043d\u0430\u0448\u0435\u0439 \u0434\u0435\u0440\u0435\u0432\u043d\u0435, \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0434\u043e\u0445\u043d\u0443\u0442\u044c \u2014 \u201cYes! \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!\u201d.<\/p>\n<p>  \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0433\u043e\u0440\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0443 \u043d\u0430\u0441 \u0437\u0430\u043b\u0435\u0437\u043b\u0430 \u0432 \u0412\u043e\u043b\u0433\u0443. \u0427\u0442\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u2014 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e \u0412\u043e\u043b\u0433\u0443 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442.<\/p>\n<p>  \u0421\u0442\u0430\u043b\u043e \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0430:<\/p>\n<h1>\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u043f\u043e \u0431\u0435\u0440\u0435\u0433\u043e\u0432\u043e\u0439 \u043b\u0438\u043d\u0438\u0438<\/h1>\n<p>  \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u0430\u0439\u0442\u0438 \u0433\u0435\u043e-\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0433\u043e\u0440\u043e\u0434\u043e\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0431\u0435\u0440\u0435\u0433\u043e\u0432\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u043d\u0435 \u0443\u0432\u0435\u043d\u0447\u0430\u043b\u0430\u0441\u044c \u0443\u0441\u043f\u0435\u0445\u043e\u043c. \u0415\u0441\u0442\u044c \u0421\u0430\u0440\u0430\u0442\u043e\u0432, \u0435\u0441\u0442\u044c \u042d\u043d\u0433\u0435\u043b\u044c\u0441, \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u0412\u043e\u043b\u0433\u0438. \u041b\u0430\u0434\u043d\u043e, \u043c\u044b \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c.<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Shapefile\">shape <\/a>file c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0431\u0435\u0440\u0435\u0433\u043e\u0432\u044b\u043c \u043b\u0438\u043d\u0438\u044f\u043c, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 qGIS, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0412\u043e\u043b\u0433\u0435 \u0443 \u0421\u0430\u0440\u0430\u0442\u043e\u0432\u0430, \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0411\u0414.<\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/cc280766.aspx\">\u043c\u0430\u0433\u0438\u0438<\/a> \u0442\u0438\u043f\u0430:<\/p>\n<pre><code class=\"sql\"> DECLARE @Volga geography;         select @Volga= PlacePolygon.MakeValid() from PlacesPolygons where PlacesPolygonID =1003         DECLARE @Saratov geography;         select @Saratov= PlacePolygon.MakeValid() from PlacesPolygons where PlacesPolygonID =2         select @Saratov.STDifference(@Volga)<\/code><\/pre>\n<p>   \u0418 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u2014 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0433\u043e\u0440\u043e\u0434\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0431\u0435\u0440\u0435\u0433\u043e\u0432\u043e\u0439 \u043b\u0438\u043d\u0438\u0438.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e \u0432 qGIS, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0436\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043a\u0430\u043a \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439, \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 Georeferencing \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0438 \u043e\u0431\u0440\u0435\u0437\u0430\u0442\u044c \u0435\u0435 \u043f\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0443 \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0433\u043e\u0440\u043e\u0434\u043e\u0432, \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 qGIS. \u0412\u0441\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u0435\u0441\u043b\u0438 \u0431\u044b\u2026 \u043c\u043d\u0435 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u043e \u0443\u0432\u044b\u2026 \u0441 <a href=\"http:\/\/www.qgistutorials.com\/en\/docs\/advanced_georeferencing.html\">Georeferencing \u0432 qGIS<\/a> \u0443 \u043c\u0435\u043d\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c, \u0438 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f spatial \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 Microsoft.SqlServer.Types, \u043f\u0440\u043e\u0449\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434 \u0432 \u0432\u0438\u0434\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043d\u0430 \u0448\u0430\u0440\u043f\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">C# \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u0440\u0435\u0437\u043a\u0438 \u0440\u0438\u0441\u0443\u043d\u043a\u0430 \u043f\u043e GEO \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0443<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">string GPSPolygonVolga = &quot;    POLYGON ((46.2324447632 51\u2026. ))&quot;;     private void CropByGPS()     {     Bitmap bmp = new Bitmap(inputFilePath);     int w = bmp.Width;     int h = bmp.Height;     var GpsSizeOfPyxelX = (MAX_LON - MIN_LON) \/ w;     var GpsSizeOfPyxelY = (MAX_LAT - MIN_LAT) \/ h;     var VolgaPolygon = SqlGeography.STPolyFromText(new System.Data.SqlTypes.SqlChars(GPSPolygonVolga), SRID);     for (int y = 0; y &lt; h; y++)     {     for (int x = 0; x &lt; w; x++)     {     Color c = bmp.GetPixel(x, y);     var GPS = SqlGeography.Point(MAX_LAT - GpsSizeOfPyxelY * y, MIN_LON + GpsSizeOfPyxelX * x, SRID);    if (VolgaPolygon.STContains(GPS)) \/\/\u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u0442\u043e\u0447\u043a\u0430 \u0432 &quot;\u0432\u043e\u0434\u044f\u043d\u043e\u0439&quot; \u043f\u043e\u043b\u0438\u0433\u043e\u043d     bmp.SetPixel(x, y, Color.Transparent);     }     }     bmp.Save(outputFilePath, System.Drawing.Imaging.ImageFormat.Png);     }<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0442\u0440\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0442\u043e\u0442 \u0436\u0435 \u0444\u0430\u0439\u043b, \u043d\u043e \u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u201c\u043e\u0431\u043a\u0443\u0441\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435\u201d. \u041d\u0430\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0430 Google Maps \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u2014 \u043d\u0430 \u0412\u043e\u043b\u0433\u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u0435\u0442, \u043e\u0442\u043b\u0438\u0447\u043d\u043e! \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0443\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0438 \u0432\u0438\u0434\u0438\u043c\u2026 \u0447\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043a\u043e\u0435-\u0433\u0434\u0435 \u043e\u0442\u043a\u0443\u0441\u0438\u043b\u0438 \u043b\u0438\u0448\u043d\u0435\u0435. \u041a\u043e\u0441\u044f\u043a \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043a\u043e\u0441\u044f\u043a \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435? \u0421\u043d\u043e\u0432\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0438 \u0432 qGIS.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/519\/628\/700\/51962870076b47b2ad8693ee68707dd0.png\"\/><\/p>\n<p>  \u0414\u0430\u2026 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u043e\u0435-\u0433\u0434\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u0440\u043e\u0439\u2026 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u0438\u0437 \u0441\u043b\u043e\u044f \u0432\u043e\u0434\u043e\u0435\u043c\u0430 \u044f\u0432\u043d\u043e \u0437\u0430\u043b\u0435\u0437\u0430\u0435\u0442 \u0432 \u0433\u043e\u0440\u043e\u0434. \u041f\u0440\u044f\u043c \u043d\u0435 \u042d\u043d\u0433\u0435\u043b\u044c\u0441, \u0430 \u0412\u0435\u043d\u0435\u0446\u0438\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e\u2026 \u041b\u0430\u0434\u043d\u043e, \u043d\u0435\u0442 \u0441\u0442\u0440\u0435\u043c\u043b\u0435\u043d\u0438\u044f \u043a \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0443, \u043c\u044b \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c.<\/p>\n<p>  \u0420\u0430\u0437 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u043b\u0438 \u0438\u0437 \u0434\u043e\u0432\u0435\u0440\u0438\u044f, \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u044b\u043c\u0438. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u0434\u0432\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0435 \u0442\u043e\u0447\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u201c\u0433\u043e\u043b\u0443\u0431\u043e\u043c\u0443\u201d \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439.<\/p>\n<p>  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u043d\u0430\u043c \u043c\u043e\u0433\u0443\u0442 \u0434\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/https\/\/developers.google.com\/maps\/documentation\/static-maps\/?hl=ru\">Google Maps static API<\/a>.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c API_KEY, \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c, \u0447\u0442\u043e:<\/p>\n<p>   \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f =640*640<br \/>   \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Bounding_Box\">BoundingBox <\/a>-, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ff701724.aspx\"> BING static maps API<\/a> \u0433\u0443\u0433\u043b \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c \u0434\u0432\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0430 \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u041b\u0430\u0434\u043d\u043e, \u043f\u0440\u043e\u0431\u0443\u0435\u043c. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442 Google Statics Map API \u043d\u0435\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439, \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0443\u044e \u043d\u0430\u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u043f\u0438\u0448\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">C# cropping \u043f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\"> private static void CropByMapImage()     {     Bitmap bmp = new Bitmap(inputFilePath);     Bitmap bmpMap = new Bitmap(mapToCompareFilePath);     int w = bmp.Width;     int h = bmp.Height;     var GpsSizeOfPyxelX = (MAX_LON - MIN_LON) \/ w;     var GpsSizeOfPyxelY = (MAX_LAT - MIN_LAT) \/ h;     int wm = bmpMap.Width;     int hm = bmpMap.Height;     var cntAll = w * h;     var cntRiver = 0;     for (int y = 0; y &lt; h; y++)     {     for (int x = 0; x &lt; w; x++)     {     var currentLatitude = MAX_LAT - GpsSizeOfPyxelY * y;     var currentLongitude = MIN_LON + GpsSizeOfPyxelX * x;     if (currentLongitude &lt; MIN_LON_M || currentLongitude &gt; MAX_LON_M || currentLatitude &lt; MIN_LAT_M || currentLatitude &gt; MAX_LAT_M) continue; \/\/todo - something with this ugly code      var CorrespondentX = (int)((currentLongitude - MIN_LON_M) \/ (MAX_LON_M - MIN_LON_M) * wm);     var CorrespondentY = (int)((MAX_LAT_M-currentLatitude) \/ (MAX_LAT_M - MIN_LAT_M) * hm);     Color cp = bmp.GetPixel(x, y); \/\/color of current pixel     Color mp = bmpMap.GetPixel(CorrespondentX, CorrespondentY); \/\/color of correspondent Map pixel     if  (Math.Max(Math.Max( Math.Abs(mp.R - WaterMapColor.R) , Math.Abs(mp.G - WaterMapColor.G)) , Math.Abs(mp.B -WaterMapColor.B))&lt; colorDiff \/* && cp.A != Color.Transparent.A *\/)\/\/ blue water is not always the same blue     {     bmp.SetPixel(x, y, Color.Transparent);     cntRiver++;     }     }     }     bmp.Save(outputFilePath, System.Drawing.Imaging.ImageFormat.Png);     }<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0448 \u0444\u0430\u0439\u043b\u0438\u043a \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c 1000*1000 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0439\u043b\u0438\u043a\u0430 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c 640*640, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u2026 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u0437\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0442\u0435 \u0442\u043e\u0447\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c Transparent, \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0436\u0435\u043b\u0442\u044b\u043c\u0438):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d3f\/839\/24c\/d3f83924c6b744118a6f404ec62e6020.jpg\"\/><\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u044b\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0435\u0449\u0435 \u0438 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0413\u0443\u0433\u043b\u043e\u043a\u0430\u0440\u0442\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0437\u0430\u043f\u0430\u0441\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0448 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0441\u0442\u0440. \u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u201c\u043e\u0431\u0440\u0435\u0437\u043a\u0438\u201d \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442 \u0441 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u0438\u043b\u0438\u2026 \u043a\u0430\u043a \u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u043a\u0438 \u043d\u0430\u0439\u0442\u0438 \u043e\u0434\u043d\u0443, \u043d\u043e \u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  \u042f \u2014 \u043f\u043e\u0448\u0435\u043b \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u0442\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430-\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0438\u043b \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u044e \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0433\u0443\u0433\u043b\u043e\u043a\u0430\u0440\u0442\u044b \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. GPS \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0443\u0433\u043b\u043e\u0432 (mapping bound), \u044f \u0443\u0437\u043d\u0430\u043b, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 JavaScript code \u0442\u0430\u043a\u043e\u0435:<\/p>\n<pre><code class=\"javascript\">google.maps.event.addListener(map, 'bounds_changed', function () {         console.log(map.getBounds());<\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0448 \u0440\u0430\u0441\u0442\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0438\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u2026 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0435\u043d\u044f \u2014 \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e(\u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 GPS \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u201c\u0437\u0430\u0447\u0438\u0441\u0442\u0438\u043b\u0441\u044f\u201d \u0434\u0430\u0436\u0435 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u0443\u0434 \u0432 \u043c\u0435\u0441\u0442\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u043e\u043c \u043f\u0430\u0440\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8e4\/217\/f14\/8e4217f1485f49b8ae992bc66f07c704.png\"\/><\/p>\n<p>  \u0412\u0441\u0435, \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u043f \u043a\u0432\u0435\u0441\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u043c, \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0430 GitHub \u0432 \u043f\u0430\u043f\u043e\u0447\u043a\u0443, \u0440\u0430\u0441\u0448\u0430\u0440\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430, \u0438 \u043c\u043e\u0436\u0435\u043c \u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0434 IT-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c.<\/p>\n<h1>\u0418 \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h1>\n<p>  \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u043d\u0430\u044e \u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430:<\/p>\n<ul>\n<li>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0437\u0434\u0435\u0441\u044c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 spatial interpolations<\/li>\n<li>\u041a\u0430\u043a\u0438\u0435 \u0435\u0449\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b, \u043a\u0440\u043e\u043c\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0438 \u043a\u0430\u043a \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0435 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u0430\u043a\u0443\u044e \u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043e\u0446\u0435\u043d\u043a\u0443 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438. (\u0415\u0441\u043b\u0438 \u043c\u0435\u043d\u044f \u0447\u0438\u0442\u0430\u044e\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0438 \u0410\u0432\u0438\u0442\u043e, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438)<\/li>\n<\/ul>\n<p>  \u041d\u0443 \u0438\u2026 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c \u0434\u043e\u0447\u0438\u0442\u0430\u0432\u0448\u0438\u043c \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430. \u041c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c, \u201crather challenging for me\u201d, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e \u043c\u043e\u0435\u043c \u043e\u043f\u044b\u0442\u0435.<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:\/\/habrahabr.ru\/post\/324596\/\"> https:\/\/habrahabr.ru\/post\/324596\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<h1>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  \u041d\u0430\u0447\u043d\u0443 \u0441 \u043a\u043e\u043d\u0446\u0430. \u042d\u0442\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441 \u043d\u0435\u043a\u043e\u0439 web-\u043a\u0430\u0440\u0442\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0421\u0430\u0440\u0430\u0442\u043e\u0432\u0430 \u0438 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e28\/b31\/420\/e28b314201954a63a3ebb18c5e29ce2f.png\"\/><\/p>\n<p>  \u0426\u0432\u0435\u0442\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u0441 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb, \u0446\u0432\u0435\u0442 \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u0449\u0435\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0432 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0440\u0443\u0431\u043b\u0435\u0439.<\/p>\n<p>  \u0422\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0435 (\u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435) \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b \u0441 \u0410\u0432\u0438\u0442\u043e. \u0412\u0441\u0435\u0433\u043e \u0442\u0430\u043a\u0438\u0445 \u0442\u043e\u0447\u0435\u043a, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u00ab\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u00bb, \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c 4943.<br \/>  \u041a\u0430\u0440\u0442\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 <a href=\"https:\/\/dmitriik.github.io\/RealtyEstimation\/\">GitHub<\/a>.<\/p>\n<h1>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438..<\/h1>\n<p>  \u0414\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e\u2026  <\/p>\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-283747","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/283747","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=283747"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/283747\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=283747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=283747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=283747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}