Google不会每次都映射API渲染。使用导航地理定位

时间:2014-06-11 19:47:02

标签: google-maps asynchronous map geolocation render

我有一个非常特别的问题,我使用谷歌地图API在网络应用程序上渲染地图,地图占据了整个屏幕,就我想要的而言暂时。问题是它大部分时间都在Web应用程序上呈现,但有时它只是呈现"缩放栏"以及"卫星视图的按钮"和"地图视图"如果我刷新页面,它(可能)正常呈现。

这是我的JS

/*Define my latitude and longitud globals*/
var latitude;
var longitude;

/*
 * Wait until everything (dependencies) has been loaded to the page
 * running start to get the ball rolling
 */
$(document).ready(function() { start(); });

/*Bootstrap funct*/
function start() {
deviceLocation();
setMapSize();
loadScript();
}

function deviceLocation() {
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(ok) {
        latitude = ok.coords.latitude;
        longitude = ok.coords.longitude;
 }, function(error) {
        console.log(error.message);
        latitude = 40.013857;
        longitude = -101.685508;
  });
}
/* If geolocation not supported then we default to these coordinates */
else {
    latitude = 40.013857;
    longitude = -101.685508;
}
}

function setMapSize() {
windowHeight = $(window).height();
headerHeight = $('#header').height();
$('.indexMainContainer').css('height', (windowHeight - headerHeight));
}

function loadScript() {
 var script = document.createElement('script');
 script.type = 'text/javascript';
 script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&' +
  'callback=initialize&key=AIzaSyB2M8upR6PVkuKckRYl4C_gQp2D9sHQTD8';
 document.body.appendChild(script);
}

function initialize() {
 var mapOptions = {
 center: new google.maps.LatLng(latitude,longitude),
 zoom: 15    
};

  var map = new google.maps.Map(document.getElementById('map'),
  mapOptions);
}

而且,html是:

<div id="map">
</div>

我对使用地理定位器进行异步坐标获取有一些怀疑,(可能需要花费太长时间才能提供坐标),但我不知道如何使其工作如果这是问题。

感谢先进的任何帮助。

0 个答案:

没有答案