小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ajax支持的Google地圖Mashup教程(3)

 guoxi022 2007-06-14

Ajax支持的Google地圖Mashup教程(3)

作者: ,  出處:Dev2Dev, 責(zé)任編輯: 葉江, 
2007-06-13 14:59
  本文中將使用工具輕松構(gòu)建終極的Hello World mashup:Google地圖mashup……
 

  Google 地圖 API

  Google地圖和 Yahoo!地圖(我們不會進(jìn)一步討論Yahoo!)均創(chuàng)建了可公開訪問的JavaScript API,用于免費(fèi)將地圖嵌入隨機(jī)的Web 站點。這形成了小規(guī)模的mashup Web 應(yīng)用程序集,它們使用這些API來標(biāo)繪地理位置,從芝加哥的 犯罪地點到全世界的AP 新聞發(fā)生地。 這種流行的模式是查詢針對一組地址的服務(wù),然后使用Google Map API映射這些地址,這也是我構(gòu)建mashup所使用的方法。您會看到,這種實現(xiàn)方法簡單直白,但是有兩件事需要注意。

  首先,瀏覽器的跨域安全功能似乎不利于用JavaScript 在瀏覽器中實現(xiàn)Google 地圖 mashup。這是由于用戶必須導(dǎo)航到托管REST 服務(wù)的網(wǎng)絡(luò)域,該服務(wù)會生成一個地址列表。在該網(wǎng)絡(luò)域中,將不允許瀏覽器請求http://maps.google.com 。Google 在其JavaScript 庫中實現(xiàn)了一種解決方案,重載對于google.com 腳本的資源請求,以便將數(shù)據(jù)注入到瀏覽器中。

  第二件事不是技術(shù)問題,而是商業(yè)問題。Google 擁有映射數(shù)據(jù)和API ,保留定義 服務(wù)條款的權(quán)利,Google 限制每個Web 站點的免費(fèi)服務(wù)為每天50,000 請求。如果這是個問題,那么 付費(fèi)服務(wù) 是沒有限制的。為了實施這種使用策略,每個Web 站點都有一個惟一的API密鑰,必須將其配置為可追蹤站點的使用情況。獲得該密鑰是免費(fèi)的,而且簡單容易, 然后在HTML 頁面的腳本源塊中可以對它進(jìn)行配置,如下所示(為簡潔起見,截斷了密鑰):

<script
  src="http://maps.google.com/maps?key=ABQIAAAAT"
  type="text/javascript">
</script>

  從 REST 數(shù)據(jù)服務(wù)檢索地理位置

  既然已經(jīng)具備了開發(fā)所用的工具箱,那么就該開始實現(xiàn)Ajax 支持的Google 地圖mashup 了。本節(jié)將逐步介紹如何構(gòu)造一個REST 服務(wù),該服務(wù)通過地址指示位置。在下一小節(jié)中,我們將把REST 服務(wù)連接到Google 地圖來創(chuàng)建mashup。

  關(guān)于 REST 服務(wù),要說的第一點是它很簡單。本教程的內(nèi)容和演示可以作為構(gòu)建更復(fù)雜的mashup 的起點。因此,其中的 Hello World mashup 盡可能簡單而去掉復(fù)雜性。為此, REST 服務(wù)是一個靜態(tài)服務(wù):位置是硬編碼到HTML 頁面中的。盡管這看似不靈活,但用一個動態(tài)服務(wù)很容易就可以代替整個方法。精通JSP、PHP或 Ruby on Rails 的開發(fā)人員可以用從數(shù)據(jù)庫、Web 服務(wù)或其他技術(shù)中尋找方法來代替靜態(tài)的HTML 服務(wù)。

  REST 服務(wù)是在示例的getD2DSites.html 中實現(xiàn)的。請看一下這個文件,您會發(fā)現(xiàn)它只是JSON 格式的地址對象的序列化JavaScript 數(shù)組:

{"locations":  
{"location":[          
        {"id":  "WashingtonDC",                
         "city": "Washington DC",                      
         "location": "Hilton Hotel, Tysons Corner",
         "address": "7920 Jones Branch Drive",
         "date": "May 2nd, 2007"               
        },
        {"id":  "NYC",                 
         "city": "New York City",                      
         "location": "Grand Hyatt New York",
         "address": "109 East 42nd Street, NY 10017",
         "date": "May 3rd, 2007"               
        },
        etc...

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多