php 高德地图计算距离,距离/面积计算-地图计算工具-开发指南-iOS 地图SDK | 高德地图API...

iOS 地图 SDK中的 MAGeometry.h 中提供了很多计算方法,包括:计算两点距离、矩形面积、坐标转换、判断点是否圆或者多边形内等等,下面做简单介绍,具体的接口可参考:MAGeometry.h。

1、两点间的直线距离计算

根据用户指定的两个经纬度坐标点,计算这两个点间的直线距离,单位为米。代码如下:

//1.将两个经纬度点转成投影点

MAMapPoint point1 = MAMapPointForCoordinate(CLLocationCoordinate2DMake(39.989612,116.480972));

MAMapPoint point2 = MAMapPointForCoordinate(CLLocationCoordinate2DMake(39.990347,116.480441));

//2.计算距离

CLLocationDistance distance = MAMetersBetweenMapPoints(point1,point2);

//1.将两个经纬度点转成投影点

let point1 = MAMapPointForCoordinate(CLLocationCoordinate2D(latitude: 39.989612, longitude: 116.480972))

let point2 = MAMapPointForCoordinate(CLLocationCoordinate2D(latitude: 39.990347, longitude: 116.480441))

//2.计算距离

let distance = MAMetersBetweenMapPoints(point1,point2);

2、判断点是否在圆形内

判断一个点是否在圆内,类似于地理围栏功能,返回YES,表示进入围栏,返回NO,表示离开围栏。

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(39.989612,116.480972);

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(39.990347,116.480441);

BOOL isContains = MACircleContainsCoordinate(location, center, 200);

let location = CLLocationCoordinate2D(latitude: 39.989612, longitude: 116.480972)

let center = CLLocationCoordinate2D(latitude: 39.990347, longitude: 116.480441)

let isContain = MACircleContainsCoordinate(location, center, 200)

3、判断点是否在可视范围内

判断一个用户指定的annotation是否在可视区域。代码如下:

//1.将annotation的经纬度点转成投影点

MAMapPoint point = MAMapPointForCoordinate(annotation.coordinate);

//2.判断该点是否在地图可视范围

BOOL isContains = MAMapRectContainsPoint(mapview.visibleMapRect, point);

//1.将annotation的经纬度点转成投影点

let point = MAMapPointForCoordinate(annotation.centerCoordinate)

//2.判断该点是否在地图可视范围

let isContain = MAMapRectContainsPoint(mapView.visibleMapRect, point)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值