比较纬度和经度

时间:2011-09-28 06:15:50

标签: ipad map ios-4.2 latitude-longitude

在我的iPad应用程序中,我使用叠加在地图上绘制一个矩形。 我有一条边的长度和长度以及矩形的长度和宽度 我还有其他一些lat / long来自数据库。

现在我怎样才能从数据库中得到哪个lat-long在矩形内?

谢谢,

3 个答案:

答案 0 :(得分:3)

解决。

首先使用此方法将四个latlons转换为point:

CGPoint point = [mapView convertCoordinate:location toPointToView:overlayView];

然后你必须申请method of point in poly

答案 1 :(得分:2)

你可以计算距离,如果距离大于当前的Lat-Long,那么它就在外面,否则就在圆圈内。您可以使用以下行计算距离。

CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];

CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];

NSLog(@"Distance i meters: %f", [location1 getDistanceFrom:location2]);

[location1 release];

[location2 release];

答案 2 :(得分:0)

试试这个

请使用以下代码获取lat和long for touch point。

CGRect r = mapView.bounds;

    float longitudePercent = overlay.point.x / r.size.width;
    float latitudePercent = overlay.point.y / r.size.height;

    CLLocationCoordinate2D coord = mapView.centerCoordinate;
    MKCoordinateSpan span = mapView.region.span;

    float lat = coord.latitude + (span.latitudeDelta/2);
    float lon = coord.longitude - (span.longitudeDelta/2);

只需在overlay.point.x和overlay.point.y中添加矩形的长度和宽度,然后获取其他纬度和长度。

获取所有4个lat和long之后,在数据库上进行sql查询并获得相关结果。