經緯度轉換(換算)(papago)

這個是一個簡單的事啦. 只是 papago 只接受度分秒的方式輸入座標, 有點鳥, 因為有時要用十進位方式輸入或查詢, 所以需要做個小轉換.

其實公式不過就是這樣, 將度分秒(60進位)換成十進位, 公式很單純, 小學生也都會:

x度 y分 z秒 = x + y/60 + z/3600 度

也就是這一回事而已. 為了讓自己方便, 也讓大家方便, 乾脆做個小工具來操作好了, 注意, 是 WGS84 的格式, 若有其他格式, 請參考中研院線上轉換程式(也是線上直接算: http://webgis.sinica.edu.tw/cgi-tran/webtrans.htm)

另外也說明一下 google maps 可以接受的格式, 例如台北101的座標為: 25.033493, 121.564101, 用文字說明是

北緯 25.033493度, 東經 121.564101度,

用60進位則為

北緯 25度 2分 0.574799999999982秒, 東經 121度 33分 50.76359999997749秒

利用 google maps 的連結, 參數為 q 給定的方式, 根據這兩種格式都可以連到, 如下:
http://maps.google.com/?q=25.033493,121.564101
http://maps.google.com/?q=25 2 0.5748, 121 33 50.7636

這兩種方式, 連向的位置是完全一樣的, 當然前題是 google maps 也是用 WGS84 的格式.

sample 放到這裡: http://sample.diary.tw/18/maps.htm

另外是 google maps 無法由瀏覽地圖直接查經緯度, 可以利用這個方便一點: http://www.mygeoposition.com/

google maps 名人地圖

才寫完”時空的魅力” https://diary.tw/archives/868 這篇, google maps 又有新服務了, 與其說是新服務, 不如說是新應用.

google maps 上面, 若是多加了”名人”來加持一下, 相信會很有趣, 就是因為這樣的應用情境, 所以 google maps 把名人地圖搬上來的確很吸引人, 利用名人的推薦, google maps 的地圖空間概念, 整合起來, 可閱性的確高很多, 來看看如何操作:

首先連到: http://maps.google.com.tw/

再來連結下面有個”探索全球”:

再來就會出現”台灣台北”的這個預設地點(當然可以選其他國家的城市看看囉), 並且出現許多名人的介紹, 可以點擊看看有什麼好吃, 好玩的資訊, 右側的地圖就會出現囉, 例如隋棠, 用一個很有趣的名模標籤, 標示了一些隋棠的地圖, 這樣一來, 大家就可以按圖索驥去試看看囉.

這樣的一個應用, 真的好玩又有趣.

相關閱讀,
google news 相關新聞: http://news.google.com.tw/news/story?um=1&ned=tw&cf=all&ncl=dmqtVPOHEZmlIuMjzXBODh-Ye8XHM
Google名人地圖標記 從虛擬搬上現實 http://www.bnext.com.tw/FocusDay_2099

時空的魅力

乍看這個標題, 可能大家會覺得怪怪的. 不過其實是看這個有感而發: http://www.flickr.com/map?place_id=kfD.4gubAZwCvKcDlA , 是的, 正是 flickr on maps.

這個連結是在台灣地區的 flickr 相片, 而且選取的邏輯應該是有較多留言(comments)的, 所以相片可看性較高. 品質也較為理想. 不過這樣並不是這篇文章要說的主題, 但無論如何, 大家有空可以去看看這個 flickr 的功能, 在指定地區上來看相片.

話說, 內容的產出, 無論是相片, 文章, 影音, 若是能有更多的附加分類及檢視方式, 相信會有更多的可讀性, 再加上更多人, 更多內容的串連, 傳統利用分類(category), 標籤(tag), 關鍵字(keyword)來將內容做分類, 並加以檢視, 以提升可閱讀性, 但再回頭看一下本篇文章的標題, 我想諸位聰明的讀者就明白我想寫些什麼了.

其實, 利用地圖這樣的功能來呈現內容這件事, 現在已經是顯學了, 許多內容產出的網站, 無不多加一個地圖來增加這個功能, 讓所謂的內容描述在地圖上的資訊更能量化, 而對於圖資提供商而言, 也是很不錯的一個內容補強工具的應用行為, 所以工具和內容互補很有意思的共生狀況.

之前寫過一篇 geotagging 的文章, 在這裡: Flickr geotagging功能上線囉 https://diary.tw/archives/323 應該是剛開始上線的時候, 其實這種呈現方式真的很方便, 把圖放在地圖上, 或稱在地圖上放圖這件事.

前面所言為”空”這件事, 也就是地理資訊, 接下來要談的是”時”這件事, 因為所有的 blog 系統, 相簿, 相片檔案, 影音檔案等, 都會有時間資訊, 而細緻一點的說法, 時間資訊也有所謂的上傳時間及該內容的發生時間(這裡並不想討論這麼細), 有了時間資訊, 就可以將時間軸也納入所謂的 metadata 中了, 這個時間參數很單純, 但是呈現的方式卻很可能很複雜, 像是 google earth 有個歷史功能, 可以看以前的圖資, 只要拉動時間軸就行了, 不過時間軸比較好的呈現方式, 目前看起來是 plurk.com 的時間河流的方式, 一方面, 時間像河流一樣前進著, 一方面, 可以將多重內容的相對時間整理起來, 利用相對位置的呈現方式, 將時間這個很抽象的參數表現出來.

而接下來, 就是如何同時表現這兩項功能於單一介面上了, 其實之所以定題目為”時空的魅力”這件事, 就是要將”時”和”空”的這種參數呈現出來, “時”可以用時間軸, 而”空”可以用地圖(未來不知會不會有真的”空”, 也就是再多加上高度這樣的參數), 這樣的內容呈現方式, 相信對於了解地理, 歷史, 人文, 政治, 各式各樣的學問(或是說資訊), 都應該會有很大的幫助, 利用這樣的呈現強化方法, 把原來單調, 而各內容間沒有相關的部分, 串連起來, 對於這些內容將會有更全盤的認識及了解.

分類
.net

String.Substring的Exception

真是很常見的一個 exception, 就是利用 String.Substring 這個函數來取 Left, Mid, Right 的功能, 不過會有 exception 要自行避開的問題.

常常我們用 String.Substring(0, 5) 來當做 Left(string, 5) 的功能, 不過, 若是字串長度本身就短於 5 時, 就會發生一個 ArgumentOutOfRangeException 的 exception, 可以先參閱 msdn 的說明: http://msdn.microsoft.com/zh-tw/library/aka44szs(VS.80).aspx

當然, 我們可以容易地去避免這個問題, 利用字串長度和取出長度的比較較小的值為準, 如下寫法:

string strA = "12345678";
string strB;

strB = strA.Substring(0, strA.Length < 10 ? strA.Length : 10);
// or 
strB = strA.Substring(0, Math.Min(strA.Length, 10));

不過, 無論如何都很妙, 要來先做判斷的事, 但我們可以利用一個更簡單的方式(若不想要用判定法), 可以利用含入 Microsoft.VisualBasic 的 reference 來使用, 可以這樣寫:

strB = Microsoft.VisualBasic.Strings.Left(strA, 10);

其實就已經會處理掉那個 10 會造成參數錯誤的 exception, 而 Mid, Right 也都是一樣的作法, 當然啦, 還是可以利用原來的 String.Length 的判定方式來寫, 不過寫 c# 就是沒辦法有現成的功能, 要嘛自己寫, 要嘛就要比較一下有沒有參數超過的問題, 要嘛, 就是 Microsoft.VisualBasic.Strings 下的方法來用囉!