我有一个页面,当它打开时,我想要检索手机的GeoLocation。 这是我的代码:
public partial class splash : PhoneApplicationPage
{
public splash()
{
InitializeComponent();
}
protected override async void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
StatusTextBlock.Text = "Ermittle Position ...";
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 5;
try
{
Geoposition geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromSeconds(10),
timeout: TimeSpan.FromSeconds(10)
);
LatitudeTextBlock.Text = geoposition.Coordinate.Latitude.ToString("0.000000");
LongitudeTextBlock.Text = geoposition.Coordinate.Longitude.ToString("0.000000");
StatusTextBlock.Text = "Done.";
}
catch (Exception ex)
{
if ((uint)ex.HResult == 0x80004004)
{
StatusTextBlock.Text = "GeoLocation im Device deaktiviert !";
}
else
{
StatusTextBlock.Text = "Sonstiger Fehler aufgetreten !";
}
}
StatusTextBlock.Text = "Fertig ...";
}
问题似乎是Geoposition geoposition = await geolocator.GetGeopositionAsync
行。我将此处显示的OnNavigateTo
声明更改为async
(async await execution windows phone 8),但现在我的代码似乎等待“无休止”,因为"Fertig ...
“永远不会写入我的TextBox。” / p>
任何想法如何解决我的问题?
答案 0 :(得分:1)
请增加DesiredAccuracyInMeters并重试。使用50你会得到想要的结果,所需的精确度越小,它所用的时间就越多。
如果你真的希望这个位置准确,即精确度在5米,那么@Andre表示增加时间。希望这有帮助。