从项目里抽取出来的几道地图相关的数学题

 

1. 已知圆心的经纬度和半径,如何求圆周上任意一点的经纬度?

 

     分析:

             设 地球的半径为 r_earth,   r_lat, 圆的经纬度分别为: longitude, latitude; 圆的半径为 r,  我们可以算出和圆心处于同一纬度上的坐标;其实我们只要算出经度差 degree 就可以了;

              1) 圆心同一纬度所在的半径 为 r_lat = Cos (latitude) * r_earth; 

              2)  可以将半径 r 约等于 看做一个弧度,即地球上圆周上的一小段;得到以下等式:

 

                     r / (2 PI * r_lat) = radius / 2 PI

                     radius = r / r_lat; 

                     将radius 换成 degree, degree = 180* r / PI * r_lat; 

                      即: degree = 180 * Cos (latitude) * r / r_earth * PI

 

    private static LatLng toRadiusLatLng(LatLng center, double radius) {

        double radiusAngle = Math.toDegrees(radius / RADIUS_OF_EARTH_METERS)

                             / Math.cos(Math.toRadians(center.latitude));

        return new LatLng(center.latitude, center.longitude + radiusAngle);

    }

 

 

             


2. 根据地球上任意两点的经纬度计算两点间的距离?

    private static double toRadiusMeters(LatLng center, LatLng radius) {

        float[] result = new float[1];

        Location.distanceBetween(center.latitude, center.longitude, radius.latitude, radius.longitude, result);

        return result[0];

    }


3. 在地图上画轨迹图时,怎么计算代表车辆的 “图标” 的角度? 

    待续...

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值