2017-10-19 3 views
0

私はng-mapを使用していますが、navigator.geolocation.getCurrentPositionを使用してユーザーの現在地を取得していますが、Ffxでは成功コールバックはありません呼び出されるようです。コールバック関数内にブレークポイントを追加すると、決してヒットしません(テストした他のブラウザでも機能します)。ここに私のコードは次のとおりです。ng-map - firefox navigator.geolocation.getCurrentPosition成功コールバックが呼び出されない

私が試した何
    var options = { 
        }; 

        navigator.geolocation.getCurrentPosition(
         function (pos) { 
          var myLatLng = new google.maps.LatLng(parseFloat(pos.coords.latitude), parseFloat(pos.coords.longitude)); 
          map.setCenter(myLatLng); 
         }, 
         function (error) { return false; }, 
         options); 

:(私はすべてのエラーを見ることができないことがあることはありません、)

  • をエラーコールバックが呼び出されているかどうかの確認
  • 短いの追加します
  • オプションでenableHighAccuracyを明示的にfalseに設定する
  • 'success'関数と 'error'関数を明示的に指定して呼び出し、関数 'inline'を追加する代わりに、
  • getCurrentPositionの代わりにnavigator.geolocation.watchPositionを使用する
  • マップにng-map angularディレクティブを使用していますが、現在の位置を表示するカスタムマーカーから「位置」を削除しようとしましたが、何も干渉していないことを確認したり、コールバックを傍受したりしました。

私が試すことができる何かの新鮮なアイデアや提案は大歓迎です!私は実際にNG-マップコールnavigator.geolocation.getCurrentPositionと現在位置を表示するために使用しているとgetCurrentPositionに自分のコールに干渉して<custom-marker>

position="current-location" 

答えて

0

私はその設定を見つけました。

position="{{mapsCtrl.userLat + ',' + mapsCtrl.userLng}}" 

...と私はこのようにそれを設定します:私は今、私の<custom-marker>に位置として以下を使用

navigator.geolocation.getCurrentPosition(
    function (pos) { 
     var myLatLng = new google.maps.LatLng(parseFloat(pos.coords.latitude), parseFloat(pos.coords.longitude)); 
     this.setCurrentLocationMarker(myLatLng); 
     map.setCenter(myLatLng); 
    }, 
    function (error) { return false; }); 

    setCurrentLocationMarker(latLng) { 
     this.userLat = latLng.lat(); 
     this.userLng = latLng.lng(); 
     this.$scope.$apply(); 
    } 
関連する問題