我的谷歌地图javascript代码显示在桌面浏览器,但不是我的手机浏览器
My Google Map javascript code displays on desktop browser but not my mobile phone browser
好的,我已经查过了,只找到了一页。
(Google Maps API GeoLocation不支持移动设备)
我的问题是,我有一些javascript代码调用谷歌地图API和显示刚刚好,当我查看它使用我的浏览器在我的桌面,我使用的浏览器是谷歌浏览器,但当我试图查看它使用我的安卓手机它根本不显示。我不确定问题是什么,我让它运行了几天,但地图崩溃并停止显示。从那时起,我不得不重新做代码,让它再次显示。我终于把它修好了,但现在又有了新问题。这是我使用的代码。
<!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/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
将使用这些坐标创建一个谷歌地图。
相关文章:
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 如何使用特定大小的浏览器窗口打开我的页面
- 对于如何在没有modernizr的情况下用边界半径的功能检测检查来替换我的旧浏览器检查
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 如何确保在浏览我的plone网站时始终启用浏览器中的javascript
- 在我的浏览器中用类似ctrl+s的PhantomJS保存一个网站
- 跨浏览器问题:如何调试我的网站'在windows PC的safari上的行为
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 转换链接在jsfiddle中有效,但在我的浏览器上无效
- 浏览器扩展程序来跟踪我的谷歌活动
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- 我的javascript适用于所有浏览器,但IE8除外
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- 为什么我的 cshtml 页面的 javascript 没有在浏览器中更新/刷新
- 为什么IE浏览器不喜欢我的点击事件
- 离子应用程序在浏览器上运行,但在我的安卓设备中无法正常工作
- jQuery在我的网站上不起作用,但在我的浏览器上起作用
- 如何在浏览器页面切换到我的网站选项卡时创建事件,如gmail中的聊天框状态更改
- 如果从我的网站在浏览器中安装了其他程序,如何在移动应用程序中打开共享对话框