2014-03-25 8 views
0

점 사이의 경로를 그리기 위해 조작 된지도 클래스에 저장된 좌표 목록이 있지만 응용 프로그램을 닫았다가 다시 열 때이 점을 저장하는 방법을 모르겠습니다.앱을 삭제 표시 한 후 좌표 목록을 저장하는 방법은 무엇입니까?

이것은 현재 앱 내에있는 포인트를 OnNavigatedTo()에 저장하는 방법이며, 포인트와 마커는 닫지 않는 한 잃지 않습니다. 하지만 앱을 닫은 후에 어떻게 이러한 좌표를 저장합니까?

내가 OnNavigatedFrom에 저장해야한다고 생각하지만 좌표 목록을 저장하려고했는데 앱을 다시 열 때 마커가 표시되지 않습니다.

//save the coordinates to a list 
mycoord.Add(new GeoCoordinate(MyGeoPosition.Latitude, MyGeoPosition.Longitude)); 

if (mycoord.Count == 2) 
{ 
    //call route method when coord list equal to two. 
    GetRoute(); 
} 
+2

어떻게 보존 Windows Phone 용 앱 상태 복원 : http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff967547(v=vs.105).aspx –

+0

[격리 된 저장소에 좌표 목록을 저장하는 방법] 가능한 복제본? (http://stackoverflow.com/questions/22563502/how-to-save-a-list-of-coordinates-to-isolated-storage) –

답변

1

사용자 정의 개체를 만들고 여기에 EZ_Iso.dll

를 사용하여 휴대 전화의 저장에 직렬화하는 것입니다 사용자 정의하는 가장 쉬운 방법은 예입니다

//Your custom GeoCoord container 
[DataContractAttribute] 
public class GeoCoordContainer{ 
    [DataMember] 
    public double lat = 0; 

    [DataMember] 
    public double lon = 0; 

    public GeoCoordContainer(Double lat, Double lon){ 
    this.lat = lat; 
    this.lon = lon; 
    } 
} 


//Then in your Navigated from method 
    GeoCoordContainer cont = new GeoCoordContainer(MyGeoPosition.Lattitude,MyGeoPosition.Longitued); 

    //Now save it to the storage using EZ_Iso 
    EZ_Iso.IsolatedStorageAccess.SaveFile("MyLocation",cont); 


//To Retrieve it from storage 
    GeoCoordContainer cont = (GeoCoordContainer)EZ_Iso.IsolatedStorageAccess.GetFile("MyLocation",typeof(GeoCoordContainer)); 

EZ_I 당신이 시도 할 수 있습니다 또한

var lat=PhoneApplicationService.Current.State["latitude"]; 
var lng=PhoneApplicationService.Current.State["longitude"]; 

:

PhoneApplicationService.Current.State["latitude"] = MyGeoPosition.Latitude; 
PhoneApplicationService.Current.State["longitude"] = MyGeoPosition.Longitude; 

이후로 액세스 : so.dll 무료 여기 http://anthonyrussell.info/postpage.php?name=2

+0

이렇게 구현하여 방금 'MyGeoPosition'을 검색하는 방법을 알아 내려고했습니다. 컨테이너, 그리기 메서드를 호출하는 데 사용해야합니다. 어떤 아이디어? –

+0

여기에서 이것을 디버깅하기가 어렵습니다. [email protected]에서 나를 위로하고 더 논의 할 수 있습니다. –

+0

그래, 확실한 것, –

1

사용 묘비 도우미 http://tombstonehelper.codeplex.com/

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) 
{ 
this.SaveState(e); // <- first line 
} 

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
this.RestoreState(); // <- second line 
} 
+0

저장 상태를 확인하기 위해 SaveState를 호출 한 후 페이지의 State 속성을 확인하십시오.지도가 보존 될지 의심 스럽습니다. – saj

+0

토론 스레드에 뭔가를 게시하십시오. 여기에 대한 답을 찾을 수 있을지 의심 스럽습니다. http://tombstonehelper.codeplex.com/discussions/ – saj

1

당신은 같은 간단한 무언가를 만들 수 있습니다

private IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings; 
appSettings.Add("latitude", MyGeoPosition.Latitude.ToString()); 
+0

@ BrianJ 그 일을 했습니까? –

+0

나는 다음과 같은 것을 시도했다 :'appSettings.Add ("latitude", MyGeoPosition.Latitude.ToString());'검색 :'MyGeoPosition.Latitude = (double) appSettings [ "위도"]; 어디에서 OnNavigatedTo()를 검색 할 수 있습니까? –

+0

@BrianJ 당신은 틀린 항목입니다. 추가 :'if (appSettings.Contains ("Latitude"))'는 분리 된 저장소 설정에서 예외를 확인하는 데 도움이됩니다. –