背景:我正在构建一系列大量使用 map 的基于位置的应用程序。这些 map 用从服务器获取的位置进行注释,我将需要数据的 map 区域传递到该位置(定义为 lat/long 和 latDelta/longDelta,很像 MKCoordinateRegion,但引用坐标的位置不同) .我正在编写一堆辅助方法/类以在管理这些区域时使用。需要与 iOS 3.x 兼容(意味着 MKMapRect 已淘汰)。
问题:我是否通过将 MKCoordinateRegions 视为矩形来设置自己的失败?具体来说,我将它们的几何形状视为矩形,假设它们具有与矩形基本相同的属性。我已经实现了几种反射(reflect) CGRect 辅助方法的方法,例如 MKCoordinateRegionUnion/Inset/Outset 等,它们都通过了我的单元测试,但我开始质疑我的基本假设是否正确。事实上,我知道 MKCoordinateRegion 并不表示几何矩形,而是由两组相互垂直的平行平面限定的球面区域(如果有人能以更好的术语提示我,则加分)。
我还没有遇到任何异常,但由于许多应用程序将依赖于我对几何的理解,我宁愿现在弄清楚我是否走错了路。事实上,我在学校处理 3D 径向几何的大部分类(class)都睡过,这让我对自己的直觉是正确的没有多大信心。
Best Answer-推荐答案 strong>
如果你考虑到赤道、本初子午线和日期变更线的边缘情况,我认为你会没事的。
或者,您可以开发自己的 MKMapRect,如矩形。 Troy Brant 有一篇很棒的博客文章,介绍了矩形是如何形成的:
http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/
虽然博客文章主要是关于缩放级别的,但其中的所有信息都可用于构建您自己的 map rect 库。
球面上以大圆为界的区域称为球面多边形。所以我想你可以称它们为球形矩形。
关于ios - 将 MKCoordinateRegion 视为矩形会回来困扰我吗?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/4370052/
|