gpt4 book ai didi

objective-c - MKMapView 设置区域 : crashes at edge of world

转载 作者:太空狗 更新时间:2023-10-30 03:49:57 25 4
gpt4 key购买 nike

我正在使用此代码设置 MKMapView 的区域,使其以 pin 为中心并缩放以显示大约 10 公里的区域。

CLLocationAccuracy accuracy = kCLLocationAccuracyKilometer;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(pin.coordinate, accuracy * 10.0f, accuracy * 10.0f);
[self.mapSubView setRegion:region animated:NO];

当使用纬度 -90、经度 -58.359001159667969 的引脚坐标运行代码时,生成的 region 如下所示:

绘制mapSubView时发生崩溃:-

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region <center:-90.00000000, -58.35900116 span:+0.08953039, +1462142065660629.00000000>'

我第一次尝试解决这个问题是检查“边缘”纬度/经度(-90、+90、-180、+180),这解决了这个问题。但是,如果纬度更改为 -89.99999,问题就会再次出现。

我猜这是由于纬度为 -90 和/或区域跨度的经度增量太大导致该区域实际上“脱离了这个世界”:p

任何关于如何在任何坐标处以图钉为中心定位 map ,显示约 10 公里的区域,而不会发生崩溃的任何建议,我们将不胜感激。

最佳答案

@supp-f 回答正确

Swift 3 解决方案:

func safeSetRegion(_ region: MKCoordinateRegion) {
let myRegion = self.mapView.regionThatFits(region)
if !(myRegion.span.latitudeDelta.isNaN || myRegion.span.longitudeDelta.isNaN) {
self.mapView.setRegion(myRegion, animated: true)
}
}

关于objective-c - MKMapView 设置区域 : crashes at edge of world,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com