如何在Windows Phone 8应用程序中在地图上执行本地搜索

时间:2013-06-03 08:13:02

标签: windows-phone-7 windows-phone-8 bing-maps

我想在Windows Phone 8应用中在地图上执行基于字符串的搜索。

在网上搜索我在msdn网站上得到了这个 -

            BingMapsTask bingMapsTask = new BingMapsTask();

            bingMapsTask.SearchTerm = "coffee";
            bingMapsTask.ZoomLevel = 2;

            bingMapsTask.Show();

但这会打开一个显示搜索结果的新窗口(或应用)。我有两个问题 -

  1. 如何从新窗口获取输入,我的意思是我希望当用户触摸任何搜索结果时,我的应用应该得到它的坐标。怎么做?

  2. 有没有办法在应用程序中执行搜索?

1 个答案:

答案 0 :(得分:2)

您可以使用GeocodeQuery查找搜索字词的坐标。

// Get your current position
var myPosition = await new Geolocator().GetGeopositionAsync(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(10));

// Define search
var geoQuery = new GeocodeQuery();
geoQuery.SearchTerm = "Seattle, WA";
geoQuery.GeoCoordinate = new GeoCoordinate(myPosition.Coordinate.Latitude, myPosition.Coordinate.Longitude);
geoQuery.QueryCompleted += (s, e) => {
  if (e.Error == null && e.Result.Count > 0) {
    // e.Result will contain a list of coordinates of matched places.
    // You can show them on a map control , e.g.
    myMap.Center = e.Result[0].GeoCoordinate;
    myMap.ZoomLevel = 2;
  }
}
geoQuery.QueryAsync();

注意,您需要添加ID_CAP_MAP才能实现此目的。