如何计算iOS中的地理边界框?

Act*_*ory 6 geolocation bounding-box ios

我想在iOS中进行地理边界框计算.它可以是aprox.

输入参数:

当前位置(例如:41.145495,-73.994901)

半径米:(例如:2000)

要求输出:

MinLong :(例如:41.9995495)

MinLat :(例如:-74.004901)

MaxLong :(例如:41.0005495)

MaxLat :(例如:-73.004901)

要求: 无网络呼叫

有任何想法吗?Mapkit/CoreLocation似乎没有提供这种类型的东西?

我可以使用的任何其他地理SDK吗?

谢谢

Thi*_*ers 5

我认为您可以使用标准 MapKit 函数:MKCooperativeRegionMakeWithDistance,这将返回一个MKCooperativeRegion,它实际上只是一个中心点(纬度,经度)以及纬度和经度方向的跨度(以度为单位)。分别从纬度和经度中添加/减去跨度的一半,即可获得所需的值。

\n\n
CLLocationCoordinate2D centerCoord = CLLocationCoordinate2DMake(41.145495, \xe2\x88\x9273.994901);\nMKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(centerCoord, 2000, 2000);\n\ndouble latMin = region.center.latitude - .5 * startRegion.span.latitudeDelta;\ndouble latMax = region.center.latitude + .5 * startRegion.span.latitudeDelta;\ndouble lonMin = region.center.longitude - .5 * startRegion.span.longitudeDelta;\ndouble lonMax = region.center.longitude + .5 * startRegion.span.longitudeDelta;\n
Run Code Online (Sandbox Code Playgroud)\n\n

顺便说一句:这仅代表小跨度的经度,大约为几公里。引用苹果的话:

\n\n
\n

latitudeDelta
\n 用于跨度的南北距离量(以度为单位)。与根据纬度而变化的纵向距离不同,一纬度始终约为 111 公里(69 英里)。

\n\n

longitudeDelta
\n 用于跨度的东西距离量(以度为单位)。经度范围跨越的公里数根据当前纬度而变化。例如,1 度经度在赤道的距离约为 111 公里(69 英里),但在两极则缩小至 0 公里。

\n
\n

  • 上述计算中startRegion的值是多少 (2认同)
  • startRegion 在哪里声明? (2认同)