在Windows Phone 8.1中打开本地地图应用程序,中心到特定点

时间:2016-01-05 16:39:20

标签: c# windows-phone-8.1

我想在按钮上单击启动地图应用,并将视图居中到特定点。在JSON文件中,我有很多项目,每个项目都有纬度和经度属性。我想将地图集中到那些属性。我可以像这样lauch app

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); 
    }

使用未分配的变量项时出现异常。有关如何使这项工作的任何线索?

1 个答案:

答案 0 :(得分:0)

如果您的按钮是针对列表中的每个项目,或者按钮应该具有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或直接分配的值。