0

ユーザーの位置を追跡する Web アプリを作成しています。たとえば、ユーザーがインターネット接続を失った場合、アプリケーションはユーザーの位置を追跡し続けます (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 オブジェクトを配列に追加します。

インターネット接続が再検出されると、次のコードが実行されます。

 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でも表示できます。そこで一度下にスクロールすると、追跡を開始できます。

4

1 に答える 1

1

(offlineMarkersArray.length-1) から開始し、0 までカウントダウンします (0 を含む):

変化する:

  for (var i = offlineMarkersArray.length; i > 0; i--) {

に:

  for (var i = (offlineMarkersArray.length-1); i >= 0; i--) {
于 2012-11-05T16:56:20.183 に答える