一直都是技術,今天來點兒文藝范兒……


      今天是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常用參數如圖:

      另外說幾句題外話,也是在公司里遇到的一些情況:永遠不要看不起比人的勞動成果,很多事情想起來是一回事兒,真正做起來是另外一回事兒。做人盡量謙虛點,因為你要相信,別人身上總有你沒有的優點!大家都是程序員,本是同根生,相煎何太急!

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM