我想在按钮上单击启动地图应用,并将视图居中到特定点。在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);
}
使用未分配的变量项时出现异常。有关如何使这项工作的任何线索?
答案 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或直接分配的值。