2

背景:我正在构建一系列大量使用地图的基于位置的应用程序。这些地图用从服务器获取的位置进行注释,我将需要数据的地图区域传递到该位置(定义为 lat/long 和 latDelta/longDelta,很像 MKCoordinateRegion,但参考坐标的位置不同) . 我正在编写一堆辅助方法/类以在管理这些区域时使用。需要与 iOS 3.x 兼容(意味着 MKMapRect 已退出)。

问题:我是否通过将 MKCoordinateRegions 视为矩形来设置自己的失败?具体来说,我将它们的几何形状视为矩形,假设它们具有与矩形基本相同的属性。我已经实现了几种反映 CGRect 辅助方法的方法,例如 MKCoordinateRegionUnion/Inset/Outset 等,它们都通过了我的单元测试,但我开始质疑我的基本假设是否正确。事实上,我知道 MKCoordinateRegion 并不表示几何矩形,而是由两组相互垂直的平行平面限定的球面区域(如果有人能以更好的术语提示我,则加分)。

我还没有遇到任何异常,但由于许多应用程序将依赖于我对几何的理解,我宁愿现在弄清楚我是否走错了路。事实上,我在学校处理 3d 径向几何的大部分课程都睡着了,这一事实并没有让我对自己的直觉是正确的充满信心。

4

1 回答 1

5

如果您考虑到赤道、本初子午线和日期线边缘情况,我认为您会没事的。

或者,您可以开发自己的 MKMapRect,如矩形。Troy Brant 有一篇很棒的博客文章,介绍了矩形是如何形成的:

http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/

虽然博客文章主要是关于缩放级别的,但那里的所有信息都可以用来构建您自己的地图 rect 库。

球面上以大圆为界的区域称为球面多边形。所以我想你可以称它们为球形矩形。

于 2010-12-13T06:33:15.757 回答