navigator.geolocation.getCurrentPosition不会重置Android上的新位置

时间:2016-07-23 15:16:22

标签: javascript android html5 google-maps-api-3 geolocation

我正在尝试构建一个只需要在移动设备上打开浏览器窗口的跟踪器。除了navigator.gelocation.getCurrentPosition之外,所有代码似乎都有效。正如您所看到的,我每隔几秒就会使用一个计时器来循环我的代码。我期待在时间内输出实时位置信息的代码,但相反,它似乎诉诸使用最后的已知位置 - 或者如果没有,它将找到位置然后继续使用相同的位置。

我不确定这是Android或我的代码是否存在问题,但它似乎在iPhone上运行良好 - 但不是我测试了它,所以我无法确定。

提前致谢!

var lati = " ";
var longi = " ";
	
 	function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: -34.397, lng: 150.644},
					  zoom: 15
        });
        
        
        
	var timerID = setInterval(function() {	  
	  
	
        
	
        // Try HTML5 geolocation.
        if (navigator.geolocation) {
		var infoWindow = new google.maps.InfoWindow({map: map});	
          navigator.geolocation.getCurrentPosition(function(position) {
            var pos = {
              lat: position.coords.latitude,
              lng: position.coords.longitude
            };
			lati = (position.coords.latitude);
            
			longi = (position.coords.longitude);
           
			console.log(lati, "Lol");
            infoWindow.setPosition(pos);
            infoWindow.setContent('lati');
            map.setCenter(pos);
          }, function() {
            handleLocationError(true, infoWindow, map.getCenter());
		
          });
        } else {
          // Browser doesn't support Geolocation
          handleLocationError(false, infoWindow, map.getCenter());
        }
    
      function handleLocationError(browserHasGeolocation, infoWindow, pos) {
        infoWindow.setPosition(pos);
        infoWindow.setContent(browserHasGeolocation ?
                              'Error: The Geolocation service failed.' :
                              'Error: Your browser doesn\'t support geolocation.');
      }
		
	  //in a loop (setInterval) get coords and apply them to database

	  
	 
	 {
	$.ajax({ url: 'php_test.php',
     data: {'Lati': lati, 'Longi': longi},
     type: 'post',
     dataType:'json',
     success: function(output) {
                  alert(output);
              }
      
      
});
	
	 }
	 
	
	  }, 2 * 1000); 
	  
	  }

1 个答案:

答案 0 :(得分:0)

我面临同样的问题,但我意识到调试getCurrentPosition在不安全的起源上已被弃用。

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

也许你可以实现How do I get the current GPS location programmatically in Android?

之类的东西