iphone - 将MKMapPoint距离转换为米

Pau*_*aul 2 iphone google-maps objective-c mapkit

假设我有一个由4个CLLocationCoordinate2D点组成的正方形,它们位于lat,lon,我想找到以米为单位的正方形区域.我将CLLocationCoordinate2D点转换为MKMapPoints,并在XY空间中找到该区域.但是,我找到的区域是MKMapPoint的单位,它不直接转换为米.如何将MKMapPoint-space中的这个区域翻译成米?

小智 8

MapKit函数MKMetersBetweenMapPoints使这更容易.

例如,如果要获取当前显示区域的区域:

MKMapPoint mpTopLeft = mapView.visibleMapRect.origin;

MKMapPoint mpTopRight = MKMapPointMake(
    mapView.visibleMapRect.origin.x + mapView.visibleMapRect.size.width, 
    mapView.visibleMapRect.origin.y);

MKMapPoint mpBottomRight = MKMapPointMake(
    mapView.visibleMapRect.origin.x + mapView.visibleMapRect.size.width, 
    mapView.visibleMapRect.origin.y + mapView.visibleMapRect.size.height);

CLLocationDistance hDist = MKMetersBetweenMapPoints(mpTopLeft, mpTopRight);
CLLocationDistance vDist = MKMetersBetweenMapPoints(mpTopRight, mpBottomRight);

double vmrArea = hDist * vDist;
Run Code Online (Sandbox Code Playgroud)

该文件指出该功能"考虑了地球的曲率".