首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MapBox get visibleCoordinateBounds in a CGRect

MapBox get visibleCoordinateBounds in a CGRect
EN

Stack Overflow用户
提问于 2019-07-15 15:18:18
回答 1查看 389关注 0票数 0

我正在开发一个带有iOS地图的MapBox应用程序。

我正在显示MGLAnnotations,但我只想创建在当前时刻可以在屏幕上看到的注释。

问题是:我的屏幕底部有一个UIView,所以我用mapView.visibleCoordinateBounds函数得到的边界并不准确,因为我看不到地图的底部。

我不能仅仅调整我的地图的大小,因为我提到的底部视图没有覆盖整个地图,我们仍然可以看到底部视图后面的部分地图。

所以我的问题是,我怎样才能在我的visibleCoordinateBounds上获得CGRect的CGRect呢?

我的当前解决方案只适用于整个地图视图边界,而不适用于我想要显示注释的CGRect区域的边界:

代码语言:javascript
运行
复制
if ((mapView.visibleCoordinateBounds.sw).latitude...(mapView.visibleCoordinateBounds.ne).latitude ~= latX && (mapView.visibleCoordinateBounds.sw).longitude...(mapView.visibleCoordinateBounds.ne).longitude ~= lngY) {
    print("VISIBLE")
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 08:40:20

我终于找到了办法。

我只是计算隐藏在底部视图中的地图视图的百分比,然后将这个数字减去南纬:

代码语言:javascript
运行
复制
var valueToRemoveBottom = (mapView.visibleCoordinateBounds.ne).latitude - (mapView.visibleCoordinateBounds.sw).latitude
let percentageUsedByBottom = (bottomView.frame.height * 100 / mapView.frame.height) / 100
valueToRemoveBottom = valueToRemoveBottom * Double(percentageUsedByBottom)

if (((mapView.visibleCoordinateBounds.sw).latitude + valueToRemoveBottom)...((mapView.visibleCoordinateBounds.ne).latitude) ~= latX && (mapView.visibleCoordinateBounds.sw).longitude...(mapView.visibleCoordinateBounds.ne).longitude ~= lngY) {
// visible
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57042731

复制
相关文章

相似问题

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