根据用户指定的两个坐标点,计算这两个点的实际地理距离。核心代码如下:
//导入工具功能包BaiduMapAPI_Utils.framework#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>BMKMapPoint point1 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.404)); BMKMapPoint point2 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(38.915,115.404)); CLLocationDistance distance = BMKMetersBetweenMapPoints(point1,point2);
SDK支持判断点与圆或多边形的位置关系,判断点是否在圆内,或者是否在多边形内。
判断点与圆位置关系的示例代码如下:
//导入工具功能包BaiduMapAPI_Utils.framework#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>BOOL ptInCircle = BMKCircleContainsCoordinate(CLLocationCoordinate2DMake(39.918,116.408), CLLocationCoordinate2DMake(39.915,116.404), 1000);
判断点与多边形位置关系的示例代码如下:
//导入工具功能包BaiduMapAPI_Utils.framework#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>CLLocationCoordinate2D coords[5] = {0};coords[0].latitude = 39.965;coords[0].longitude = 116.604;coords[1].latitude = 39.865;coords[1].longitude = 116.604;coords[2].latitude = 39.865;coords[2].longitude = 116.704;coords[3].latitude = 39.905;coords[3].longitude = 116.654;coords[4].latitude = 39.965;coords[4].longitude = 116.704;BOOL ptInPolygon = BMKPolygonContainsCoordinate(CLLocationCoordinate2DMake(39.918,116.408),coords, 5);
SDK还提供获取折线上与折线外指定位置最近点的方法。核心代码如下:
//导入工具功能包BaiduMapAPI_Utils.framework#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>BMKMapPoint *polylinePoints = new BMKMapPoint[4];polylinePoints[0]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.404));polylinePoints[1]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.454));;polylinePoints[2]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.975,116.524));;polylinePoints[3]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.855,116.554));BMKMapPoint point = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.815,116.504));BMKMapPoint nearestPoint = BMKGetNearestMapPointFromPolyline(point, polylinePoints, 4);
上一篇
下一篇
本篇文章对您是否有帮助?