我正在构建一个将跟踪用户位置的网络应用程序。我想让它变得健壮,例如,当用户失去互联网连接时,应用程序将继续跟踪用户的位置(据我所知,GPS 与互联网连接无关)。一旦应用程序再次检测到互联网连接,它将创建标记。
if (navigator.onLine == false ) {
navigator.geolocation.getCurrentPosition(function(position){
var newLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
offlineMarkersArray.push(newLocation);
}, Map.showError, {maximumAge:0.5});
}
上面的代码检查是否有互联网。如果没有,则将 LatLng 对象添加到数组中。
当重新发现 Internet 连接时,将运行此代码:
Map.addOfflineMarkers = function(){
for (var i = offlineMarkersArray.length; i > 0; i--) {
var location = offlineMarkersArray[i];
var localTitle = 'Offline marker '+i;
var localMap = Map.getMap();
marker = new google.maps.Marker({
position: location,
map: localMap,
title: localTitle,
icon: 'http://silas-tic.com/tick.png'
});
markersArray.push(marker);
offlineMarkersArray.pop();
}
}
据我所知,这将通过数组向后计数,创建一个标记对象,该对象使用特定图标附加到地图上,以便我可以看到它。据我所知,正在创建标记对象,但并未将它们添加到地图中。
任何有关如何解决此问题的想法将不胜感激!
该页面也可以在http://silas-tic.com上查看。如果您向下滚动一次,您可以开始跟踪。