gpt4 book ai didi

ios - 将 MKCoordinateRegion 转换为 MKMapRect

转载 作者:IT王子 更新时间:2023-10-29 07:43:00 26 4
gpt4 key购买 nike

我的应用程序中有一个方形 MKMapView,我希望设置一个中心点和以米为单位的 View 的确切高度/宽度。

创建一个 MKCoordinateRegion 并将 map 设置到它(如在此代码中...

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(center_coord, 1000.0, 1000.0);
[self.mapView setRegion:region animated:YES];

..) 无法正常工作,因为在此处使用区域仅意味着至少显示该区域,通常比显示的区域多。


我打算使用 setVisibleMapRect:animated:方法,因为我相信这会放大到实际的 MKMapRect通过。

那么,有没有一种简单的方法可以在 MKcoordinateRegion 和 MKMapRect 之间进行转换?也许获取该区域的左上角和右下角坐标,并使用它们来制作 MKMapRect?

我在 Map Kit Functions Reference 中看不到任何有用的东西.

(使用 iOS 5、Xcode 4.2)

最佳答案

向堆中添加另一个实现:

- (MKMapRect)MKMapRectForCoordinateRegion:(MKCoordinateRegion)region
{
MKMapPoint a = MKMapPointForCoordinate(CLLocationCoordinate2DMake(
region.center.latitude + region.span.latitudeDelta / 2,
region.center.longitude - region.span.longitudeDelta / 2));
MKMapPoint b = MKMapPointForCoordinate(CLLocationCoordinate2DMake(
region.center.latitude - region.span.latitudeDelta / 2,
region.center.longitude + region.span.longitudeDelta / 2));
return MKMapRectMake(MIN(a.x,b.x), MIN(a.y,b.y), ABS(a.x-b.x), ABS(a.y-b.y));
}

注意:MKMapRectMKCoordinateRegion 之间有多种转换方式。这当然不是 MKCoordinateRegionMakeWithDistance() 的精确逆函数,但相当接近它。因此,来回转换时要小心,因为信息可能会丢失。

关于ios - 将 MKCoordinateRegion 转换为 MKMapRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270268/

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