【问题标题】:bing maps how to get the not share square of 2 rectangle boundaries?bing地图如何获得2个矩形边界的不共享正方形?
【发布时间】:2013-09-03 10:34:49
【问题描述】:

我正在使用 bing 地图,我想查询我的数据库以返回地图边界内的所有值,所以每次地图移动时,我都想再次查询它。 为了提高效率,我只想查询之前没有查询过的边界。

所以我得到了前一个边界和当前边界,并想得到前一个和当前矩形之间的非共享矩形的正方形边界(当前边界的非共享矩形)。

例如,如果我将地图向右移动 5 厘米并向上移动 2 厘米,我将收到一个 5 厘米 2 厘米矩形的新 LocationRect(未共享)。

我有地图边界:

LocationRect currentBounds = map.Bounds;

当我移动地图时,我会得到一个新的边界,但在我保存之前的边界之前:

previousBounds = currentBounds;

我想获得我移动到的新位置(只有新的,而不是整个 currentBounds)。

所以我想做这样的事情:

LocationRect newMapBounds = currentBounds.NotSharedBounds(previousBounds);

但是我该如何检查呢?我看到有一个 Intersects 的方法,但是它返回 bool,我需要获取新的 LocationRect...

我会非常感谢帮手:)

【问题讨论】:

    标签: windows-store-apps bing-maps


    【解决方案1】:

    如果我理解正确,您有蓝色矩形 (ABCD),当您移动地图时 你有红色矩形(EHGF)并且你知道它们的顶点坐标 e 因此,非公共空间为您创建了 3 个新矩形:绿色黄色和黑色。

    您需要这 3 个矩形的坐标才能查询您的数据,换句话说,您需要对 DB 执行三个查询才能获得蓝色和红色矩形的非公共空间。

    在开始计算之前,您需要处理红色和蓝色矩形的场景:

    1. 矩形重合。

    2. 图中场景

    3. 他们根本没有公共空间。

    例如GREEN矩形的顶点坐标是(第二种情况):

    T(x) = E(x), T(y) = D(y)

    F 是红色和绿色矩形的共同点

    N(x) = B(x) , N(y) = G(y)

    F 是蓝色和绿色矩形的共同点

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      相关资源
      最近更新 更多