MSDN에서 나왔던 Windows Phone 7 용 GPS 클래스가 있습니다.GPS 클래스 사용 다른 클래스의 이벤트
public class GetGPS : GeoCoordinateWatcher
{
GeoCoordinateWatcher watcher;
public float longitude { get; set; }
public GetGPS()
{
watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
watcher.MovementThreshold = 20.0;
watcher.PositionChanged += watcher_PositionChanged;
watcher.StatusChanged += this.watcher_StatusChanged;
watcher.Start();
}
public void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
switch (e.Status)
{
case GeoPositionStatus.Initializing:
break;
case GeoPositionStatus.Ready:
//plingpling
break;
case GeoPositionStatus.Disabled:
// location is unsupported on this device
break;
case GeoPositionStatus.NoData:
//pling
break;
}
}
public void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
Debug.WriteLine(String.Format("***POSITION: {0}, {1}", e.Position.Location.Latitude, e.Position.Location.Longitude));
Helfer.myLocation = e.Position.Location;
}
}
내 프로그램에서이 클래스를 사용하려고하면 나는 결코 내가있는 실제 위치 얻을 - 내가 책임 비동기 실행을 저장할 수있는 것 같아요 - 내가 프로그램 후 그 위치가 몇 시간 동안 실행 된 수를 그에 대한.
그러나 내가 GPS를 필요로하는 클래스에서 직접 GetGPS 생성자를 구현할 때 (또한 해당 클래스의 와쳐를 정의 할 때 ...) 내가 원하는 것을 얻습니다. 그러나 GPS 위치를 가져야하므로 내 프로그램의 일부 부분은 그 기능을 클래스 (DRY-Principle)에 아웃소싱하는 것이 가장 좋을 것이라고 생각했습니다.
어떻게 구현합니까? 또는 StatusChanged 및 PositionChanged 객체를 준수하는 "test"클래스에서 GetGPS 인스턴스를 만들 수 있습니까?
그 클래스에서 이벤트 리스너를 만들 수 있다면 ... 원하는 기능을 얻을 수 있습니다 :).
'Helfer.myLocation'이 정의되지 않았기 때문에 이것이 코드의 하위 집합이라고 가정합니다. – Nate
예, Helfer.MyLocation은 조잡합니다. 일단 GPS 수정이 있으면 지형을 보유합니다. – theXs
왜 GeoCoordinateWatcher에서 GetGPS 하위 클래스를 사용합니까? 점은 무엇인가? – Pedro