我想在Windows Phone 8应用中在地图上执行基于字符串的搜索。
在网上搜索我在msdn网站上得到了这个 -
BingMapsTask bingMapsTask = new BingMapsTask();
bingMapsTask.SearchTerm = "coffee";
bingMapsTask.ZoomLevel = 2;
bingMapsTask.Show();
但这会打开一个显示搜索结果的新窗口(或应用)。我有两个问题 -
如何从新窗口获取输入,我的意思是我希望当用户触摸任何搜索结果时,我的应用应该得到它的坐标。怎么做?
有没有办法在应用程序中执行搜索?
答案 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
才能实现此目的。