0

我想在 windows phone 8 应用程序中的地图上执行基于字符串的搜索。

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

            BingMapsTask bingMapsTask = new BingMapsTask();

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

            bingMapsTask.Show();

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

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

  2. 有什么方法可以在应用程序本身中执行搜索?

4

1 回答 1

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添加此功能才能正常工作。

于 2013-06-03T08:50:45.707 回答