全部服务产品
开发者频道
定价
登录
距离计算
下载开发文档
两点距离计算

根据用户指定的两个坐标点,计算这两个点的实际地理距离。核心代码如下:

//导入工具功能包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);

上一篇

坐标转换

下一篇

收藏夹

本篇文章对您是否有帮助?