Javascript 如何在android手机上使用本地Google Maps.html文件平移到当前位置?
我们的目标是在android手机上安装一个本地.html文件,该文件可以通过标准的web浏览器打开,该浏览器具有在谷歌地图上平移到当前位置的功能。目前,平移到当前位置在android手机上的mi浏览器上工作,但最终用户希望它在标准web浏览器(如Chrome)上工作 预期结果:顶部的“平移到当前位置”按钮可将谷歌地图平移到手机的当前位置。 实际结果:在chrome、firefox、edge web浏览器上,可以打开html文件,但按钮不会平移到手机上的当前位置。在笔记本电脑的chrome浏览器中,该按钮不会平移到当前位置。在安卓手机上的小米浏览器(来自小米)上,按钮确实会响应并平移到当前位置 由于我是HTML/JS的初学者,我不知道这个错误是可以在代码中修复,还是可以通过web浏览器中的设置修复。如果能找到一种在android手机上使用“平移到当前位置”功能查看本地html的方法,并理解它为什么不起作用,那就太好了 如果要运行代码,则应检索GoogleMapsAPI键。下面是示例代码:Javascript 如何在android手机上使用本地Google Maps.html文件平移到当前位置?,javascript,android,html,google-maps,currentlocation,Javascript,Android,Html,Google Maps,Currentlocation,我们的目标是在android手机上安装一个本地.html文件,该文件可以通过标准的web浏览器打开,该浏览器具有在谷歌地图上平移到当前位置的功能。目前,平移到当前位置在android手机上的mi浏览器上工作,但最终用户希望它在标准web浏览器(如Chrome)上工作 预期结果:顶部的“平移到当前位置”按钮可将谷歌地图平移到手机的当前位置。 实际结果:在chrome、firefox、edge web浏览器上,可以打开html文件,但按钮不会平移到手机上的当前位置。在笔记本电脑的chrome浏览器中
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key={GOOGLE_MAPS_API_KEY}&sensor=true">
</script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
zoom: 15,
center: new google.maps.LatLng(51.924003,4.4601963),
mapTypeId: google.maps.MapTypeId.HYBRID }
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
infoWindow = new google.maps.InfoWindow();
const locationButton = document.createElement("button");
locationButton.textContent = "Pan to Current Location";
locationButton.classList.add("custom-map-control-button");
map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);
locationButton.addEventListener("click", () => {
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
(position) => {
const pos = {
lat: position.coords.latitude,
lng: position.coords.longitude,
};
infoWindow.setPosition(pos);
infoWindow.setContent("Location found.");
infoWindow.open(map);
map.setCenter(pos);
},
() => {
handleLocationError(true, infoWindow, map.getCenter());
}
);
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"/>
</body>
</html>
html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#地图画布{高度:100%}
函数初始化(){
变量映射选项={
缩放:15,
中心:新google.maps.LatLng(51.924003,4.4601963),
mapTypeId:google.maps.mapTypeId.HYBRID}
var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
infoWindow=new google.maps.infoWindow();
const locationButton=document.createElement(“按钮”);
locationButton.textContent=“平移到当前位置”;
locationButton.classList.add(“自定义地图控制按钮”);
map.controls[google.maps.ControlPosition.TOP\u CENTER]。按(locationButton);
locationButton.addEventListener(“单击”,()=>{
//试试HTML5地理定位。
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(
(职位)=>{
常数位置={
纬度:位置坐标纬度,
lng:position.coords.longitude,
};
信息窗口。设置位置(pos);
setContent(“找到位置”);
打开(地图);
地图设置中心(pos);
},
() => {
handleLocationError(true,infoWindow,map.getCenter());
}
);
}否则{
//浏览器不支持地理位置
handleLocationError(false,infoWindow,map.getCenter());
}
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
当前的解决方案是通过Azure将.html发布为网站。此网站可通过手机浏览器访问,并具有“平移到当前位置”功能
javascript代码无法通过手机上的local.html文件工作的最可能原因是手机浏览器在处理本地html/javascript时的安全性