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機能のためのコールバックです次のようになります。