【问题标题】:Is there a way to open the Bing Maps App on Windows Phone 7 to a specific location?有没有办法将 Windows Phone 7 上的 Bing 地图应用程序打开到特定位置?
【发布时间】:2011-03-22 10:56:31
【问题描述】:

WP7 Tools 的内置模拟器没有安装 Bing 应用,我也没有任何手机硬件可供测试。所以我只是想知道,如何将 Bing 地图应用程序打开到特定的纬度/经度?

相关问题:

iPhone -- How can I launch the Google Maps iPhone application from within my own native application?

Android -- https://developer.android.com/guide/appendix/g-app-intents.html

【问题讨论】:

    标签: c# silverlight windows-phone-7


    【解决方案1】:

    似乎从操作系统版本 7.1 开始,有一个特定的任务可用,请参阅 BingMapsTaskBingMapsDirectionsTask 的说明。

    【讨论】:

      【解决方案2】:

      很遗憾,无法从您自己的应用程序中启动 Bing 地图应用程序。
      在早期的 CTP 中有一种方法,但已被删除。希望它会在未来回归,但它不在任何当前的公开路线图上。

      这留下了两种选择。

      选项 1
      您可以 perform a search 显示您想要显示的纬度/经度。搜索应用程序确实直接与 bing 地图应用程序集成,因此,假设 bing 可以获取您提供的纬度/经度并返回一些有用的东西,用户仍然可以在 bing 地图应用程序中做任何他们想做的事情。

      但这有两个缺点。首先,您无法控制搜索结果。其次,你不能在模拟器上进行测试。

      选项 2
      您可以在自己的 silverlight 应用程序中使用 BingMaps control
      (在 RTM 之前,use the full Silverlight version of the control within your app 是可能的。但是,这有一些怪癖,只是作为一个权宜之计的解决方案。)
      虽然不像应用程序那样功能齐全,但该控件确实提供了很多功能。

      无需真实设备,但您可以使用Reactive Extensions 模拟位置数据以进行测试。
      即使使用真实的设备,您也可能希望考虑这样做,因为它比在步行或开车时尝试调试要容易得多。

      编辑:
      根据this post by 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 特定版本。
      【解决方案3】:

      Bing 地图 Silverlight 控件现在支持开箱即用,并且是工具的一部分...在此处了解更多信息:http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/UsingBingMapsLab/Exercise-1-Introduction-to-the-Bing-Map-Control

      【讨论】:

      • 我不想添加地图视图,我想启动真正的必应应用。
      【解决方案4】:

      是的,您可以这样做。我已经让它在模拟器中运行(但是,正如许多人所说,不能保证 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);
      

      【讨论】:

      • 我不想添加地图视图,我想启动真正的必应应用。
      • 哦,我明白了。很抱歉造成误会。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2012-11-19
      相关资源
      最近更新 更多