我正在开发一个使用Google Maps Javascript API v3显示地图的应用,它会在我的桌面浏览器上显示它应该的方式,但它不在我的手机浏览器上。
所以,我检查了这个:My Google Map javascript code displays on desktop browser but not my mobile phone browser
而这:Javascript Google Maps API loading in Web Browser but not Android Browser
这是我能找到的与我的问题相关的一切,但是这两个都有类似的问题,即他们将navigator.geolocation.getCurrentPosition()作为参数传递给他们的初始化函数或类似的东西,而不是传递initialize作为getCurrentPosition()的回调。我也看到有人因为他们在文档加载之前要求当前位置而导致同样的问题,这也不是我的问题,因为我从jQuery的$(文档)调用了getCurrentPosition()。准备()。
这是我的代码,非常感谢任何帮助:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
function initialize(location) {
console.log(location);
var currentLocation= new google.maps.LatLng(location.coords.latitude, location.coords.longitude);
var mapOptions = {
center: currentLocation,
zoom: 17,
disableDefaultUI:true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
var marker= new google.maps.Marker({
position:currentLocation,
map: map
});
}
$(document).ready(function(){
navigator.geolocation.getCurrentPosition(initialize);
});
</script>
我也使用navigator.geolocation遇到了同样的问题,它似乎在PC上运行良好。我尝试在手机上访问它,但一直显示错误。我最终通过将https://添加到我在手机上访问的地址来解决了这个问题。即使您的网站上没有SSL,只需将https://添加到网址,一切都会好的。