OGeek|极客世界-中国程序员成长平台

标题: ios - 将 MKCoordinateRegion 视为矩形会回来困扰我吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:32
标题: ios - 将 MKCoordinateRegion 视为矩形会回来困扰我吗?

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

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

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



Best Answer-推荐答案


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

或者,您可以开发自己的 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4