好的,我已经查过了,但只找到了一页。
(Google 地图 API 地理位置不适用于移动设备 https://stackoverflow.com/questions/12136615/google-maps-api-geolocation-not-working-for-mobile)
我的问题是,我有一些 javascript 代码调用 google 地图 API,并且当我使用桌面上的浏览器查看它时显示得很好,我使用的浏览器是 google chrome,但是当我尝试使用我的浏览器查看它时安卓手机根本不显示。我不确定问题是什么,我运行了几天,但地图崩溃并停止显示。从那时起,我不得不重新编写代码才能使其再次显示。我终于让它工作了,但现在我遇到了这个新问题。这是我正在使用的代码。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="Stylesheet" type="text/css" href="css/drop.css" />
<link rel="Stylesheet" type="text/css" href="css/login.css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js? sensor=false"></script>
<script type="text/javascript">
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getMap, showError);
}
else {
alert("Geolocation is not supported by this browser.");
}
}
function initialize( lat, lon ) {
pLatitude = lat;
pLongitutde = lon;
var mapOptions = {
center: new google.maps.LatLng(lat, lon),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true
}
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lon),
map: map,
title: "Current Location"
});
}
function getMap(position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
google.maps.event.addDomListener(window, 'load', initialize(lat, lon));
}
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unkown error occurred.");
break;
}
}
</script>
</head>
<body onload="getLocation()">
<div id="map-canvas"></div>
</body>
</html>
你犯了一些错误。我更新了您的代码并添加了注释以进行解释:http://jsfiddle.net/cj5xF/1/ http://jsfiddle.net/cj5xF/1/
还有全屏视图(在移动设备上测试):http://jsfiddle.net/cj5xF/1/embedded/result/ http://jsfiddle.net/cj5xF/1/embedded/result/
固定代码片段:
// When the page has loaded, call the getLocation function.
// Be sure not to use parenthesis after getLocation, or you will
// call it, instead of passing a reference to it to be called later (callback)
google.maps.event.addDomListener(window, 'load', getLocation);
这将调用getLocation
页面加载后的函数。这getLocation
函数将执行其地理位置检查,如果可用,则调用initialize
并传递给它position
对象,其中包含坐标。initialize
然后将使用这些坐标来创建谷歌地图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)