2010年4月15日 星期四

GIS Tools 說明及下載網址

Google提出許多強的大地理功能,但是如何在合法的規範下合理的使用是一個難題。之前常因為Google的功能好用而直接使用開發,但是確不一定合法。所以現在開發的功能,一定會先暸解Google的使用規範才會行動,雖然較慢但是保護自己、使用者及尊重Google的方法。

此工具預計使用Google Map API提供、Geocoding、下載影像圖資及其它功能。

以下是與這個工具有關的Google使用條款,資料由http://code.google.com/intl/zh-TW/apis/maps/faq.html網頁中截取相關部分。

我可以在非網頁應用程式中使用 Google 地圖 API 嗎?

可以,「Google 地圖 API」現在可以用在桌面應用程式,但請遵守《服務條款》的相關限制。請注意,為了讓桌面應用程式視為「公開可存取」,必須在公開可存取的網頁上提供下載該應用程式的位置。請參閱《服務條款》的7.1c 節以取得詳細資訊。

因為此程式是在非網頁中使用「Google 地圖 API」,所以要在公開的網頁上提供下載使用。在此網站中就公布此網址為http://idv.sinica.edu.tw/nungyao/GISTools.zip

我可以直接存取地圖和衛星圖片嗎?

您必須使用「Google 地圖 API」,才能使用地圖或衛星圖片 (例如建立您自己的地圖 API 或使用大量地圖方塊下載指令碼)。如果您的應用程式並非透過「Google 地圖 API」來存取地圖方塊,就會遭到封鎖。請參閱 Google 使用條款的條款 5.3 以取得詳細資料。

之後會寫到以上功能,當然會透「Google 地圖 API」,所以不會遭封鎖。

使用 Geocoder 要求時,請注意相關的使用限制。此外,請注意 Geocoder 只能用來取得在「Google 地圖 API」上顯示的位置,其他用途都會違反服務條款。您可以使用 HTTP Geocoder,在您的「Google 地圖 API」應用程式之外,為地址進行地理編碼,以便稍後使用「Google 地圖 API」來快取並顯示。不過,使用 HTTP Geocoder 取得的位置不得用於任何其他應用程式、以任何其他方式散佈或者轉售。

在GIS Tools 中有說明Geocoder處理過的資料,僅供Google Map使用。也請大家注意此點。

以下就是大家常問的問題,也一並把Google的解釋貼出來。

哪些國家/地區能夠使用地理編碼?

若要查看「Google 地圖 API」Geocoder 目前支援哪些國家/地區,請參閱此試算表,並於地理編碼下拉選單中選取「是」。每個國家/地區的地理編碼位置精確性可能不一樣,因此您可考慮使用傳回的精確性參數,判斷此資料對您的應用程式而言是否適用。請注意,如果我們和資料提供者之間的協議有所改變,能夠使用的地理編碼資料也可能有所不同。如果「Google 地圖 API」目前不支援您需要的國家/地區地理編碼,請瀏覽此清單,查詢其他地理編碼服務。

我能要求的地理編碼有數量限制嗎?

如果系統在 24 小時之內從單一 IP 位址接收到 15,000 次以上的地理編碼要求,或者從單一 IP 位址提交的地理編碼要求過於頻繁,「Google 地圖 API」Geocoder 就會回應狀態碼 620。此文章解釋如何以 PHP 來計算地理編碼的時間,並提供實用的範例程式碼。如果某 IP 位址的地理編碼用量持續過量,我們可能會永久禁止此 IP 位址使用「Google 地圖 API」Geocoder。

在 Javascript 中使用 GClientGeocoder,或在 Flash 中使用 ClientGeocoder 時,Geocoder 要求是由使用者網頁瀏覽器所發出,並根據使用者 IP 位址的配額來進行計算。換言之,即使某位使用者使用過量,也不會影響到網站的其他使用者。不過,如果多位使用者是透過單一 Proxy 來使用「Google 地圖 API」,使用的就是同一個 Proxy IP 位址的配額。

使用 HTTP Geocoder 發出 Geocoder 要求時,會以發出 HTTP 要求之系統的 IP 位址的配額來進行計算。如果您需要提交大量的地址集到 HTTP Geocoder 進行快取,以便稍後使用,則應該考慮使用 Google 地圖 API 專業版,就可以針對這種目的,有一個獨立的批次地理編碼處理配額。

您也可以用其他地理編碼服務來搭配「Google 地圖 API」Geocoder,相關服務可參考此處

為什麼 Google 地圖 API Geocoder 提供的位置與 Google 地圖不同?
API Geocoder 和「Google 地圖」Geocoder 有時候會使用不同的資料集 (視國家/地區而定)。API Geocoder 偶爾會有資料更新,因此您看到的結果也可能有所變更或改善。

Geocoder 回應的精確性 (Accuracy) 值的意義是什麼?

「精確性」的值是指進行地理編碼之圖徵的比例尺,而不是指結果有多可信、排名如何。Geocoder 接收查詢時,會試著找出最符合指定地址的圖徵。針對您查詢的區域,依照我們現有的資料量,系統可能可以精確地找到特定建築物,也可能只能找到所在的街道或行政區。如果系統只能比對到較高等級的圖徵 (例如行政區),仍會傳回經緯度,並指出該圖徵的中心點,但可能會與要求的特定位置有一點位移。「精確性」可以告訴您比對出物件的比例尺為何,您就知道該地理編碼的精準程度。如果想知道「精確性」可能值的清單以及各自代表的圖徵比例,請參見 Google 地圖 Javascript API 參考文件

內容大多了,下篇再寫如何使用。

GIS Tools安裝及使用說明

此程式安裝需要 MS .Net Framework 2.0 的環境,請先準備好。
先使用登入後Google後,至http://code.google.com/intl/zh-TW/apis/maps/signup.html

申請Google Map API Key2010-04-15_143501

取得後,請至[Settings]中儲存。

2010-04-15_143522

之後就可以使用Google 的Geocoding功能

2010-04-15_143410 

安裝方法

下載此檔案http://idv.sinica.edu.tw/nungyao/GISTools.zip
解壓縮後,請執行setup.exe即可。

CSV檔案,可由Excel轉匯出CSV檔。操作過程,請參考以下影片。