2010年2月23日 星期二

地理資訊好站介紹

想知道Google地圖/地球的最新消息及最新運用,請參考以下網站。

Google Map/Earth觀察報@Sinica

http://gis.rchss.sinica.edu.tw/google/

這網站最近有專人付責更新,速度快又好,大家可以多去看看。

若要知道人文與地理資訊的結合運用可以參考以下網站。

G-Contents@NDHU

http://chnlnkuo.blogspot.com/

若想用地圖思考事情或用地圖看事情,可以參考以下網站。

地圖會說話

http://richter.pixnet.net/blog

以上都是我常常逛的網站與大家分享,有機會加入自己的書籤或者訂閱吧。Hot

之後有機會再紹介…

2010年2月15日 星期一

QGIS的附加元件-Google Layers Plugin for QGIS

Open GIS = Open Standrads + Open Source + Open Access

QGIS是開放源碼(Open Source )的GIS軟體、也支援許多OGC的開放標準(Open Source ),如WMS、WFS、WCS、SLD…等。在開發的資源的存取(Open Access)亦支援Open Street Map。現在透過附加元件的形式也可以支援豐富的Google Map圖資。

QGIS支援WMS的圖資來源,之前有想過將影像金字塔的圖層(Tile Service)透過程式轉成WMS,再由QGIS讀取即可。不過上網查之後,果然有人作過此事,且被Google擋IP。若自己的像金字塔的圖層服務可以這麼處理,但是Google的圖資的使用有其規範,當我們要使用Google地圖的資源,就要遵守Google的使用條約,網址http://code.google.com/intl/zh-TW/apis/maps/。若繞過使用條款規範的方式存取Google圖資不僅犯規,且會被Google拒絕取存服務(網路上有人說,也有認識的人經歷過)。基於法律上及道得上,所以我一直不想寫類似的程式。

最近一個朋友又提到這件事,於是又告訴他上面那段話。不過還是把這件事放在心理中思考。過了幾天突然想新的方法,即是使用Google Static Maps API。這樣就可以放心合法存取Google Map的豐富圖資,而不違法。但是有以下的限制:

要使用「靜態地圖 API」,必須先註冊免費的地圖 API 金鑰。「地圖 API」金鑰可讓您使用「靜態地圖 API」以及標準的「地圖 API」。

「Google 靜態地圖 API」的使用有其限制,每位檢視者每天只能要求 1000 張不同的圖片。因為此限制的配額是每個「檢視者」而不是每個「金鑰」,因此大部分的開發人員應該都不需要擔心超過其配額。此外請注意,如果要求的是相同的圖片,一般而言就只會算成一張。

如果使用者超出上述的限制,則會顯示下列圖片,以指出超出配額:

之所以要有這個限制,是為了避免有人濫用「靜態地圖 API」和 (或) 用在其他目的。此限制以後如有變更,恕不另行通知。如果您已超過 24 小時內的使用上限,或是濫用服務,則會暫時無法使用「靜態地圖 API」。如果您持續超過上限,則會遭到封鎖,無法使用「靜態地圖 API」。

資料來源:http://code.google.com/intl/zh-TW/apis/maps/documentation/staticmaps/

簡單位的說,就是每人每天可以用1000張的不重複圖,且每張圖大小的上限為640X640。在此限制內就是Google API合理的使用範圍,超過Google會停止服務。

  • 程式=>Google圖資
    不合使用規定、甚至不合法
  • 程式=>Google API=>Google圖資
    符合使用規定,遵守限制,但可以存取豐富圖資

Picture1

想通了且合法了,於是動手研究QGIS python附加元件如何撰寫,深入研究後發現並沒有想像中的難,只是我不會python的語言,請教一些高手後終於比較清楚python寫法及架構。

目前初的成果,如下圖及影片。

2010-02-15_162458

沒錯,之後安裝好就只要按一個按鈕,就下載Google Map的圖資。
之前寫的地理空間數位化流程-使用Open GIS方法,在Google Map操作的部分可以刪掉,直接載入參考的圖層後(WGS84),或者移至感興趣的經緯度座標後,再按Google Layers的按鈕即可以載入Google Map的圖資。

目前支援的Google圖資,如下

  • roadmap:標準道路圖圖片,與一般在「Google 地圖」網站中顯示的一樣。
  • mobile:行動裝置道路圖圖片,圖徵和文字字型較大,方便高解析度、小螢幕的行動裝置顯示。
  • satellite:衛星圖片。
  • terrain:實際立體模型地圖圖片,可顯示地形和植被。
  • hybrid:衛星和道路圖的混合圖片,在衛星圖片上顯示一層透明的主要街道和位置名稱。

換個突度想,這也是QGIS + Google雲端運算圖資的應用之一。而且是跨平台的應用程式存取Google的用雲端運算出來的圖資,跟一般使用網頁的方式不同。

這樣的GIS工具相信對QGIS的推廣及運用會有更大的助力,甚至想使用GIS作為研究的工具應該更容易使用,且加快研究的速度。

不過Google Layers附加元件安裝過程還是較麻煩,若能在過年剩下的時間簡化安裝程序,再將程式及安裝程序一並公開至本網站。

2010年2月13日 星期六

Web GIS與Cloud Computing

雲端運算近來很熱,到底雲端計算是什麼?由台大資工黃老師在「淺談雲端運算」指出:

「雲端運算」的概念事實上也不算新,其本質大抵承襲自「分散式運算」(Distributed Computing)以及「「網格運算」」(Grid Computing)

「雲端運算」與「網格運算」兩者都是分散式運算的延伸並沒有顯著的不同。唯獨「網格運算」著眼於整合眾多異構平台,而「雲端運算」則強調在本地端資源有限的情況下,利用網路取得遠方的運算資源。

我非常同意以上的觀點,除此之外我還認為雲端運算的可親近性較佳。當網格運算提出時,就指稱未來網格運算就像是自來水的基本設施,打開水龍頭就可以使用。現在雲端運算取代了網格運算作到這點了。當我們在使用Gmail或Google Map時就使用了雲端服務。當我使用Google App Engine及Microsoft Windows Azure開發系統時,就使用了雲端技術。當系統使用者暴增時(如果你有付錢時),自然雲端服務就會調配更多運算資訊應付。

在Web GIS的服務也是運多大量的雲端運算。

例如 Google Map 0~19的圖層的產生稱為影像金字塔圖層。也有人稱作Tile,這種服務OGC也在草擬OGC Tile Service。我認為就是用Tile一片片建成完每一層,各層建完後就成了影像金字塔。真實世界中的埃及的金字塔也是用一個個大型的磚一層一層建立。

pyramid1圖片來源

great-pyramid
圖片來源

 

2010-02-13_094303 Google / Microsoft 呈現的這些影像金字塔圖層都已經預先產生好了。若要更新全世界的影像金字塔圖層得花上不少時間,若使用雲端運算,可以減少不少的時間。尤其是地圖繪圖運算及大量小圖(tiles)IO存取的時間會大符的減少。雲端運算讓繪圖更快是一定的。比較特別是IO存取的時間,以下就加以說明。通常架構簡單速度會愈快,於是使用NAS來存放是不錯的選擇,但是提供Web GIS服務時大量檔案IO存取會讓NAS、PC甚至Server無法負荷。透過雲端的大量電腦將產生/存取小圖的IO時間大量的分散,達到快速大量服務的目的(high Scalability)。

若要自已架設雲端運算的架構可以使用Java-based的hadoop,網址如下http://hadoop.apache.org/
http://www.hadoop.tw/

有興趣的朋友可以自行研究。

在Web GIS上呈現向量的資料是很消耗頻寬及瀏覽器運算能力的事,例如台灣的鄉鎮行政區的資料大約6MB,總不能讓每個User都下載6MB的向量地圖再呈現。在網路環境下比較好的作法是將向量資料轉成圖片(tiles)再呈現。這樣多大量的資料都變成固定大小的圖片,速度快了不少。但是少了向量資料的特性,無法動態變更樣式及無段縮放大小(所以Web GIS 常用固定比例尺分層)。

Google Map最近也把影像金字塔的雲端運算運用在Google Map API上,使用GGeoXML來呈現向量資料時,Google會轉這些向量資料轉換成小圖(tiles)再呈現,這樣速度快非常多,尤其是呈現大量的多邊形,例如行政區、地籍圖…等。其運作示意圖如下。

2010-02-13_094302

天啊!Google怎麼這麼貼心呢?以前都要小心Web GIS上呈現資料的大小,現在Google都幫我們作成影像金字塔後呈現,且圖片上的圖徵透過Image Map及Json技術還是可以點選的。使用上與原本的沒有差別。真是太好用也太方便了。但是大家有沒注意到一件事,就是所以有資料都會送到Google一份,當然Google會好好的善待它,而我們也在同意使用Google Map API時就同意這件事了。Google蒐集到愈來愈多的空間資料,也可以作更多的是事。雖然Google企業文化、精神是”Don't be evil”,但是也不代表未來一直是如此,再加上駭客也一直在惡意攻擊Google(由最近Google欲退出中國的事件可看出其嚴重性),放在Google上的資料還是有可能被二次使用及作惡意用途。所以建議私人及機密的資料,別使用Google Map API的GGeoXML及其後使用雲端運算的方法來呈現資料。例如地籍圖資網路便民服務系統查詢可以將地籍資料呈現在Google Map上的作法,就得小心地避開此點。不然久而久之Google就會有全台的地籍資料、甚至政府大部分的空間資料。

透過方便使用取得雲端運算可以解決網路系統開發的許多問題。但是衍生出隱私權的問題值得再建立系統前就考量清楚。這樣會是一個比較正確的作法。

若真的不要使用Google或微軟的雲端運算及Web GIS API,當然還有其它的選擇,在Open GIS 、Hadoop都是不錯的選擇,只是需要花時間自己研究建立。另一個思考的方向是完全分散式的架構。使用OGC的標準來建立運算服務及圖資服務。例如:GIS空間運算使用Hadoop實作,再由OGC WPS(Web Processing Servic)方式提供服務。這樣使用QGIS或其它支援WPS的Client就可以使用其功能來作運算。類似這樣的方式就可以集中自己的精神作自己擅長的事,且與整個的GIS作結合,也是一個不錯的方向。

Google Map與Bing Map的外掛功能

地理資訊系統(GIS)是一個平台,最大的特色是可以加添各種圖資及功能。如Google Map及Microsoft  Bing Map的Web GIS已經提供豐富且大量的地圖、衛星圖等…資訊,漸漸地Google及Microsoft也在Web GIS上建立各種功能服務。最早開始的是Google Mapplet,讓網友可以在Google Map上面開發各種圖資及功能。例如中研院開發的各種Mapplet,裡面大部分是圖資,其中有一個是把網頁轉成地圖的工具。微軟隔了很多推出了Bing Map,最近加了許多實驗研究的新外掛功能;於是Google Map也加了官方的外掛功能。以下就稍加介紹。

Microsoft Bing Map要安裝Silverlight才能看見強化的許多功能。網址在http://www.bing.com/maps/explore/

Bing Map的使用方式是在左下角的[Map APPS]

2010-02-13_072120

Google Map由於有中文版,所以台灣的網友都很熟悉,網址在http://maps.google.com.tw。Google Map採用Gmail的方式是用Lab的方式讓大家使用及挑選。在畫面的右上角。

2010-02-13_071437

 

Google Map

首先先看Google Map提供那些功能,簡單說明一下幾個,其它就讓大家自己玩。

空照影像

這是在空中45度角拍攝的航照,可以更直覺清楚地面的狀況及建築物。當然也像Bing Map一般提供東西南北四個角度的影像。不過目前只有圖中的區域。Bing Map推出不久就有這功能,可以參考這篇這篇2010-02-13_071620

旋轉地圖

這功能還不錯,可以打破看地圖的慣性。當然Google也為了這功能重新繪製了四個方向的地圖及衛星圖,這樣才能將地圖標注在正確的方向顯示出來。果然有大量的雲端技術就可以作如此豪華的事。

2010-02-13_071914

Bing Map

Street Side Photo

這功能很好玩也很有意義,尤其於研究者。因為它不僅把照片放在正確的角度,且把不同時間的照片也放上去。照片來是用flickr的來源(果然MS與Yahoo是好朋友,一起來對抗Google帝國)。

2010-02-13_072228

過年嘛,祝大家虎年新氣象,也放上一張過年相關的照片。街景的右上是地圖及角度。左邊是此地點(西雅圖中國城)的附近的照片。這張舞獅是1975年拍攝的。

2010-02-13_072459

同一個地點不同角度,不同時間也有舞獅,時間是在2006年拍攝的。2010-02-13_083350

Destination Maps

有時要知道一個地方如何去,給我一張完整的地圖,上面再畫上路徑並不是最好的方式,例如看不懂地圖的人。如何減少過多的資訊,強化主要的資訊,即是此功能嘗試想作。首先選擇出發地及目的地,之後再挑選繪製的樣式。就可以產生手繪風格的地圖。未來類似的技術會愈來愈重要。

2010-02-13_073145

 2010-02-13_073225  

 

Today’s fornt Page

今日頭版–就是看今天報紙的頭版,簡單但是好用。網址http://www.bing.com/maps/explore/#/0hm2p7h829k1p64r

台灣蘋果日報

2010-02-13_073459

日本朝日新聞

2010-02-13_073631

多人的Web GIS比起單人的Desktop GIS,限制及開發難度都高了許多。但是漸漸地Web GIS在雲端技術的加持下突破了許多限制,甚至結合網路的特性走出自己的風格,也超越Desktop GIS的功能。Google及微軟的Web GIS可以證明此點。