I want to split this into two functions

You can separate it into two functions by using following code :

<?php

add_action('tmpl_detail_page_custom_fields_collection','custom_fields_colletion');

/*
Name : custom_fields_colletion
Desc : Return the custom fields collection for detail/single page
*/
function custom_fields_colletion()
{
global $wpdb,$post,$detail_post_type;
$detail_post_type = $post->post_type;
if(isset($_REQUEST['pid']) && $_REQUEST['pid'])
{
$cus_post_type = get_post_type($_REQUEST['pid']);
$PostTypeObject = get_post_type_object($cus_post_type);
$PostTypeLabelName = $PostTypeObject->labels->name;
$single_pos_id = $_REQUEST['pid'];
}
else
{   
$cus_post_type = get_post_type($post->ID);
$PostTypeObject = get_post_type_object($cus_post_type);
$PostTypeLabelName = $PostTypeObject->labels->name;
$single_pos_id = $post->ID;
}
$heading_type = fetch_heading_per_post_type($cus_post_type);
remove_all_actions('posts_where');
$post_query = null;
if(count($heading_type) > 0)
{ 
foreach($heading_type as $_heading_type)
 {
    $args =
    array( 'post_type' => 'custom_fields',
    'posts_per_page' => -1  ,
    'post_status' => array('publish'),
    'meta_query' => array(
       'relation' => 'AND',
        array(
            'key' => 'post_type_'.$cus_post_type.'',
            'value' => $cus_post_type,
            'compare' => '=',
            'type'=> 'text'
        ),
        array(
            'key' => 'show_on_page',
            'value' =>  array('user_side','both_side'),
            'compare' => 'IN'
        ),
        array(
            'key' => 'is_active',
            'value' =>  '1',
            'compare' => '='
        ),
        array(
            'key' => 'heading_type',
            'value' =>  $_heading_type,
            'compare' => '='
        ),
        array(
            'key' => 'show_on_detail',
            'value' =>  '1',
            'compare' => '='
        )
    ),
        'meta_key' => 'sort_order',
        'orderby' => 'meta_value_num',
        'meta_value_num'=>'sort_order',
        'order' => 'ASC'
    );
$post_query = new WP_Query($args);

$post_meta_info = $post_query;
$suc_post = get_post($single_pos_id);

        if($post_meta_info->have_posts())
          {
            echo "<div class="grid02 rc_rightcol clearfix">";
            echo "<ul class="list">";
              $i=0;
            while ($post_meta_info->have_posts()) : $post_meta_info->the_post();
                $field_type = get_post_meta($post->ID,"ctype",true);

                if($i==0)
                {
                    if($post->post_name!='post_excerpt' && $post->post_name!='post_content' && $post->post_name!='post_title' && $post->post_name!='post_images' && $post->post_name!='post_category')
                    {
                        if($_heading_type == "[#taxonomy_name#]"){
                            echo "<li><h2>";_e(ucfirst($PostTypeLabelName),DOMAIN);echo ' '; _e("Information",DOMAIN);echo "</h2></li>";
                        }else{
                            echo "<li><h2>".$_heading_type."</h2></li>";
                        }
                    }
                    $i++;
                }

                    if(get_post_meta($single_pos_id,$post->post_name,true))
                      {
                        if(get_post_meta($post->ID,"ctype",true) == 'multicheckbox')
                          {
                            $_value = "";
                            foreach(get_post_meta($single_pos_id,$post->post_name,true) as $value)
                             {
                                $_value .= $value.",";
                             }
                             echo "<li class="".$post->post_name.""><p>".$post->post_title." : </p> <p> ".substr($_value,0,-1)."</p></li>";
                          }else if($field_type =='radio' || $field_type =='select'){

                                $options = explode(',',get_post_meta($post->ID,"option_values",true));
                                $options_title = explode(',',get_post_meta($post->ID,"option_title",true));

                                for($i=0; $i<= count($options); $i++){
                                     $val = $options[$i];
                                    if(trim($val) == trim(get_post_meta($single_pos_id,$post->post_name,true))){
                                        $val_label = $options_title[$i];

                                    }
                                }

                                if($val_label ==''){ $val_label = get_post_meta($single_pos_id,$post->post_name,true); } // if title not set then display the value

                                echo "<li><p>".$post->post_title." : </p> <p> ".$val_label."</p></li>";


                          }
                        else
                         {
                             if(get_post_meta($post->ID,'ctype',true) == 'upload')
                             {
                                echo "<li class="".$post->post_name.""><p>".$post->post_title." : </p> <p> Click here to download File <a href="https://wordpress.stackexchange.com/questions/113140/.get_post_meta($single_pos_id,$post->post_name,true).">Download</a></p></li>";
                             }
                             else
                             {
                                 echo "<li class="".$post->post_name.""><p>".$post->post_title." : </p> <p> "https://wordpress.stackexchange.com/questions/113140/.get_post_meta($single_pos_id,$post->post_name,true)."</p></li>";
                             }
                         }
                      }
                    if($post->post_name == 'post_excerpt' && $suc_post->post_excerpt!='')
                     {
                        $suc_post_excerpt = $suc_post->post_excerpt;
                        ?>
                             <li>
                             <div class="row">
                                <div class="twelve columns">
                                     <div class="title_space">
                                         <div class="title-container">
                                             <h1><?php _e('Post Excerpt',DOMAIN);?></h1>
                                             <div class="clearfix"></div>
                                         </div>
                                         <?php echo $suc_post_excerpt;?>
                                     </div>
                                 </div>
                             </div>
                             </li>
                        <?php
                     }

                    if(get_post_meta($post->ID,"ctype",true) == 'geo_map')
                     {
                        $add_str = get_post_meta($single_pos_id,'address',true);
                        $geo_latitude = get_post_meta($single_pos_id,'geo_latitude',true);
                        $geo_longitude = get_post_meta($single_pos_id,'geo_longitude',true);
                        $map_view = get_post_meta($single_pos_id,'map_view',true);
                     }
            endwhile;wp_reset_query();
            echo "</ul>";
            echo "</div>";
          }
   }
}

if(isset($suc_post_con)):
do_action('templ_before_post_content');/*Add action for before the post content. */?>
     <div class="row">
        <div class="twelve columns">
             <div class="title_space">
                 <div class="title-container">
                     <h1><?php _e('Post Description', DOMAIN);?></h1>
                  </div>
                 <?php echo $suc_post_con;?>
             </div>
         </div>
     </div>
<?php do_action('templ_after_post_content'); /*Add Action for after the post content. */
endif;
}


