我无法理解为什么这不会在我的移动浏览器上运行,但它会在我的PC浏览器上运行,确切地说是chrome。
你们中的任何人都可以提供反馈。
链接到我正在测试的服务器:
54.172.35.180/chat/chatlist.php
<script type="text/javascript">
function success(position) {
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var myOptions = {
zoom: 15,
center: latlng,
};
var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:"You are here! (at least within a "+position.coords.accuracy+" meter radius)"
});
}
google.maps.event.addDomListener(window, 'load', navigator.geolocation.getCurrentPosition(success));
</script>
我最初只是复制并粘贴了API网站上的代码并且工作正常但是一旦我开始提取GPS数据,它就停止在移动设备的浏览器上工作了。任何帮助,将不胜感激。
答案 0 :(得分:1)
navigator.geolocation.getCurrentPosition不返回位置。因此,您不能将该结果用作addDomListener的参数(window,...
它的作用是发送请求。当该请求准备就绪时,将触发回调。在该回调中,您可以触发函数成功()(我将其命名为初始化)。
只是为了表明发生了什么。 您仍然可以选择这是否是一种好的方法。 随意重命名,扩展,......
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script type="text/javascript">
function initialize(position, accuracy) {
var latlng = position || new google.maps.LatLng(50.45, 4.45); // set your own default location. This gets called if the parameters are left blank.
var myOptions = {
zoom: 15,
center: latlng
};
var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
if (position) {
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: "You are here! (at least within a " + accuracy + " meter radius)"
});
}
else {
// position of the user not found
}
}
function locationFound(position) {
initialize(
new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
position.coords.accuracy
);
}
function locationNotFound() {
initialize(null, null);
}
function page_loaded() {
// the page is loaded, we can send a request to search for the location of the user
navigator.geolocation.getCurrentPosition(locationFound, locationNotFound);
}
google.maps.event.addDomListener(window, 'load', page_loaded);
</script>
<style>
#map-canvas {
width: 500px;
height: 400px;
}
</style>
<div id="map-canvas"></div>
首先加载地图并设置默认位置可能更好。 找到位置后,您可以更改中心并设置标记。 现在注意:如果找不到位置,则需要很长时间才能调用locationNotFound