从 Windows Phone 7 中的 GeoCoordinateWatcher.StatusChanged 事件返回位置数据
Posted
技术标签:
【中文标题】从 Windows Phone 7 中的 GeoCoordinateWatcher.StatusChanged 事件返回位置数据【英文标题】:Return the location data from GeoCoordinateWatcher.StatusChanged event in Windows Phone 7 【发布时间】:2011-09-15 22:40:21 【问题描述】:我正在编写一个需要获取用户位置的 Windows Phone 应用程序。我正在尝试以一种很好的方式(尽我所能),使用一个单独的类来查询GeoCoordinateWatcher
的位置数据并将该数据返回给调用方法。
问题是,我不知道如何从GeoCoordinateWatcher
的StatusChanged
事件中将LocationData
结构返回给调用方法。查看代码和cmets:
public struct LocationData
public string latitude;
public string longitude;
public class LocationService : GeoCoordinateWatcher
private GeoCoordinateWatcher watcher;
private LocationData StartLocationWatcher()
LocationData ld = new LocationData();
// The watcher variable was previously declared as type GeoCoordinateWatcher.
if (watcher == null)
watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
watcher.MovementThreshold = 20; // Use MovementThreshold to ignore noise in the signal.
watcher.StatusChanged += (o, args) =>
switch (args.Status)
case GeoPositionStatus.Ready:
// Use the Position property of the GeoCoordinateWatcher object to get the current location.
GeoCoordinate co = watcher.Position.Location;
ld.latitude = co.Latitude.ToString("0.000");
ld.longitude = co.Longitude.ToString("0.000");
//Stop the Location Service to conserve battery power.
watcher.Stop();
break;
;
watcher.Start();
return ld; //need to return this to the calling method, with latitude and longitude data taken from GeoCoordinateWatcher
【问题讨论】:
【参考方案1】:我不确定这是不是你想要的。
注册 PositionChanged 事件:
你必须添加一个事件监听器来触发位置的获取
GeoCoordinateWatcher.PositionChanged += GeoCoordinateWatcherPositionChanged;
private void GeoCoordinateWatcherPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
var currentLatitude = e.Position.Location.Latitude;
var currentLongitude = e.Position.Location.Longitude;
More 开启 PositionChanged 何时触发。
【讨论】:
哦,这就是收到位置时触发的事件...大声笑,谢谢。以上是关于从 Windows Phone 7 中的 GeoCoordinateWatcher.StatusChanged 事件返回位置数据的主要内容,如果未能解决你的问题,请参考以下文章
Windows Phone 7 从应用程序导航到 Internet
如何从列表框绑定 Windows Phone 7 中选择一个项目