GeocodeQuery - GeoCoordinate属性

时间:2013-10-02 14:21:42

标签: windows-phone-8

有人可以解释一下这些代码之间的区别吗? GeoCoordinate属性在GeocodeQuery中的作用是什么?

#1 - 仅适用于互联网连接

GeocodeQuery geocodeQuery = new GeocodeQuery();
geocodeQuery.GeoCoordinate = new GeoCoordinate();
geocodeQuery.SearchTerm = "London";

IList<MapLocation> locations = await geocodeQuery.GetMapLocationsAsync();

#2 - 没有互联网连接

// my location
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracy = PositionAccuracy.High;

Geoposition position = await geolocator.GetGeopositionAsync();

// geocode query
GeocodeQuery geocodeQuery = new GeocodeQuery();

geocodeQuery.GeoCoordinate = position.Coordinate.ToGeoCoordinate();
geocodeQuery.SearchTerm = "London";

IList<MapLocation> locations = await geocodeQuery.GetMapLocationsAsync();

1 个答案:

答案 0 :(得分:1)

GeoCoordinate属性是查询居中的位置。

GeocodeQuery将在指定位置附近找到位置。

假设如果您未指定位置,则会发出网络请求以尝试识别您的位置。 (可能通过反向IP查找或尝试根据公共WiFi热点数据获取当前位置。)
这是基于如果没有指定位置则回退到使用当前位置的查询。

另请注意,如果用户未下载本地(到查询中心/地理坐标)地图数据,那么我也希望在该场景中也需要网络请求。
另请注意,某些地图数据将被缓存,这可能会影响您对此的测试。