在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);
}
我收到一个使用未分配变量项的异常。有什么线索可以让它发挥作用吗?
如果您的按钮用于列表中的每个项目,或者按钮应该具有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或直接分配值。