首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中计算地理边框?

如何在iOS中计算地理边框?
EN

Stack Overflow用户
提问于 2012-09-17 19:15:15
回答 2查看 6.7K关注 0票数 7

我想用iOS做地理包围盒的计算。它可以是无益的。

输入参数:

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

半径(以米为单位):(示例: 2000)

必需的输出:

MinLong:(示例: 41.9995495)

MinLat:(示例:−74.004901)

MaxLong:(示例: 41.0005495)

MaxLat:(示例:−73.004901)

需求:无网络呼叫

有什么想法吗?Mapkit / CoreLocation似乎不提供这种类型的东西?

还有其他我可以用的地理SDK吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 17:30:14

我认为您可以使用标准的MapKit函数:MKCoordinateRegionMakeWithDistance,这将返回一个MKCoordinateRegion,它实际上只是一个中心点(lat,lon),以及纬度和经度方向上的跨度。从纬度和经度分别添加/减去一半的跨度,您就有了所要的值。

代码语言:javascript
复制
CLLocationCoordinate2D centerCoord = CLLocationCoordinate2DMake(41.145495, −73.994901);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(centerCoord, 2000, 2000);

double latMin = region.center.latitude - .5 * startRegion.span.latitudeDelta;
double latMax = region.center.latitude + .5 * startRegion.span.latitudeDelta;
double lonMin = region.center.longitude - .5 * startRegion.span.longitudeDelta;
double lonMax = region.center.longitude + .5 * startRegion.span.longitudeDelta;

顺便说一句:这只代表小跨度的经度,按几公里的顺序排列。转到引用苹果

latitudeDelta 跨度的南北距离(以度为单位)。与纵向距离不同,纵向距离因纬度而异,一度纬度在任何时候都约为111公里(69英里)。 longitudeDelta 用于跨度的东西距离的数量(以度为单位)。经度范围跨越的公里数根据当前纬度的不同而变化。例如,经度在赤道处的距离约为111公里(69英里),但在两极则缩小到0公里。

票数 4
EN

Stack Overflow用户

发布于 2013-06-20 22:55:29

我知道我参加聚会有点晚了,但是我刚刚构建了一个类GTBoundingBox,它可能(或者不可能)有帮助:

https://github.com/wpearse/ios-geotools

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12465711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档