在我的iPad应用程序中,我使用叠加在地图上绘制一个矩形。 我有一条边的长度和长度以及矩形的长度和宽度 我还有其他一些lat / long来自数据库。
现在我怎样才能从数据库中得到哪个lat-long在矩形内?
谢谢,
答案 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查询并获得相关结果。