关于php项目的开发回顾总结第三章

    经过前两次的封闭开发与回顾,这次我来做这个系统新添加的功能,这个功能是基于百度地图来开发的,这次学长们都走了,之前都是学长们操作Oracle数据库,这次由我们自己来操作了,面对Linux的命令行无从下手,虽然很难,但是问题就在那里,必须要解决,接下来我就说下开发的过程吧。

 

       相信大家做开发的都知道,只要与百度地图接触做web开发的话就是玩最牛x的JavaScript,这次对于系统新添加的功能涉及到了如下几点:

 

        (1)开源Chart组件 echart

        (2)百度地图的相关操作

        (3)Ajax的多层嵌套使用

 

            虽然有这三点的功能,但足足做了四五天,每天加班到凌晨三四点。

在本次封闭开发开始的时候,我们把Linux服务器带过来了,对于这个Linux不知面对命令行如何操作,只有一个办法就是百度,依靠这个解决了以下问题:

 

         (1)给Linux配置静态的ip地址

         (2)开启与关闭Oracle数据库服务与监听

 

       依靠这些,我们终于可以对数据库进行操作了,接下来就是来写逻辑功能了。我要把几千个点添加到地图上,而且这些每个点都有相应的三项得分,这就到了百度地图js与echart相结合了,要把图表显示到点的小窗的window里边,这里要注意的是给柱状图传的数据是一个数组,eg:[30,20,40] 包括对应的x轴的表示[柱1,柱2,柱3],这里只要把从数据库里的数据获取过来每个点对应就行了,但是对于后台controller处理业务逻辑甚是复杂,因为你得到不同点的数据之后还要与另外一个数据库的点信息比对,有的才一一对应赋给每个点对应的数据得分,而且这些每个点的得分有好多组,要取出这些组中的最大值。最后经过两个库中点比对,和对分数用sort()进行排序,给每个点加上了数据。

 

        百度地图的 矩形查询,圆形查询,在这里我来说下大体的思路,代码就不上传了,具体情况是这样的,圆形的话可以从百度地图获取你点击的圆心坐标以及半径大小,这时你可以根据两点间的距离公式对比就可以把数据库中的数据查询出来;矩形也是一样的获取对角两点的经纬度,判断是否在这个范围内。下边写下计算公式关于在百度地图上计算距离:

 

/**   
    * @desc 根据两点间的经纬度计算距离  
    * @param float $lat 纬度值  
    * @param float $lng 经度值  
    */   
    function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2)
    {
       $radLat1 = $lat1 * PI ()/ 180.0;   //PI()圆周率
       $radLat2 = $lat2 * PI() / 180.0;
       $a = $radLat1 - $radLat2;
       $b = ($lng1 * PI() / 180.0) - ($lng2 * PI() / 180.0);
       $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
       $s = $s * EARTH_RADIUS;
       $s = round($s * 1000);
       if ($len_type --> 1)
       {
           $s /= 1000;
       }
   return round($s, $decimal);
}

 

 

         到此,完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值