睡夢中解決的難題

昨天客戶一個地圖投影問題找到我,說半天也沒管用,把資料發過來我看了一下也覺得奇怪,但我直接把資料投影轉換成經緯度投影就能和他們給的經緯度資料套合上,但客戶是希望把經緯度資料轉到目標投影一起套合上的。

琢磨了一下肯定是目標投影有問題,那個投影下經線不可能是垂直直線,然後直接用原始碼查出目標投影,但應用程式顯示出來的卻是另一個,找到了正確的投影問題就好辦了,告訴客戶重新設定成正確的投影,然後把經緯度資料按正確的投影轉換過去,問題就迎刃而解了。

但顯然程式是有問題的,需要解決,查了一下可能之前的版本墨卡託投影直接命名,後來又加上了英文,程式恰恰又直接用投影名相等作為判斷條件的,結果這兩個顯然不相等,然後系統就胡亂給了個投影顯示出來,我反變換系統並沒有用顯示出來的投影而是用了系統正確的投影資訊,自然轉換沒問題,而客戶那邊按顯示出來的錯誤投影資訊進行轉換,結果自然是錯的。然後就定位問題所在,也找到了問題出在哪了,搗鼓了半天本以為很好解決的到下班也沒弄好。家裡有事到點就下班回家了。

夜裡做夢在改這個問題,換了個思路不去比對投影名稱,而是把判斷條件換成投影的列舉名,這樣效率提高還不怕改名,問題這樣應該就解決了,然後就醒了又琢磨了一遍應該是這樣的。又是夢裡解決了一個問題。

想當年在封閉開發的時候,也是一個程式問題,折騰了好幾天沒找到解決辦法,有一天晚上睡夢中忽然開竅了,找到解決辦法了,然後高興醒了就立馬爬起來到電腦前按夢裡的思路一步一步寫下程式碼,最後還真把問題解決了。日有所思夜有所夢,但在夢裡能把問題給解決了印象深刻記得的就這兩次。