我今天一直在寻找从Windows Phone 7设备收集GPS坐标的时间 - 但是由于我没有实际的测试设备,我尝试设置一些我想要返回的虚拟数据而不是真实的GPS数据......然而,这不是很好: 这段代码部分是我在这里找到的一个例子。但是我试着把它放到一个我可以稍后访问的类中。
public class GetGPS : GeoCoordinateWatcher
{
GeoCoordinateWatcher watcher;
public GetGPS()
{
watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
watcher.MovementThreshold = 20;
watcher.PositionChanged += this.watcher_PositionChanged;
watcher.StatusChanged += this.watcher_StatusChanged;
watcher.Start();
}
private void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
switch (e.Status)
{
case GeoPositionStatus.Ready:
//plingpling
break;
case GeoPositionStatus.Disabled:
// location is unsupported on this device
break;
case GeoPositionStatus.NoData:
watcher.Position.Location.Latitude = 54.086369f;
watcher.Position.Location.Longitude = 12.124754f;
break;
}
}
private void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
var epl = e.Position.Location;
// Access the position information thusly:
epl.Latitude.ToString("0.000");
epl.Longitude.ToString("0.000");
epl.Altitude.ToString();
epl.HorizontalAccuracy.ToString();
epl.VerticalAccuracy.ToString();
epl.Course.ToString();
epl.Speed.ToString();
e.Position.Timestamp.LocalDateTime.ToString();
}
}
这是我尝试访问数据的另一个类 - 但是我总是将NaN作为lat1Rad和long1Rad ...你能帮助我吗?
我希望该示例在模拟器(具有固定的GPS坐标)和手机7设备上正常运行 - 它实际上可以获取该值。
GetGPS location1= new GetGPS();
//GeoCoordinate myPosition = location1.getPosition();
//Radianten berechnen
double lat1Rad = GradZuRad(location1.Position.Location.Latitude);
double long1Rad = GradZuRad(location1.Position.Location.Longitude);
我基本上只想编写一个让我返回CURRENT GPS位置的课程。
答案 0 :(得分:1)
为什么要导出frmo GeoCoordinateWatcher
?这是一个错误,IMO。它使您不清楚何时使用自己的类的成员以及何时使用委派的实例。目前,您在委派的观察者上设置坐标,然后直接询问来自GetGPS
实例的坐标。
我建议你用自己的“固定”位置观察器实现IGeoPositionWatcher<GeoCoordinate>
- 然后在执行时决定是使用它还是真正的GeoCoordinateWatcher
。显然,这意味着您的客户端代码应该只依赖于IGeoPositionWatcher<GeoCoordinate>
而不是GeoCoordinateWatcher
。这也有助于单元测试目的。
答案 1 :(得分:1)
您的示例代码来自哪里?
您是否尝试过使用sample on MSDN?
或者,可以从http://phone7.wordpress.com/2010/08/02/no-device-no-gps-no-matter-with-code/
获得一个greate模拟器答案 2 :(得分:0)
当然,Jon的回答非常合适 - 我认为你没有做过合理的界面抽象,但即使你得到了这个,对于模拟数据,你有没有看过Kevin Wolf's GPS Simulator for Windpws Phone?