2 рдЬреАрдЖрдИрдПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЬрд┐рдпреЛрдбреЗрдЯрд╛ рдХрд╛ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд╢рди

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

рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреВ-рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Google рдбреЙрдХреНрд╕ рдФрд░ 2 рдЬреАрдЖрдИрдПрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрд╡рд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдерд╛, рдкреНрд░рд╕рд┐рджреНрдз "30 рд▓рд╛рдЗрдиреЛрдВ" рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ :)

рдЪрд░рдг 1. рд╣рдо рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

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

рдпрд╣рд╛рдВ рдЗрд╕рдХреА рдПрдХ рд▓рд┐рдВрдХ рджреА рдЧрдИ рд╣реИ: docs.google.com/spreadsheet/ccc?key=0AvdXWIJtCGnndG0tODY5MzRsVFhnbkJseFk0aWJnUE&usp=sharing

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдХреЛрд╕реНрддреНрд░реЛрдорд╛ рд╢рд╣рд░ рдХреЗ рджреЛ рдЫреЛрдЯреЗ рдорддрджрд╛рди рдХреЗрдВрджреНрд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрд░реЛрдВ рдХреЗ рдкрддреЗ рд▓рд┐рдПред рднреВрдорд┐ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рдбрд╝рдХ, рдШрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ред

Google рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЧреНрд░реА рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд╕рд╣рдпреЛрдЧ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рддреЗрдЬреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИред

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

рдпрд╣ рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ : рдбреЙрдХреНрд╕ред

рдЪрд░рдг 2. рд╣рдо рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдЗрдП PHP рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ getMapData.php рдХрд╣реЗрдВ:
define('CSV_DATA_URL', 'https://docs.google.com/spreadsheet/pub?key=0AvdXWIJtCGnndG0tODY5MzRsVFhnbkJseFk0aWJkaUE&single=true&gid=0&output=csv'); define('DEFAULT_CITY', ''); $points = array(); $csvDataHandle = fopen(CSV_DATA_URL, 'r'); $i = 0; while ( false !== ($line = fgetcsv($csvDataHandle, null, ',', '"')) ) { //      if ( !$i++ ) continue; //    if ( !empty($line[0]) ) $zone = $line[0]; $points[] = array( 'zone' => $zone, 'address' => DEFAULT_CITY . ', ' . $line[1] . ', ' . $line[2], 'data' => $line[3], ); } 

рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ "рдЪреЗрддрд╛рд╡рдиреА: fopen (): рдЖрд╡рд░рдг" https "" рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдореЙрдбреНрдпреВрд▓ рдкреАрдПрдЪрдкреА рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред Php.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдЦреЛрдЬреЗрдВ
;extension=php_openssl.so рдФрд░ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╣рдЯрд╛рдХрд░ рдЗрд╕реЗ ;extension=php_openssl.so ред рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдмреЗрд╢рдХ, $ рдкреЙрдЗрдВрдЯреНрд╕ рдРрд░реЗ рдХреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреИрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдореИрдк рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдбреЙрдХреНрд╕ рдХреЛ "рдкреБрд▓" рди рдХрд░реЗрдВред

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рднреВ-рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрддреЗ рдХреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, 2GIS рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдЧрдд API рд╣реИ: api.2gis.ru/doc/geo/search

рдпрд╣рд╛рдБ рдЬрд┐рдпреЛрдХреЛрдбрд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреЛрдб рд╣реИ:
 define('DGIS_API_KEY', 'XXXXXX'); //   define('DGIS_API_URL', 'http://catalog.api.2gis.ru/geo/search?version=1.3&key=' . DGIS_API_KEY . '&q=%s'); function getGeoObjectInfo($address) { $url = sprintf(DGIS_API_URL, $address); $response = json_decode(file_get_contents($url)); if ( $response->response_code == 200 ) { //    $coords = $response->result[0]->centroid; //  ,       $coords = explode(',', preg_replace('/^POINT\(([\S]+)([\s]+)([\S]+)\)$/', '$1,$3', $coords)); } else $coords = array(); return $coords; } 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ "рдЬрд┐рдпреЛрдХреЛрдбрд░" рдХреЗ рд╕рд╛рде $ рдкреЙрдЗрдВрдЯ рд╕рд░рдгреА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ JSON рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ:
 foreach ( $points as &$address ) { $address['coords'] = getGeoObjectInfo($address['address']); sleep(1); } echo json_encode($points); 

рдЕрдЬреАрдм рд▓рд╛рдЗрди рдиреАрдВрдж рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ (1); рдХреЛрдб рдореЗрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ 2 рдЬреАрдЖрдИрдПрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдЖрд╡реГрддреНрддрд┐ рдПрдХ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЪрд░рдг 3. рд╣рдо рдирдХреНрд╢рд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдореИрдВ рдкреЗрдЬ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рджреВрдВрдЧрд╛ред рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ 2GIS рдХреЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ api.2gis.ru/doc/maps/info рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

 <!DOCTYPE html> <html> <head> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="http://maps.api.2gis.ru/1.0?loadByRequire=1"></script> <title>   </title> </head> <body> <div id="DGMap" style="width:100%; height:600px"></div> <script type="text/javascript"> $(DG.load(function() { //   var map = new DG.Map('DGMap'); map.setCenter(new DG.GeoPoint(40.95,57.76),12); map.controls.add(new DG.Controls.Zoom()); //   $.get('getMapData.php', function (data) { var objects = JSON.parse(data); for ( i in objects ) { var marker = new DG.Markers.MarkerWithBalloon({ geoPoint: new DG.GeoPoint(objects[i].coords[0], objects[i].coords[1]), balloonOptions: { headerContentHtml: '<b> тДЦ'+objects[i].zone+'</b>', contentHtml: ':'+objects[i].address+'<br /> :'+objects[i].data } }); map.markers.add(marker); } //      : var markersBounds = map.markers.getBounds(); //      : map.setBounds(markersBounds); }); })); </script> </body> </html> 


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

рдкреБрдирд╢реНрдЪ

рдореИрдВ рдкрд░рд┐рдгрд╛рдореА рдХрд╛рд░реНрдб рдХрд╛ рд▓рд┐рдВрдХ рдирд╣реАрдВ рджреЗрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдРрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдбрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рддрд╣рдд рдЭреВрда рдмреЛрд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣ рдЪрд┐рддреНрд░ рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛:


рдкреА рдкреА рдПрд╕

рдЕрд╕рд▓ рдореЗрдВ, рдХреБрдЫ рднреА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА "рдЪрд╛рд▓" рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреИрдВрдбреЗрдХреНрд╕ рд╕реЗред рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдФрд░ рднреА рд╕реБрдВрджрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ 2 рдЬреАрдЖрдИрдПрд╕ рдЬрд┐рдпреЛрдХреЛрдбрд░ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИред рдпреИрдВрдбреЗрдХреНрд╕ рд▓рдЧрднрдЧ 95% рдкрддреЗ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрдВ, 2GIS - рд▓рдЧрднрдЧ рд╕рднреА 100%ред

Source: https://habr.com/ru/post/In204228/


All Articles