今天是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 }
另外也做了幾個與百度地圖相關的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>
還有一個問題就是被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常用參數如圖:



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