Google maps api 3 谷歌地图API v3:无法调用方法';纬度';空的
我正在使用Google maps API v3,这是我的HTML文件(mylocation.HTML):Google maps api 3 谷歌地图API v3:无法调用方法';纬度';空的,google-maps-api-3,android-webview,Google Maps Api 3,Android Webview,我正在使用Google maps API v3,这是我的HTML文件(mylocation.HTML): Mylocation html,正文,#地图画布{ 身高:100%; 边际:0px; 填充:0px; } var映射; 函数初始化(){ var mapOptions={zoom:6}; map=new google.maps.map(document.getElementById('map-canvas'), (b)n); if(导航器.地理位置){ navigator.geolocat
Mylocation
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px;
}
var映射;
函数初始化(){
var mapOptions={zoom:6};
map=new google.maps.map(document.getElementById('map-canvas'),
(b)n);
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var pos=新的google.maps.LatLng(position.coords.latitude,
位置坐标经度);
var infowindow=new google.maps.infowindow({
地图:地图,
职位:pos,,
内容:“使用HTML5找到的位置。”
});
地图设置中心(pos);
},函数(){
手持导航(真);
});
}否则{
//浏览器不支持地理位置
手动定位(假);
}
}
函数handleNogeLocation(errorFlag){
如果(错误标志){
var content='错误:地理位置服务失败';
}否则{
var content='错误:您的浏览器不支持地理位置';
}
变量选项={
地图:地图,
职位:新google.maps.LatLng(60105),
内容:内容
};
var infowindow=new google.maps.infowindow(选项);
地图设置中心(选项位置);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
当我在谷歌浏览器上打开它时,它工作正常,并显示我的位置
在我的项目中,我使用WebVew
在Android上显示这个HTML文件。但是当我运行它时,在LogCat
中,我得到以下错误:
未捕获的TypeError:无法在调用null的方法'lat'file:///mnt/sdcard/myloction.html:12"
(我已将mylocation.html
保存在SD卡中)
我不知道怎么解决这个问题?有人能给我介绍一下吗?要在WebView中访问地理位置,您需要先进行一些设置 首先必须在WebSettings中启用该功能: 您还必须实现WebChromeClient.onGeolocationPermissionsShowPrompt:
另外,请确保您的应用程序具有访问位置的适当Android权限。这很可能是这里的打字错误
mapOptions)n)代码>?在FireFox上,我拒绝分享我的位置后,屏幕上一片空白。Chrome显示您的位置,并显示错误消息错误:地理定位服务失败。
正常。
<!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>