geolocationAPIを導入前にはマーカーは表示されていましたがデバック時に 

InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama

というエラーが表示され、マーカーが消滅してしまいます。(中心座標の取得はできていました)どういう意味なのかがわかりません。ご教授願いいたします。

追記:書かれなかった処理を追加しました

<html>
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <script src="https://maps.googleapis.com/maps/api/js?key=Yourkey"></script>
  <link rel="stylesheet"href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css" />
  <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<script>

var gmap = null;
 $(document).on('pageshow','#map', drawMap );

function drawMap(){
 if (gmap == null){
 initialize(data,map); // 地図の初期化
 }
}

$(function(){
//JSONファイル読み込み開始
$.ajax({
 type: "POST",
 url:"json.php",
 cache:false,
 dataType:"json",
 success:function(json){
  var data=jsonRequest(json);
  initialize(data,map);
  }
 });
});

var currentInfoWindow = null;

// JSONファイル読み込みマーカーへデータ格納
function jsonRequest(json){
 var data=[];
 if(json.Marker){
  var n=json.Marker.length;
  for(var i=0;i<n;i++){
  data.push(json.Marker[i]);
  }
}
 return data;
}
//マーカー生成
 function createClickCallback(marker, infoWindow){
  return function(){
   if (currentInfoWindow){
    currentInfoWindow.close();
   }
  infoWindow.open(marker.getMap(), marker);
  currentInfoWindow = infoWindow;
 };
}

//現在地取得

navigator.geolocation.getCurrentPosition(succesCallback);
 function succesCallback(pos){
 var Position_latitude = pos.coords.latitude;
 var Position_longitude = pos.coords.longitude;
  //console.log(Position_latitude,Position_longitude);
 geo_location(Position_latitude,Position_longitude);
}

function geo_location(x,y){
 var bodyHeight = $('body').height();
 $("#map").css('height',bodyHeight);
  var opts={
   zoom: 16,
   center: new google.maps.LatLng(x,y),
   mapTypeId: google.maps.MapTypeId.ROADMAP
  };
 var map = new google.maps.Map(document.getElementById("map"),opts);
}
//地図生成
 function initialize(data,map){

  var i=data.length;
   while(i-- >0){
    var dat = data[i];
    var marker=new google.maps.Marker({
 position:new google.maps.LatLng(dat.lat,dat.lng),
 map:map
 });


 var infoWindow = new google.maps.InfoWindow({
  maxWidth: 250,
  content:'<div class="infoWindow">'+
         '<h2>'+dat.title+'</h2>'+
         '<span>'+dat.comment+'</span>'+
         '</div>'
  });
   google.maps.event.addListener(marker, 'click', createClickCallback(marker, infoWindow));

  }
 }

</script>
</head>

<body>
 <div data-role="page" id="top">
  <div data-role="header">
    <h1>DEMO</h1>
  </div>
 <div role="main" class="ui-content">
   <div id="map"></div>
 </div>

 <div data-role="footer">
   <div data-role="navbar" data-iconpos="bottom" class="navi_bar">
    <ul>
    <li class="ui-block-a"><a href="index.html" rel="external" data-icon="home" class="ui-btn-active ui-state-persist">Map</a></li>
    <li class="ui-block-b"><a href="sentpage.html" rel="external" data-icon="info">Info</a></li>
   </ul>
  </div>
  </div>
  </div>

 </body>

 <style type="text/css">
 #map {
 width: 100%;
 height: auto;
 }

 #infoWindow{
 width: 100%;
 height: auto;
 }
 </style>