地理位置找不到我的位置
问题描述:
我在我的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" />
我已经添加了地理位置插件,但没有奏效。当我在.xml中尝试使用它时,它工作正常。不明白为什么插件没有将这个添加到.xml中 – 2015-07-14 20:14:12