Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图标记消失_Javascript_Jquery_Html_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

Javascript 谷歌地图标记消失

Javascript 谷歌地图标记消失,javascript,jquery,html,google-maps-api-3,google-maps-markers,Javascript,Jquery,Html,Google Maps Api 3,Google Maps Markers,我的地图标记有问题。第一次加载地图时,一切正常。但是,当div被隐藏并重新显示(并调用相同的函数map())时,映射加载良好,但标记不会出现,即使映射在我真正所在的位置居中 以下是地图编码的一个片段: function map(){ var latlng = new google.maps.LatLng(38.54, 15.35); infowindow = new google.maps.InfoWindow(); var mapOptions = { zoom: 5, cen

我的地图标记有问题。第一次加载地图时,一切正常。但是,当div被隐藏并重新显示(并调用相同的函数map())时,映射加载良好,但标记不会出现,即使映射在我真正所在的位置居中

以下是地图编码的一个片段:

function map(){ 
  var latlng = new google.maps.LatLng(38.54, 15.35);
  infowindow = new google.maps.InfoWindow();

  var mapOptions = {
zoom: 5,
center: latlng,
panControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false
};

  map = new google.maps.Map(document.getElementById("map"), mapOptions);    
  switch (map_view_id) {
case "1" :  map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
            break;
case "2" :  map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
            break;
case "3" :  map.setMapTypeId(google.maps.MapTypeId.HYBRID);
            break;
  } 

  google.maps.event.addListenerOnce(map, 'tilesloaded', function(){     
    updateMap();           
   }); 
  }


function updateMap() {
  map.setCenter(new google.maps.LatLng(latitude, longitude));
  map.setZoom(13);

  marker = new google.maps.MarkerImage("/android_asset/www//graphics/car.png",
new google.maps.Size(96.0, 96.0),
new google.maps.Point(0, 0),
new google.maps.Point(48.0, 48.0)
 );

  markerShadow = new google.maps.MarkerImage("/android_asset/www/graphics/car_shadow.png",
new google.maps.Size(145.0, 96.0),
new google.maps.Point(0, 0),
new google.maps.Point(48.0, 48.0)
 ); 

  point = new google.maps.LatLng(latitude,longitude);

  if(!markerUserPosition){
// Create marker
markerUserPosition = new google.maps.Marker({
  position: point,
  map: map,
  icon: marker,
  shadow: markerShadow,
  draggable:false,
      animation: google.maps.Animation.DROP
    });
  } else {
     // Move marker
      markerUserPosition.setPosition(point);        
  }

}
更新: 有没有办法彻底摧毁谷歌地图?因为在hide上,我可以在技术上完全销毁地图,并在需要时加载它。

像这样尝试

$("#button-id-to-show").click(function() {
  $("#target-map-block").show();
  updateMap();
});
试着这样,

$("#button-id-to-show").click(function() {
  $("#target-map-block").show();
  updateMap();
});
一旦你
$(“#目标地图块”).show(),您只需通过

map=new google.maps.map(document.getElementById(“map”),mapOptions)

一旦您
$(“#目标地图块”).show(),您只需通过


map=new google.maps.map(document.getElementById(“map”),mapOptions)

在show函数期间是否再次调用updateMap()@sk8terboi87不,我只是调用map()。加载磁贴时,updateMap()不会自动调用吗?或者我错了吗?是的,当加载tiles时,它会自动加载,但是,对于hide/show,我认为您是jquery/js,可以这样做,对吗?所以加载的磁贴不会被触发,这是我的猜测。@sk8terboi87是的,我使用的是jQuery。如果我只在map()函数的末尾执行updateMap()呢?这应该可以正常工作?@sk8terboi87当我在map()的底部执行updateMap()时,在第一次加载时,我在左上角得到了标记,但映射没有加载,那么在show函数期间您是否再次调用updateMap()?@sk8terboi87不,我只是调用map()。加载磁贴时,updateMap()不会自动调用吗?或者我错了吗?是的,当加载tiles时,它会自动加载,但是,对于hide/show,我认为您是jquery/js,可以这样做,对吗?所以加载的磁贴不会被触发,这是我的猜测。@sk8terboi87是的,我使用的是jQuery。如果我只在map()函数的末尾执行updateMap()呢?这应该行得通吧?@sk8terboi87当我在map()的底部做了一个updateMap()时,在第一次加载时,我在左上角得到了标记,但地图没有加载。当有人没有有效的理由或评论就投下一票时,它会让人恼火。当有人没有有效的理由或评论就投下一票时,它会让人恼火。