[英]Tracking location in realtime in Windows phone 8.1
抱歉,这是一个愚蠢的问题,我是Windows Phone 8.1开发的初学者。 我正在使用MapControl在地图上显示我的当前位置,但是当我移动时,除非单击按钮并重新初始化先前创建的图钉的位置,否则位置不会自动实时更新。 有没有一种更好的方法可以解决这种情况,而无需用户每次想查看其当前位置时都按下按钮。
private async Task setMyLocation()
{
try
{
var gl = new Geolocator() { DesiredAccuracy = PositionAccuracy.High };
Geoposition location = await gl.GetGeopositionAsync(TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5));
var pin = new MapIcon()
{
Location = location.Coordinate.Point,
Title = "You are here",
NormalizedAnchorPoint = new Point() { X = 0, Y = 0 },
};
myMapView.MapElements.Add(pin);
await myMapView.TrySetViewAsync(location.Coordinate.Point, 20);
}
catch
{
myMapView.Center = new Geopoint(App.centerPin);
myMapView.ZoomLevel = 20;
Debug.WriteLine("GPS NOT FOUND");
}
App.centerPin = myMapView.Center.Position;
}
提前致谢!
处理Geolocator.PositionChanged事件,而不是运行计时器和轮询。 每次位置更改都会触发此操作,并且效率会大大提高。
您可以设置Geolocator.MovementThreshold属性,以便仅当用户移动了给定距离时才会触发,而如果用户站在同一位置则不执行任何操作。 您选择的阈值可能取决于地图放大的程度。
我要做的方法是放置一个Timer,以给定的时间间隔从服务器请求信息。
看一下这个包含代码片段的答案 : Stackoverflow答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.