在Windows Phone 7上,有没有一种方法可以打开必应地图应用程序并定位到特定位置?

4
4个回答

9

2
很遗憾,无法在您自己的应用程序内启动Bing地图应用。
在早期的CTP版本中有一种方法,但已被删除。希望它将来会回归,但目前没有任何公开的路线图。
这留下了两个选择。
选项1
您可以搜索您想要显示的纬度/经度。搜索应用程序直接与bing地图应用程序集成,因此假设bing可以接受您提供的纬度/经度并返回有用的内容,则用户仍然能够在bing地图应用程序中执行他们想要的任何操作。
但这有两个缺点。首先,您无法控制搜索结果。其次,您无法在模拟器上测试此功能。
选项2
您可以在自己的Silverlight应用程序中使用BingMaps控件
(在RTM之前,可以在应用程序中使用完整版本的Silverlight控件。但是,这有一些怪癖,并且仅旨在作为临时解决方案。)
虽然不如应用程序功能齐全,但该控件确实提供了许多功能。
没有真实设备,但您可以使用反应式扩展模拟位置数据进行测试。
即使有真实设备,您也可能希望这样做,因为这比在行走或驾驶时尝试调试要容易得多。
编辑:
根据Kevin Marshall的这篇帖子,如果你要使用WebBrowserTask()(上面的选项1),请在查询前加上“maps:”,并对查询字符串进行URL编码。例如:
var task = new WebBrowserTask(); 
task.URL = "maps:1%20N%20Franklin%2060606";

或者
task.URL = "maps:37.788153%2C-122.440162";

这很好,但我想打开Bing应用程序到特定的纬度/经度,以便用户可以使用所有其他Bing应用程序功能(地图,路径,交通等),我不想将所有代码编写到我的应用程序中。 我宁愿将它们发送到Bing应用程序。 我发布的Android链接可以做到我想要的,我只是在寻找WP7特定版本的链接。 - Nate

1

我不是要添加地图视图,我是要启动实际的Bing应用程序。 - Nate

0

是的,你可以这样做。我已经在模拟器中运行它了(但是,正如许多人所说,不能保证Bing Maps for Silverlight控件能在实际设备上运行)

这是XAML代码:

<m:Map Grid.Row="0" x:Name="mapMain" ZoomLevel="5"  Mode="AerialWithLabels" CredentialsProvider="YOURBINGMAPSLICENSE" />

这里是一些代码,用于在 .cs 类中设置位置

var ppLoc = new Location(-37.821285, 144.97785);
mapMain.SetView(ppLoc, 17);

我不是要添加地图视图,我是要启动实际的Bing应用程序。 - Nate
哦,我明白了。对于误解感到抱歉。 - Mac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接