There isn't a built in method for this, however it can be done fairly easily. Here is a bit of code for this which I pulled from the Microsoft Maps Spatial Toolbox project:
public static GeoboundingBox GetBounds(this MapControl map)
{
Geopoint topLeft = null;
try
{
map.GetLocationFromOffset(new Windows.Foundation.Point(0, 0), out topLeft);
}
catch
{
var topOfMap = new Geopoint(new BasicGeoposition()
{
Latitude = 85,
Longitude = 0
});
Windows.Foundation.Point topPoint;
map.GetOffsetFromLocation(topOfMap, out topPoint);
map.GetLocationFromOffset(new Windows.Foundation.Point(0, topPoint.Y), out topLeft);
}
Geopoint bottomRight = null;
try
{
map.GetLocationFromOffset(new Windows.Foundation.Point(map.ActualWidth, map.ActualHeight), out bottomRight);
}
catch
{
var bottomOfMap = new Geopoint(new BasicGeoposition()
{
Latitude = -85,
Longitude = 0
});
Windows.Foundation.Point bottomPoint;
map.GetOffsetFromLocation(bottomOfMap, out bottomPoint);
map.GetLocationFromOffset(new Windows.Foundation.Point(0, bottomPoint.Y), out bottomRight);
}
if (topLeft != null && bottomRight != null)
{
return new GeoboundingBox(topLeft.Position, bottomRight.Position);
}
return null;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…