рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ 10 рдорд┐рдирдЯ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 250 рд╣рдЬрд╛рд░ рдкрддреЗ рдХреИрд╕реЗ рдмрд╛рдБрдзреЗрдВ?



рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!

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

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

рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ:


рдкреГрд╖реНрдарднреВрдорд┐


рдпрд╣ рдХрд╛рд░реНрдп рдЖрдпрд╛ - "24 рд╣рдЬрд╛рд░ рдкрддреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпред" рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рд╕рдорд╛рдзрд╛рди рд╣реБрдП:

  1. рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
  2. рдЬрд┐рдпреЛрдХреЛрдб рдХреЗ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВред

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

рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрдХреЛрдб рдХреЗ REST рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗ (рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдиреВрдиреА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдПрдХ рдирдИ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ - рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ рдЬрдм рд╣рдо рдЖрд╡реЗрджрди рдореЗрдВ рдкрддреЗ рдХреА рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдХрд╛рд░реНрдп рдХреЛ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рджрд╕ рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрддреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд╛рдо рдореЗрдВ рдмрд╣реБрдд рджреЗрд░реА рд╣реЛрддреА рд╣реИред рдЖрдк рдПрдХ рдпрд╛ рджреЛ рдШрдВрдЯреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд▓рд╛рдЦ рдкрддреЗ рдкрд░ "рдЕрдкрд╛рд░ рд╕рдордп" рдЬрд┐рдпреЛрдХреЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣реИ!

рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрдбрд╝реЗ рдкреНрд░рджрд╛рддрд╛, рд╕рд╛рдорд╛рдиреНрдп рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреИрдХреЗрдЯ рдЬрд┐рдпреЛрдХреЛрдбрд░ (рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдбрд░) рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╕ рдПрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрддреЗ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ


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

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  1. рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рддрд╛рдХрд┐ рд╕реЗрд╡рд╛ рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓реЗ;
  2. рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдирд╛ (рдХреЙрд▓рдо, рд╡рд┐рднрд╛рдЬрдХ рдХрд╛ рдЪрдпрди ...);
  3. рдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ;
  4. рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░;
  5. рд╕рдорд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкрд╛рд╡рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, 1 рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 1 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред

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

рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдЪреБрдирдирд╛


рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдмрд╛рдЬрд╛рд░ рдореЗрдВ, рдкреНрд░рдореБрдЦ рдкрджреЛрдВ рдкрд░ рдХрд╛рдмрд┐рдЬ рд╣реИрдВ:

  • рдЧреВрдЧрд▓ рдорд╛рдирдЪрд┐рддреНрд░
  • рдпрд╣рд╛рдВ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ;
  • MapBox
  • рдЯреЙрдо рдЯреЙрдо
  • ESRIред

рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдпреИрдВрдбреЗрдХреНрд╕ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреА рд░реВрд╕ рдореЗрдВ рдХрд╛рдлреА рдордЬрдмреВрдд рд╕реНрдерд┐рддрд┐ рд╣реИред

рдореИрдВрдиреЗ рдкреНрд░рджрд╛рддрд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓рд┐рдпрд╛:

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

рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрдиреА рдХрд╛ рдЕрдкрдирд╛ рдореБрджреНрд░реАрдХрд░рдг рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдпрд╛ рдЕрдиреНрдп рдореЙрдбрд▓ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЧреВрдЧрд▓ рдорд╛рдирдЪрд┐рддреНрд░


Google рднреВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдореЗрдВ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдХреА рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рд▓рдиреА рд╣реЛрдЧреАред 200 рдЖрднрд╛рд╕реА рдбреЙрд▓рд░ рдХреА рдорд╛рд╕рд┐рдХ рд╕реАрдорд╛, рдлрд┐рд░ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдб рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдирджреЗрди рдХрд╛ рднреБрдЧрддрд╛рди рдЖрддрд╛ рд╣реИред рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдЬрд╛рд░ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ $ 5 рдЦрд░реНрдЪ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдорд╛рд░реНрдЧ рдирд┐рд░реНрдорд╛рдг рд╕реЗрд╡рд╛ рджреЛрдЧреБрдиреА рдорд╣рдВрдЧреА рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

рдпрджрд┐ $ 200 рдкреНрд░рддрд┐ рдорд╛рд╣ рд╣реИ, рддреЛ рд▓реЗрдирджреЗрди рдХреА рдореБрдлреНрдд рд╕рдВрдЦреНрдпрд╛ - 40,000 (рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛) рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдкреИрдХреЗрдЯ рдЬрд┐рдпреЛрдХреЛрдб рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреА рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 1 рдкрддрд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ 24 рд╣рдЬрд╛рд░ рдкрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрд╣ рдШрдВрдЯреЗ рдХрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Google рдХреНрд▓рд╛рдЙрдб рдПрдкреАрдЖрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкреНрд░рддрд┐ рджрд┐рди рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЪрд╛рд▓реАрд╕ рд╣рдЬрд╛рд░ рдПрдХ рд╕рдордп рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ


рдЕрддреАрдд рдореЗрдВ, рдиреЛрдХрд┐рдпрд╛ рдореИрдкреНрд╕, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЧрд╣рд░реЗ рдЕрддреАрдд рдореЗрдВ, рдирд╡рдЯреЗрдХреН, рдореБрдлреНрдд рдореЗрдВ рд╣рд░ рдорд╣реАрдиреЗ 250,000 рд▓реЗрдирджреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Google рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рдорд╛рди, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдлреНрдд рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдмреИрдВрдХ рдХрд╛рд░реНрдб рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕реАрдорд╛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдЬрд╛рд░ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ $ 1 рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

MapBox


MapBox рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддрд┐ рдорд╛рд╣ 100 рд╣рдЬрд╛рд░ рд▓реЗрдирджреЗрди рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдХрдВрдкрдиреА рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рде рдЙрд╕реА рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рдореЙрдбрд▓ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИред рдХреЗрд╡рд▓ "рдереЛрдХ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ" рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рд╣реИ - рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд▓реЗрди-рджреЗрди рд╣реЛрдЧрд╛, рдЙрдирдХреА рд▓рд╛рдЧрдд рдХрдо рд╣реЛрдЧреА (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреАрдордд рдореЗрдВ рдХрдореА рдХреА рд╕реАрдорд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 100 рд╣рдЬрд╛рд░ рд╕реЗ 500 рд╣рдЬрд╛рд░ рддрдХ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ $ 0.75 рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛, 500 рд╣рдЬрд╛рд░ рд╕реЗ 1 рдорд┐рд▓рд┐рдпрди рддрдХ - $ 0.60 рдЖрджрд┐, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдмрд╕рд╛рдЗрдЯ рджреЗрдЦреЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдЦрд╛рддреЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

TomTom


рдордВрдЪ рдкреНрд░рддрд┐ рджрд┐рди рд▓рдЧрднрдЧ 75,000 рдкреНрд░рддрд┐ рдорд╛рд╣ 2500 рд▓реЗрдирджреЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреИрдирд┐рдХ рд╕реАрдорд╛ рдмрд╣реБрдд рдЖрдХрд░реНрд╖рдХ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП 8 рднреБрдЧрддрд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдФрд░ рдХреАрдордд $ 0.5 рд╕реЗ рдШрдЯрд╛рдХрд░ $ 0.42 рд╣реИред

рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз 10 рд╣рдЬрд╛рд░ рдкрддреЗ рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреИрдирд┐рдХ рд╕реАрдорд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

Yandex Technologies


рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рджреИрдирд┐рдХ рд▓реЗрдирджреЗрди рд╕реАрдорд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдореЙрдбрд▓, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╡рдлрд╛рджрд╛рд░ 25 рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдзред рдпрджрд┐ рдЖрдк рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 750 рд╣рдЬрд╛рд░ рдХрд╛ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдЖрдВрдХрдбрд╝рд╛ рдорд┐рд▓рддрд╛ рд╣реИред рд╕рд╛рдЗрдЯ 120 рд░реВрдмрд▓ рд╕реЗ рд▓реЗрдХрд░ рд░реВрдмрд▓ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдЬрд╛рд░ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдХреАрдорддреЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИред 11 рд░реВрдмрд▓ рддрдХ

рдкреИрдХреЗрдЯ рдЬрд┐рдпреЛрдХреЛрдб рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

ESRI


рдкреНрд░рддрд┐ рдорд╛рд╣ 1 рдорд┐рд▓рд┐рдпрди рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ред рдХрдВрдкрдиреА рдкреНрд░рддреНрдпреЗрдХ рдЦрд╛рддреЗ рдореЗрдВ 50 рдХреНрд░реЗрдбрд┐рдЯ ($ 5 рдХреЗ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░) рдХрд╛ рд╢реБрд▓реНрдХ рд▓реЗрддреА рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╡рдлрд╛рджрд╛рд░ рдпреЛрдЬрдирд╛ рд╣реИред рдПрдХ рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрд░реНрдХрдЧрд┐рд╕ рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЦрд╛рддрд╛ рд╣реЛред

рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЫреЛрдЯреА рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдПрдВ:



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

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

рдкрд╛рдпрдерди рд╕рд░реНрд╡рд┐рд╕ рдЧрд╛рдЗрдб


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

рдЕрдм рдЖрдк рдордВрдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ HERE рдкреИрдХреЗрдЯ рдЬрд┐рдпреЛрдХреЛрдб рдореЗрдВ рд╣реИ: рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ, рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪ, рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрдирд╛ред

рддреЛ, рдЪрд▓реЛ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

import requests
import json
import time
import zipfile
import io
from bs4 import BeautifulSoup

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ:

class Batch:

    SERVICE_URL = "https://batch.geocoder.ls.hereapi.com/6.2/jobs"
    jobId = None

    def __init__(self, apikey="your_api_key"):
        self.apikey = apikey

рдпрд╣реА рд╣реИ, рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рд╡рд░реНрдЧ рдХреЛ REST API рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХреБрдВрдЬреА рдкрд╛рд╕ рдХрд░рдиреА рд╣реЛрдЧреАред
SERVICE_URL рдЪрд░ рдмреИрдЪ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ URL рд╣реИред
рдФрд░ jobId рдореЗрдВ рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдбрд╛рдЯрд╛рд╕реЗрдЯ рд╣реИ:

   recId; searchText
   1; -, . , 6
   2; ,  1,  -., 72
   3; 425 W Randolph St Chicago IL 60606
   4; , DJ106 20-30, Sibiu 557260
   5; 200 S Mathilda Ave Sunnyvale CA 94086
  

рдХреНрд▓рд╛рдЙрдб рдкрд░ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:

def start(self, filename, indelim=";", outdelim=";"):
        
        file = open(filename, 'rb')

        params = {
            "action": "run",
            "apiKey": self.apikey,
            "politicalview":"RUS",
            "gen": 9,
            "maxresults": "1",
            "header": "true",
            "indelim": indelim,
            "outdelim": outdelim,
            "outcols": "displayLatitude,displayLongitude,locationLabel,houseNumber,street,district,city,postalCode,county,state,country",
            "outputcombined": "true",
        }

        response = requests.post(self.SERVICE_URL, params=params, data=file)
        self.__stats (response)
        file.close()


рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, GET рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдПрдВред рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдордЭрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВ:

  • "рдХрд╛рд░реНрд░рд╡рд╛рдИ": "рд░рди" - рдкрддрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╢реБрд░реБрдЖрдд;
  • тАЬpoliticalViewтАЭ: тАЬRUSтАЭ тАУ . ( );
  • тАЬgenтАЭ: 9 тАУ ( );
  • тАЬmaxresultsтАЭ: 1 тАУ ;
  • тАЬheaderтАЭ: true тАУ ;
  • тАЬindelimтАЭ: тАЬ;тАЭ тАУ , ;
  • тАЬoutdelimтАЭ: тАЬ;тАЭ тАУ ;
  • тАЬoutcolsтАЭ: тАЬтАЭ тАУ , ;
  • тАЬoutcombinedтАЭ: true тАУ .

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

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

    def status (self, jobId = None):

        if jobId is not None:
            self.jobId = jobId
        
        statusUrl = self.SERVICE_URL + "/" + self.jobId
        
        params = {
            "action": "status",
            "apiKey": self.apikey,
        }
        
        response = requests.get(statusUrl, params=params)
        self.__stats (response)

рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рддреБрд░рдВрдд рдЕрдирдЬрд╝рд┐рдк рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдмрд╕ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ / рдкрд░рд┐рдгрд╛рдо рдХрд░реЗрдВред

    def result (self, jobId = None):

        if jobId is not None:
            self.jobId = jobId
        
        print("Requesting result data ...")
        
        resultUrl = self.SERVICE_URL + "/" + self.jobId + "/result"
        
        params = {
            "apiKey": self.apikey
        }
        
        response = requests.get(resultUrl, params=params, stream=True)
        
        if (response.ok):    
            zipResult = zipfile.ZipFile(io.BytesIO(response.content))
            zipResult.extractall()
            print("File saved successfully")
        
        else:
            print("Error")
            print(response.text)

рд╕реЗрд╡рд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдпред рд╕рд╛рде рд╣реА рдЙрд╕рдХрд╛ рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рдХрд╛рд░реНрдп рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдмрдЪрд╛рдирд╛ рд╣реИ:

    def __stats (self, response):
        if (response.ok):
            parsedXMLResponse = BeautifulSoup(response.text, "lxml")

            self.jobId = parsedXMLResponse.find('requestid').get_text()
            
            for stat in parsedXMLResponse.find('response').findChildren():
                if(len(stat.findChildren()) == 0):
                    print("{name}: {data}".format(name=stat.name, data=stat.get_text()))

        else:
            print(response.text)

рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдЪрд▓рд╛рдПрдВред рдмреИрдЪ рд╡рд░реНрдЧ рдЬрд┐рдпреЛрдХреЛрдбрд░рд╣реЛрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ :

>>> from geocoder import Batch
>>> service = Batch(apikey="   REST API")
>>> service.start("big_data_addresses.csv", indelim=";", outdelim=";")

requestid: "  Id "
status: accepted
totalcount: 0
validcount: 0
invalidcount: 0
processedcount: 0
pendingcount: 0
successcount: 0
errorcount: 0


рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рд╢реБрд░реВ рд╣реБрдЖред рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

>>> service.status()

requestid: "  Id "
status: completed
jobstarted: 2020-04-27T10:09:58.000Z
jobfinished: 2020-04-27T10:17:18.000Z
totalcount: 249999
validcount: 249999
invalidcount: 0
processedcount: 249999
pendingcount: 0
successcount: 249978
errorcount: 21

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рд╣реИред рдХреЗрд╡рд▓ рд╕рд╛рдд рдорд┐рдирдЯ рдореЗрдВ, 250 рд╣рдЬрд╛рд░ рдкрддреЛрдВ (рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ - рдПрд░рд░рдХреНрд╡рд╛рдЙрдВрдЯ) рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:

>>> service.result()
Requesting result data ...
File saved successfully

рдлреБрд▓ рдмреИрдЪ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╡рд░рдг


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреБрдЦ рдирд╣реАрдВ рд╣реИ:

import requests
import json
import time
import zipfile
import io
from bs4 import BeautifulSoup

class Batch:

    SERVICE_URL = "https://batch.geocoder.ls.hereapi.com/6.2/jobs"
    jobId = None

    def __init__(self, apikey="   REST API "):
        self.apikey = apikey
        
            
    def start(self, filename, indelim=";", outdelim=";"):
        
        file = open(filename, 'rb')

        params = {
            "action": "run",
            "apiKey": self.apikey,
            "politicalview":"RUS",
            "gen": 9,
            "maxresults": "1",
            "header": "true",
            "indelim": indelim,
            "outdelim": outdelim,
            "outcols": "displayLatitude,displayLongitude,locationLabel,houseNumber,street,district,city,postalCode,county,state,country",
            "outputcombined": "true",
        }

        response = requests.post(self.SERVICE_URL, params=params, data=file)
        self.__stats (response)
        file.close()
    

    def status (self, jobId = None):

        if jobId is not None:
            self.jobId = jobId
        
        statusUrl = self.SERVICE_URL + "/" + self.jobId
        
        params = {
            "action": "status",
            "apiKey": self.apikey,
        }
        
        response = requests.get(statusUrl, params=params)
        self.__stats (response)
        

    def result (self, jobId = None):

        if jobId is not None:
            self.jobId = jobId
        
        print("Requesting result data ...")
        
        resultUrl = self.SERVICE_URL + "/" + self.jobId + "/result"
        
        params = {
            "apiKey": self.apikey
        }
        
        response = requests.get(resultUrl, params=params, stream=True)
        
        if (response.ok):    
            zipResult = zipfile.ZipFile(io.BytesIO(response.content))
            zipResult.extractall()
            print("File saved successfully")
        
        else:
            print("Error")
            print(response.text)
    

    
    def __stats (self, response):
        if (response.ok):
            parsedXMLResponse = BeautifulSoup(response.text, "lxml")

            self.jobId = parsedXMLResponse.find('requestid').get_text()
            
            for stat in parsedXMLResponse.find('response').findChildren():
                if(len(stat.findChildren()) == 0):
                    print("{name}: {data}".format(name=stat.name, data=stat.get_text()))

        else:
            print(response.text)

рдкрд░рд┐рдгрд╛рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реВрдВ!

All Articles