php 计算坐标点方圆周围多少米的坐标算法

//地球半径 6371千米
    const EARTH_ROUNT = 6371;

    /**
     * @param  $distance 方圆多少千米 默认500米
     */
    private function _getAround($lng,$lat,$distance=0.5)
    {
        $dlng = 2 * asin(sin($distance / (2*self::EARTH_ROUNT) ) / cos(deg2rad($lat)) );
        $dlng = rad2deg($dlng);
        $dlat = $distance/self::EARTH_ROUNT;
        $dlat = rad2deg($dlat);

       $around = array(      ‘left-top‘=>array(‘lat‘=>$lat+$dlat,‘lng‘=>$lng-$dlng),      ‘right-top‘=>array(‘lat‘=>$lat+$dlat,‘lng‘=>$lng+$dlng),      ‘left-bottom‘=>array(‘lat‘=>$lat-$dlat,‘lng‘=>$lng-$dlng),      ‘right-bottom‘=>array(‘lat‘=>$lat-$dlat,‘lng‘=>$lng+$dlng)    );var_dump($around);
    }

    public  function actionCheating()
    {

        $lng = ‘121.437799‘;
        $lat = ‘31.243208‘;
        $this->_getAround($lng,$lat);
    }

根据坐标查询验证的百度地图地址

http://api.map.baidu.com/lbsapi/getpoint/index.html

原文地址:https://www.cnblogs.com/polax/p/10755414.html

时间: 2024-08-30 06:25:18

php 计算坐标点方圆周围多少米的坐标算法的相关文章

java通过经纬度计算两个点的之间的距离的算法

通过两个点的经纬度计算距离 从google maps的脚本里扒了段代码,没准啥时会用上.大家一块看看是怎么算的.private const double EARTH_RADIUS = 6378.137;private static double rad(double d){   return d * Math.PI / 180.0;} public static double GetDistance(double lat1, double lng1, double lat2, double ln

计算两个时间相差多少年月日的sql算法

1 /****** Object: StoredProcedure [dbo].[GetDateDiff] Script Date: 11/12/2019 16:14:05 ******/ 2 SET ANSI_NULLS ON 3 GO 4 SET QUOTED_IDENTIFIER ON 5 GO 6 --计算两个时间相差多少年月日的sql算法,用于新生儿年龄计算 7 ALTER PROCEDURE [dbo].[GetDateDiff] 8 @fromDate NVARCHAR(10) ,

GMAP 判断一个坐标点是否在不规则多边形内部的算法

在gmap(地理信息管理系统)中,判断一个坐标是否在多边形内部是个经常要遇到的问题.乍听起来还挺复杂.根据W. Randolph Franklin 提出的PNPoly算法,只需区区几行代码就解决了这个问题. 假设多边形的坐标存放在一个数组里,首先我们需要取得该数组在横坐标和纵坐标的最大值和最小值,根据这四个点算出一个四边型,首先判断目标坐标点是否在这个四边型之内,如果在这个四边型之外,那可以跳过后面较为复杂的计算,直接返回false. if (p.x < minX || p.x > maxX

计算两个YUV420P像素数据的PSNR---高等算法

PSNR是最基本的视频质量评价方法.本程序中的函数可以对比两张YUV图片中亮度分量Y的PSNR.函数的代码如下所示. [cpp] view plain copy /** * Calculate PSNR between 2 YUV420P file * @param url1     Location of first Input YUV file. * @param url2     Location of another Input YUV file. * @param w        W

android 通过百度地图定位获取坐标在导航地图上面显示,坐标发生偏移

private void initMap() { // 定位初始化 mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);// 打开gps option.setCoorType("bd09ll"); //

iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标

之前对控件的尺寸和点的坐标的设置从来都是想到什么写什么,从来没有关心过顺序.然后就有了这次的血的教训!!!!! 下面是错误的截图,先设置的中心点,然后设置的宽度.程序运行就这样了,点别的没有毛病!!! 下面是解决问题之后,正确的截图!大写的CAO!一下午没干点别的!

Unity 本地坐标到世界坐标,世界坐标到本地坐标

世界=>本地 public GameObject mTarget; public GameObject mPar; //这个注意一定要是mTarget的第一父物体. // Use this for initialization void Start () { string tarStr = string.Format("mtarget local:{0},world:{1}", mTarget.transform.localPosition, mTarget.transform.

Dijkstra算法——计算一个点到其他所有点的最短路径的算法

迪杰斯特拉算法百度百科定义:传送门 迪杰斯特拉算法用来计算一个点到其他所有点的最短路径,是一种时间复杂度相对比较优秀的算法 O(n2)(相对于Floyd算法来说) 是一种单源最短路径算法,但是它并不能处理负边权的情况 板子代码: #include<cstdio> #include<iostream> #include<cstdlib> #include<iomanip> #include<cmath> #include<cstring>

高速公路坐标高程计算软件3.3版本发布

---恢复内容开始--- 高速公路坐标高程计算软件说明 高速公路坐标高程计算软件是在多年的施工放样工作中总结出来的一个很有效的程序.它是公路.铁路施工放样的好助手,可以帮你完成以前你用很大的精力和时间完成的计算.它能在工作中给予很大的方便,使你能从繁琐的计算工作中解脱出来,你只要按要求将已知的几个数据输入即可,并大大的提高了计算精确性和准确性.操作简便.实用,适合采用坐标法放样,如具有全站仪和测距仪的测量放线工作,快速准确定位. 高速公路坐标高程计算软件可以帮你完成直线.圆曲线.缓和曲线(完全缓