1

私はユーザーの位置を追跡する必要がある機能を実装しようとしています。まず、getCurrentLocationを使用してユーザーの位置を取得し、次に座標を渡して(マーカー変数はグローバルに設定されています)、次に、watchPosition関数を呼び出して、その場所が変更された場合にユーザーの場所を追跡できるようにします。 このコードはイオンアプリのために実装されていますが、同じロジックは、任意のWebアプリケーションで使用されます(それがnavigator.geolocationと同じですので、あなたは$ cordovaGeolocationを無視することができます)Google Maps WatchPositionが正しく機能しない

var map = null; 
var myPosition = null; 

$scope.initMap = function(){ 
    var posOptions = { 
     enableHighAccuracy: false, 
     timeout: 20000,   
    }; 

    $cordovaGeolocation.getCurrentPosition(posOptions).then(
     function (position) { 
      var lat = position.coords.latitude; 
      var long = position.coords.longitude; 
      var myLatlng = new google.maps.LatLng(lat, long);    
      $scope.me = myLatlng; 

      var mapOptions = { 
       center: myLatlng, 
       zoom: 11, 
       disableDefaultUI: true, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 

      };   

      map = new google.maps.Map(document.getElementById("map"), mapOptions); 

      myPosition = new google.maps.Marker({ 
       map: map, 
       position: myLatlng, 
       draggable:false, 
       icon: "http://i.stack.imgur.com/orZ4x.png", 
      });    
      var circle = new google.maps.Circle({radius: User.getUser().distance*1000, center: myLatlng}); 
      map.fitBounds(circle.getBounds());    
      $cordovaGeolocation.watchPosition(win); 
     }, 
     function(err) { 
      console.log(err); 
     } 
    ); 
} 

watchPosition機能のためのコールバックです次のようになります。

答えて

0

ここでのエラーは基本的に$ cordovaGeolocationのもので、navigator.geolocationに置き換えて私の問題を解決しました。

関連する問題