Maps Windows Phone 8打开到当前位置的地图

Maps Windows Phone 8打开到当前位置的地图,maps,windows-phone-8,Maps,Windows Phone 8,在Windows Phone 8中,我想打开用户当前位置的本机地图应用程序 我最接近这一点的是。描述让我相信它是完美的: 允许应用程序在中心位置启动“地图”应用程序 使用中心属性指定的位置或在用户的当前位置 位置。如果设置了SearchTerm,则将显示与搜索词匹配的位置 标记在地图上 如果不提供中心,它将使用用户的当前位置。完美的但是如果你没有提供一个中心,也没有提供一个搜索词,它会抛出一个execption(按设计) 所以我必须提供一个搜索条件。但是,如果我放置了一些用户不在本地的内容,我会

在Windows Phone 8中,我想打开用户当前位置的本机地图应用程序

我最接近这一点的是。描述让我相信它是完美的:

允许应用程序在中心位置启动“地图”应用程序 使用中心属性指定的位置或在用户的当前位置 位置。如果设置了SearchTerm,则将显示与搜索词匹配的位置 标记在地图上

如果不提供中心,它将使用用户的当前位置。完美的但是如果你没有提供一个中心,也没有提供一个搜索词,它会抛出一个execption(按设计)

所以我必须提供一个搜索条件。但是,如果我放置了一些用户不在本地的内容,我会弹出一个弹出窗口,显示“无结果:我们找不到与您的搜索匹配的内容。请尝试其他拼写或搜索词”


现在我可以自己获取用户的位置并使用该位置启动地图,但考虑到“地图”应用程序已经为您提供了该位置,这种感觉是错误的。有什么想法吗?

您可以自己获取地理位置并将其发送到地图任务。使用GeoLocator一次性地理定位采集来实现这一点

private async void MainPage\u已加载(对象发送方,RoutedEventArgs e)
{
var geologitor=新的geologitor();
var geoloc=await geological.GetGeopositionAsync();
新MapsTask()
{
中心=新地理坐标(geoloc.Coordinate.Latitude,geoloc.Coordinate.Longitude),
ZoomLevel=10
}.Show();
}

我写了一篇关于获取当前位置的教程,它可以为您提供一个可以绘制地图的一次性位置

private async void GetCurrentLocation()
{
    Geolocator locationFinder = new Geolocator
    {
        DesiredAccuracyInMeters = 50,
        DesiredAccuracy = PositionAccuracy.Default
    };
    try
    {
        Geoposition currentLocation = await  locationFinder.GetGeopositionAsync(
            maximumAge: TimeSpan.FromSeconds(120),
            timeout: TimeSpan.FromSeconds(10));
            String longitude = currentLocation.Coordinate.Longitude.ToString("0.00");
            String latitude = currentLocation.Coordinate.Latitude.ToString("0.00");
            MyTextBlock.Text = "Long: " + longitude + "Lat: " + latitude;
    }
    catch (UnauthorizedAccessException)
    {
       MessageBox.Show("And Exception Occured");
    }
}
有关演示文件的完整内容,请参见下面的链接

请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是参考文献的另一个中途停留,随着时间的推移,这些参考文献往往会过时)。请考虑在这里添加一个独立的概要,将链接作为参考。