【发布时间】:2013-12-09 21:55:58
【问题描述】:
我正在使用 Google maps API v3,这是我的 HTML 文件 (mylocation.html):
<!DOCTYPE html>
<html>
<head>
<title>Mylocation</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>
<script>
var map;
function initialize() {
var mapOptions = {zoom: 6};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions)n);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
map.setCenter(pos);
}, function () {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
当我在 Google Chrome 上打开它时,它运行良好,并显示了我的位置。
在我的项目中,我使用WebVew 在 Android 上显示此 HTML 文件。但是当我在LogCat 中运行它时,出现以下错误:
“未捕获的类型错误:无法在 file:///mnt/sdcard/myloction.html:12 处调用 null 的方法 'lat'”
(我已将mylocation.html 保存在 SDCard 中)。
我不确定如何解决这个问题?有人可以指导我吗?
【问题讨论】:
-
这很可能是这里的错字
mapOptions)n);? -
使用 FireFox 后,我在拒绝分享我的位置后得到了空白屏幕。 Chrome 显示您的位置并显示错误消息
Error: The Geolocation service failed.,这没关系。
标签: google-maps-api-3 android-webview