add_action('tmpl_detail_page_gmap_collection','gmap_colletion');

/*
Name : gmap_colletion
Desc : Return the gmap collection for detail/single page
*/
function gmap_colletion()
{
global $wpdb,$post,$detail_post_type;
$detail_post_type = $post->post_type;
if(isset($_REQUEST['pid']) && $_REQUEST['pid'])
{
$cus_post_type = get_post_type($_REQUEST['pid']);
$PostTypeObject = get_post_type_object($cus_post_type);
$PostTypeLabelName = $PostTypeObject->labels->name;
$single_pos_id = $_REQUEST['pid'];
}
else
{   $cus_post_type = get_post_type($post->ID);
$PostTypeObject = get_post_type_object($cus_post_type);
$PostTypeLabelName = $PostTypeObject->labels->name;
$single_pos_id = $post->ID;
}
$heading_type = fetch_heading_per_post_type($cus_post_type);
remove_all_actions('posts_where');
$post_query = null;

if(count($heading_type) <= 0){
$args =
array( 'post_type' => 'custom_fields',
'posts_per_page' => -1  ,
'post_status' => array('publish'),
'meta_query' => array(
   'relation' => 'AND',
    array(
        'key' => 'post_type_'.$cus_post_type.'',
        'value' => $cus_post_type,
        'compare' => '=',
        'type'=> 'text'
    ),
    array(
        'key' => 'is_active',
        'value' =>  '1',
        'compare' => '='
    ),
    array(
        'key' => 'show_on_detail',
        'value' =>  '1',
        'compare' => '='
    )
),
    'meta_key' => 'sort_order',
    'orderby' => 'meta_value',
    'order' => 'ASC'
);
$post_query = new WP_Query($args);
$post_meta_info = $post_query;
$suc_post = get_post($single_pos_id);
if($post_meta_info->have_posts())
{
    $i=0;
    /*Display the post_detail gheading only one time also with if any custom field create. */
    while ($post_meta_info->have_posts()) : $post_meta_info->the_post();
        if($i==0)
        if($post->post_name != 'post_excerpt' && $post->post_name != 'post_content' && $post->post_name != 'post_title' && $post->post_name != 'post_images' && $post->post_name != 'post_category')
        {
            echo '<div class="title-container clearfix">';
            //echo '<h1>'.POST_DETAIL.'</h1>';
            $CustomFieldHeading = apply_filters('CustomFieldsHeadingTitle',POST_DETAIL);

            if(function_exists('icl_register_string')){
                icl_register_string(DOMAIN,$CustomFieldHeading,$CustomFieldHeading);
            }

            if(function_exists('icl_t')){
                $CustomFieldHeading1 = icl_t(DOMAIN,$CustomFieldHeading,$CustomFieldHeading);
            }else{
                $CustomFieldHeading1 = __($CustomFieldHeading,DOMAIN);
            }
            echo '<h3>'.$CustomFieldHeading1.'</h3>';

            echo '</div>';
            $i++;
        }
    endwhile;wp_reset_query();  //Finish this while loop for display POST_DETAIL
      ?>
<?php echo "<div class="grid02 rc_rightcol clearfix">";
        echo "<ul class="list">";
        if($_heading_type!="")
            echo "<h3>".$_heading_type."</h3>";

    while ($post_meta_info->have_posts()) : $post_meta_info->the_post();
            if(get_post_meta($single_pos_id,$post->post_name,true))
              {
                if(get_post_meta($post->ID,"ctype",true) == 'multicheckbox')
                  {
                    foreach(get_post_meta($single_pos_id,$post->post_name,true) as $value)
                     {
                        $_value .= $value.",";
                     }
                     echo "<li><p class="tevolution_field_title">".$post->post_title.": </p> <p class="tevolution_field_value"> ".substr($_value,0,-1)."</p></li>";
                  }
                else
                 {
                     echo "<li><p class="tevolution_field_title">".$post->post_title.": </p> <p class="tevolution_field_value"> "https://wordpress.stackexchange.com/questions/113140/.get_post_meta($single_pos_id,$post->post_name,true)."</p></li>";
                 }
              }
            if($post->post_name == 'post_excerpt' && $suc_post->post_excerpt!="")
             {
                $suc_post_excerpt = $suc_post->post_excerpt;
                ?>
                   <li>
                   <div class="row">
                      <div class="twelve columns">
                           <div class="title_space">
                               <div class="title-container">
                                   <h1><?php _e('Post Excerpt');?></h1>
                                   <div class="clearfix"></div>
                               </div>
                               <?php echo $suc_post_excerpt;?>
                           </div>
                       </div>
                   </div>
                   </li>
          <?php
             }

            if(get_post_meta($post->ID,"ctype",true) == 'geo_map')
             {
                $add_str = get_post_meta($single_pos_id,'address',true);
                $geo_latitude = get_post_meta($single_pos_id,'geo_latitude',true);
                $geo_longitude = get_post_meta($single_pos_id,'geo_longitude',true);
             }

    endwhile;wp_reset_query();
    echo "</ul>";
    echo "</div>";
  }
}

    $tmpdata = get_option('templatic_settings');
    $show_map='';
    if(isset($tmpdata['map_detail_page']) && $tmpdata['map_detail_page']=='yes')
        $show_map=$tmpdata['map_detail_page'];
    if(isset($add_str) && $add_str != '')
    {
    ?>
        <div class="row">
            <div class="title_space">
                <div class="title-container">
                    <h1><?php _e('Map',DOMAIN); ?></h1>
                </div>
                <p><strong><?php _e('Location : '); echo $add_str;?></strong></p>
            </div>

               <?php if($geo_latitude && $geo_longitude ):?>
                                                             <!-- Location Map-->
                <div id="location_map">
                      <div class="google_map" id="detail_google_map_id">
                        <?php include_once ('google_map_detail.php');?>
                      </div>                                 <!-- google map #end -->
                </div>

            <?php endif;?>
        </div>
    <?php }

}
?>

and you can call it using :

<!--Custom field collection do action -->
<?php do_action('tmpl_detail_page_custom_fields_collection');  ?>

<!--GMap collection do action -->
<?php do_action('tmpl_detail_page_gmap_collection');  ?>