2

有人可以解释一下这些代码之间的区别吗?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();
4

1 回答 1

1

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

GeocodeQuery 将查找指定位置附近的位置。

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

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

于 2013-10-02T15:10:22.970 回答