我想找到角落的地理位置
左上角
右上方
左下角
右下角
MapControl提供的信息是
中心(地质点)
ZoomLevel(双倍最小值:1,最大值:20)
实际高度(双)
实际宽度(双)
根据这些信息我能找到角落吗?
我在想这样的事:

double HalfHeight = Map.ActualHeight / 2;
double HalfWidth = Map.ActualWidth / 2;

这意味着Center地质点位于HalfWdidth(X)和HalfHeight(Y)这对我有帮助吗?
编辑:我的问题与前面提到的this问题非常相似,但它只给出左上角和右下角基于这个问题的公认答案(由rbrundritt提供),我还完成了另外两个问题,并将它们包装在扩展中,检查下面的答案。谢谢你rbrundritt。

最佳答案

public static class MapExtensions
{
    private static Geopoint GetCorner(this MapControl Map, double x, double y, bool top)
    {
        Geopoint corner = null;

        try
        {
            Map.GetLocationFromOffset(new Point(x, y), out corner);
        }
        catch
        {
            Geopoint position = new Geopoint(new BasicGeoposition()
            {
                Latitude = top ? 85 : -85,
                Longitude = 0
            });

            Point point;
            Map.GetOffsetFromLocation(position, out point);
            Map.GetLocationFromOffset(new Point(0, point.Y), out corner);
        }

        return corner;
    }

    public static Geopoint GetTopLeftCorner(this MapControl Map)
    {
        return Map.GetCorner(0, 0, true);
    }

    public static Geopoint GetBottomLeftCorner(this MapControl Map)
    {
        return Map.GetCorner(0, Map.ActualHeight, false);
    }

    public static Geopoint GetTopRightCorner(this MapControl Map)
    {
        return Map.GetCorner(Map.ActualWidth, 0, true);
    }

    public static Geopoint GetBottomRightCorner(this MapControl Map)
    {
        return Map.GetCorner(Map.ActualWidth, Map.ActualHeight, false);
    }
}

关于c# - Windows Phone 8.1获取 map 角Geopoint,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31662690/

10-10 21:31