2

我想测试 mapKit 并想制作自己的叠加层来显示我的位置的准确性。如果我有一个例如 0.005 的缩放因子,我周围的圆圈必须有哪个半径(如果我的精度是例如 500m)?

得到一些帮助会很棒:)

非常感谢。

4

3 回答 3

1

为了补充另一个答案,一分钟的纬度差异对应于一海里:这就是海里的定义方式。因此,转换为法定英里,1 海里 = 1.1508 英里,或 6076.1 英尺或 1852 米。

当你去经度时,地球周围的经度圈的大小随着纬度的增加而缩小,正如前面的答案所指出的那样。正确的因素是

1 minute of longitude = (1852 meters)*cos(theta),

其中theta是纬度。

当然,地球不是一个完美的球体,但上面的简单计算永远不会超过 1%。

于 2009-12-28T21:39:25.323 回答
1

查看 的文档MKCoordinateSpan,它是地图region属性的一部分。一个纬度总是大约。111 公里,因此将单位转换latitudeDelta为米,然后转换为每像素的米应该很容易。对于经度值,它并不那么容易,因为一个经度所覆盖的距离在 111 公里(赤道)和 0 公里(两极)之间变化。

于 2009-12-27T13:01:57.677 回答
1

我获得每像素米的方法:

MKMapView *mapView = ...;
CLLocationCoordinate2D coordinate = ...;

MKMapRect mapRect = mapView.visibleMapRect;
CLLocationDistance metersPerMapPoint = MKMetersPerMapPointAtLatitude(coordinate.latitude);

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
于 2015-03-19T00:16:16.397 回答