地理位置找不到我的位置

问题描述:

我在我的angularjs /离子应用中使用了地图,使用地理位置。有一个功能找到我。它应该指出我们在地图上的位置。我在实现这个时遇到了困难。什么是问题在这里?它只是显示进度圈,但没有指出我的位置。地理位置找不到我的位置

我的JS

.controller('MapCtrl', function($scope, $ionicLoading, $compile, $state, $ionicPlatform, $location) { 


    $scope.map = map; 


    $scope.basel = { 
     lat: 6.802107, 
     lon: 79.921749 
    }; 


    $ionicPlatform.ready(function() { 
     navigator.geolocation.getCurrentPosition(function(position) { 



      $scope.gotoLocation(6.802107, 79.921749); 

      $scope.$apply(); 
     }, function(e) { 
      console.log("Error retrieving position " + e.code + " " + e.message) 
     }); 


     $scope.gotoLocation = function(lat, lon) { 
      if ($scope.lat != lat || $scope.lon != lon) { 
       $scope.basel = { 
        lat: lat, 
        lon: lon 
       }; 
       if (!$scope.$phase) $scope.$apply("basel"); 
      } 
     }; 

     for (var i = 0; i < $scope.locations.BranchAndAtms.length; i++) { 

      var objectMark = $scope.locations.BranchAndAtms[i]; 
      $scope.whoiswhere.push({ 
       "name": objectMark.outlet, 
       "lat": objectMark.lat, 
       "lon": objectMark.lon, 
       "date": objectMark.address 
      }); 


     }; 

     for (var i = 0; i < $scope.locationsIDC.IDC.length; i++) { 

      var objectMark = $scope.locationsIDC.IDC[i]; 
      $scope.whoiswhere.push({ 
       "name": objectMark.outlet, 
       "lat": objectMark.lat, 
       "lon": objectMark.lon, 
       "date": objectMark.address 
      }); 


     }; 

    }); 


    //google.maps.event.addDomListener(window, 'load', initialize); 

    var contentString = "<div><a ng-click='clickTest()'>Click me!</a></div>"; 
    var compiled = $compile(contentString)($scope); 



    $scope.centerOnMe = function() { 

     if (!$scope.map) { 

      return; 

     } 

     $scope.loading = $ionicLoading.show({ 

      content: 'Getting current location...', 
      showBackdrop: false 

     }); 
     window.alert("dgdfd"); 

     navigator.geolocation.getCurrentPosition(function(pos) { 
       window.alert(pos); 
       $scope.map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)); 
       window.alert(pos.coords.longitude); 
       window.alert(pos.coords.latitude); 
      }, 
      function(error) { 
       alert('Unable to get location: ' + error.message); 
      }); 
    }; 

    $scope.clickTest = function() { 
     alert('Example of infowindow with ng-click') 
    }; 

}) 

我的HTML

<div id="map" style="width:100%; height:100%; padding:10px; margin-top:45px;" ng-show="demo == 'ios'"> 

      <app-map style="height:100%; width:100%;" 
      center="basel" 
      zoom="3" 
      markers="whoiswhere" 
      > 
      </app-map> 


    </div> 

<ion-footer-bar class="bar-dark"> 
     <a ng-click="centerOnMe()" class="button button-icon icon ion-navigate">Locate the nearest Branch</a> 
    </ion-footer-bar> 

我使用香草的JavaScript,而不是角和谷歌地图API,但这里是我的地理位置代码:

if (navigator.geolocation) { 

    function success(geoposition) { 
     var userLocation = new google.maps.LatLng(geoposition.coords.latitude, geoposition.coords.longitude); 
     map.setCenter(userLocation); 
    }; 

    function error(error) { 
     console.warn('ERROR(' + error.code + '): ' + error.message); 
    }; 

    var options = { 
     enableHighAccuracy: true, 
     timeout: 5000, 
     maximumAge: 10000 
    } 

    navigator.geolocation.getCurrentPosition(success, error, options); 

} 

你的第一个(成功)函数具有参数“位置”,但您似乎没有使用它来获取用户位置。我认为你需要提取position.coords.latitude和position.coords.longitude。如果不支持地理定位功能,我还将函数封装在'if'子句中。

将这个在你的AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
+0

我已经添加了地理位置插件,但没有奏效。当我在.xml中尝试使用它时,它工作正常。不明白为什么插件没有将这个添加到.xml中 – 2015-07-14 20:14:12