zoukankan      html  css  js  c++  java
  • 一直都是技术,今天来点儿文艺范儿……

          今天是31号,3月的最后一天,如果再不记点什么,一月又将过去。我们总该记录点什么,无论以什么方式,某一天静下来,看看自己曾经留下的一些印记,感觉还是很不一样的。先是生活,再是工作,记录一下这个月的点点滴滴。

          先从生活开始吧。何谓生活?很好的一个解释就是生下来,活下去。帝都的空气质量的确很不好,隔三差五的就是重度雾霾,长期居住真的可能会少活几年。尽管是这样,我们还是愿意在这里,即使是孤身一人。这时候总是会想起公司老总说的一句话,我们把这二十多岁人生最美好的一段时间选择在了帝都,总是要做出一番事业来吧!

          记得那时刚来北京找工作的时候,面了一家公司,前面都谈得挺好的,之后谈到待遇的时候,人事是这么跟我说的:之前面试你的经理反映你的情况都很好,但是我们公司有规定,鉴于你还没毕业,所以说工资的话可能比较低,但是生活肯定是没问题。我说,那是多少呢?这时,那个人事女士笑了,说2000加一点。她说可能2000块钱你生活得不会很滋润,但是你可以生存下去,接下来说了一些可以生存下去的方法。别的我没怎么在意,但是她说的滋润这个词留在了我心里,直到现在。

          这几天帝都的气温确实是回升了,一不留神,道边的花儿都开了,若不是这些花花草草,还真不知道帝都也有春天。今年北京到现在为止,还没下过一场真正的雨,或许北京下雨本来就很少见吧。记得小时候,总是盼望着过年,因为过年了可以吃糖,仅此而已。现在我们大了,发现总是不经意间,一年又过去了,过年回到家里,母亲额头的皱纹又多了几条,父亲两鬓的白发又添了几许。突然之间发现,曾经为我们撑起一片天的父亲脊梁已经弯了,曾起早贪黑养育我们的母亲动作越来越迟缓。一个电话,一句问候,父母已经喜笑颜开,足矣。看到这里,是否发现已经很长时间没给父母打电话了呢?(打一个吧,也花不了几分钟……)人生最大的憾事莫过于,树欲静而风不止,子欲养则亲不待!

          想想身边的人和事,身边某君说的一句话很有道理:不怕没你聪明的人比你努力,就怕比你聪明的人比你还努力!是啊,二十四、五岁的年纪,如果读书不跳级,不留级,现在正好应该是工作满一年。此时不努力,更待何时呢?献给和自己一样的那群人,共勉……

     =====================================================================================================

          简单的生活聊完了,还是得聊聊程序啊,谁叫咱是干这行的呢。最近发现了自身的一个问题,因为之前一直都是在MVC模式下做开发,这几天做WebForm的后台反而一下子不习惯了,很多简单的绑定都不熟练了。还是应了那句老话啊,熟能生巧。做的多了,方法自然就出来了。

          近期做了几个百度地图的应用,因为公司系统有需要,需要实现在微信中通过自身的位置,获取一定范围内的商家店铺。几经转化之后,变成了纯数学问题,我的位置(圆心)到某点的位置小于一个值(半径)就ok。主要代码的实现方式:       

    1 /// <summary>
      2     /// 经纬度坐标
      3     /// </summary>    
      4 
      5   public class Degree
      6     {
      7         public Degree(double x, double y)
      8         {
      9             X = x;
     10             Y = y;
     11         }
     12         private double x;
     13 
     14         public double X
     15         {
     16             get { return x; }
     17             set { x = value; }
     18         }
     19         private double y;
     20 
     21         public double Y
     22         {
     23             get { return y; }
     24             set { y = value; }
     25         }
     26     }
     27 
     28 
     29     public class CoordDispose
     30     {
     31         private const double EARTH_RADIUS = 6378137.0;//地球半径(米)
     32 
     33         /// <summary>
     34         /// 角度数转换为弧度公式
     35         /// </summary>
     36         /// <param name="d"></param>
     37         /// <returns></returns>
     38         private static double radians(double d)
     39         {
     40             return d * Math.PI / 180.0;
     41         }
     42 
     43         /// <summary>
     44         /// 弧度转换为角度数公式
     45         /// </summary>
     46         /// <param name="d"></param>
     47         /// <returns></returns>
     48         private static double degrees(double d)
     49         {
     50             return d * (180 / Math.PI);
     51         }
     52 
     53         /// <summary>
     54         /// 计算两个经纬度之间的直接距离
     55         /// </summary>
     56 
     57         public static double GetDistance(Degree Degree1, Degree Degree2)
     58         {
     59             double radLat1 = radians(Degree1.X);
     60             double radLat2 = radians(Degree2.X);
     61             double a = radLat1 - radLat2;
     62             double b = radians(Degree1.Y) - radians(Degree2.Y);
     63 
     64             double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) +
     65              Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2)));
     66             s = s * EARTH_RADIUS;
     67             s = Math.Round(s * 10000) / 10000;
     68             return s;
     69         }
     70 
     71         /// <summary>
     72         /// 计算两个经纬度之间的直接距离(google 算法)
     73         /// </summary>
     74         public static double GetDistanceGoogle(Degree Degree1, Degree Degree2)
     75         {
     76             double radLat1 = radians(Degree1.X);
     77             double radLng1 = radians(Degree1.Y);
     78             double radLat2 = radians(Degree2.X);
     79             double radLng2 = radians(Degree2.Y);
     80 
     81             double s = Math.Acos(Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Cos(radLng1 - radLng2) + Math.Sin(radLat1) * Math.Sin(radLat2));
     82             s = s * EARTH_RADIUS;
     83             s = Math.Round(s * 10000) / 10000;
     84             return s;
     85         }
     86 
     87         /// <summary>
     88         /// 以一个经纬度为中心计算出四个顶点
     89         /// </summary>
     90         /// <param name="distance">半径(米)</param>
     91         /// <returns></returns>
     92         public static Degree[] GetDegreeCoordinates(Degree Degree1, double distance)
     93         {
     94             double dlng = 2 * Math.Asin(Math.Sin(distance / (2 * EARTH_RADIUS)) / Math.Cos(Degree1.X));
     95             dlng = degrees(dlng);//一定转换成角度数  原PHP文章这个地方说的不清楚根本不正确 后来lz又查了很多资料终于搞定了
     96 
     97             double dlat = distance / EARTH_RADIUS;
     98             dlat = degrees(dlat);//一定转换成角度数
     99 
    100             return new Degree[] { new Degree(Math.Round(Degree1.X + dlat,6), Math.Round(Degree1.Y - dlng,6)),//left-top
    101                                   new Degree(Math.Round(Degree1.X - dlat,6), Math.Round(Degree1.Y - dlng,6)),//left-bottom
    102                                   new Degree(Math.Round(Degree1.X + dlat,6), Math.Round(Degree1.Y + dlng,6)),//right-top
    103                                   new Degree(Math.Round(Degree1.X - dlat,6), Math.Round(Degree1.Y + dlng,6)) //right-bottom
    104             };
    105 
    106         }
    107     }
    View Code

          另外也做了几个与百度地图相关的Demo,一个是根据GPS坐标,得到百度坐标,并将百度坐标在百度地图上标注出来,注意是在后台实现。在网上搜了一下百度API的接口,发现很多都是Javascript调用或者Android调用的,之后找到一个Web服务的API,通过模拟HttpRequest和HttpResponse向百度发请求,拿到百度坐标之后标注一下就是A piece of  cake了。当然如果有需要的同学,可以邮箱啊。

          还有就是通过GPS坐标拿到百度坐标的详细地理位置,类似于发出百度大厦的GPS坐标,返回百度大厦这样的详细地理位置信息,百度API上也有类似的接口。还有一个就是根据百度地图上的标注,动态的画曲线,需要的都可以交流。

           今天在写前端的时候也遇到了两个问题,记录一下,有幸看到的童鞋希望能自己写的时候留心一点。

           JQuery的查找元素我们经常会用到,例如我要找某个元素的父级元素中的某一个,只需要通过parents(...) 括号里可以添加选择器,这样就可以定位到你想要找的父级元素,不管中间有几个层级都可以找着。相反的,我们要找子级元素的时候也可以通过children(...)括号里也可以是选择器,但是值得注意的是:children只会向下找一级。意思就是如果有下面的结构:通过$("#parent").children(".children")是获取不到div元素的,因为children()只会找他的直接子级元素,也就是$("#children1")和$("#children2"),如果需要找$(".children")可以通过find()来查找。

    <div id="parent">
         <div id="children1">
                 <div class="children"></div>
         </div>
         <div id="children2"></div>
    </div>
    View Code

          还有一个问题就是被Ajax坑了,没区分大小写导致查了很长时间才找出错误,特别注意$.ajax()中的type仅为“POST”和“GET”,什么Post,post都不好使。故在此把JQuery中的几个Ajax请求给拿出来复习一下。

          $.load(url,[,data],[,callback]),局部刷新非常爽;

          $.get(url,[,data],[,callback],[,type]),Get方式的异步请求;

          $.post(url,[,data],[,callback],[,type]),Post方式向服务器提交;

          $.ajax(option),option常用参数如图:

          另外说几句题外话,也是在公司里遇到的一些情况:永远不要看不起比人的劳动成果,很多事情想起来是一回事儿,真正做起来是另外一回事儿。做人尽量谦虚点,因为你要相信,别人身上总有你没有的优点!大家都是程序员,本是同根生,相煎何太急!

          好吧,已经到愚人节了,提醒各位小心被愚啊!

  • 相关阅读:
    Keepass无法导入密钥文件
    数据库交互方式之一
    Grey encoder and decoder
    SystemVerilog 序列运算符与属性运算符
    避免int 与 pointer的隐式类型转换
    xxx.lib(xxx.obj)fatal error LNK1103: debugging information corrupt; recompile module 的解决方案
    c++ static 关键字用法
    影响中国软件开发的人(摘录)
    链接
    有助于事业发展和幸福感提升的四个约定
  • 原文地址:https://www.cnblogs.com/xsyblogs/p/3637422.html
Copyright © 2011-2022 走看看