在windows phone 8.1中打开本地地图应用程序,使用中心到特定点

本文关键字:应用程序 phone windows 地图 | 更新日期: 2023-09-27 18:29:06

我想点击按钮启动地图应用程序,并将视图居中到特定点。在JSON文件中,我有许多项,每个项都有纬度和经度属性。我想把地图放在这些属性的中心。我可以像这个一样启动应用程序

private async void Button_Click(object sender, RoutedEventArgs e)
    {
        string uriToLaunch = "bingmaps:?cp=40.726966~-74.006076&lvl=10";
        var uri = new Uri(uriToLaunch);
        var success = await Windows.System.Launcher.LaunchUriAsync(uri);
    }

但是,我如何用我的纬度和经度属性替换例如40.726966和-74.006076?我试过这个

private async void Button_Click(object sender, RoutedEventArgs e)
    {
        SampleDataItem item;
        string uriToLaunch = "bingmaps:?cp="+item.Latitude+"~"+item.Longitude+"&lvl=10";
        var uri = new Uri(uriToLaunch);
        var success = await Windows.System.Launcher.LaunchUriAsync(uri); 
    }

我收到一个使用未分配变量项的异常。有什么线索可以让它发挥作用吗?

在windows phone 8.1中打开本地地图应用程序,使用中心到特定点

如果您的按钮用于列表中的每个项目,或者按钮应该具有datacontext,以便它可以获得用于显示映射的项目,或者您可以手动为项目变量赋值。那么你的代码应该是

private async void Button_Click(object sender, RoutedEventArgs e)
    {
        SampleDataItem item=(sender as Button).DataContext as SampleDataItem;
if(item!=null){
        string uriToLaunch = string.Format("bingmaps:?cp={0}~{1}&lvl=20&collection=point.{2}_{3}_{4}", context.latitude, context.longitude, context.latitude, context.longitude, title);
        var uri = new Uri(uriToLaunch);
        var success = await Windows.System.Launcher.LaunchUriAsync(uri); 
    }}

该错误是因为项变量未分配任何值,需要通过DataContext或直接分配值。