国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Google Map API使用詳解(十九)——實現(xiàn)Google Map本地搜索框(上)

1、 使用Google Map API中的GMap2類的控件

在提到地圖上的默認控件和GMap2的設置項的時候,我都提過谷歌地圖的本地搜索欄控件,要在地圖上加上這個控件其實很簡單,不需要調(diào)用GMap2.addControl(),只需要一句話:

map.enableGoogleBar();

這樣就可以在地圖的左下角加上這個搜索欄了,并且替換掉了原來的谷歌Logo的圖片。目前用這個搜索欄可以搜索兩種類型的數(shù)據(jù):

1)地名;

2)谷歌提供的商業(yè)數(shù)據(jù),比如餐館。默認是在當前顯示的地圖范圍內(nèi)搜索;具體的搜索結(jié)果是上面的哪種類型由你輸入的關(guān)鍵字決定,沒有什么特別的方法。搜索返回結(jié)果后會自動在地圖上加上所有結(jié)果的標記,同時會用DOM形式顯示這個搜索結(jié)果,至于DOM會是什么樣的形式展現(xiàn),接著看就知道了。

定制這個搜索欄對應的類是GGoogleBarOptions,沒有構(gòu)造函數(shù),對應一個對象變量,使用方式類似于使用GMapOptions定制谷歌地圖,不過GGoogleBarOptions是作為GMapOptions里的一項在創(chuàng)建GMap2對象的時候使用。如果你了解過Google AJAX Search API的話,你對下面這些設置項會很熟悉,因為,這個本地搜索欄就是對AJAX Search中的GLocalSearchControl的一個封裝。

先看幾個基本的設置項:

1)  showOnLoad

這個是boolean類型的項,決定加載完成后搜索欄的顯示狀態(tài),默認是false,意思是搜索欄是閉合的,不顯示輸入框,如果你想提醒用戶這里有個輸入框可以搜索,可以把這一項設成true,即{showOnLoad:true};

2)  linkTarget

簡單的說,這個就是搜索結(jié)果里每一條記錄對應linktarget屬性值,四個可選值,默認是等價于target="blank_"G_GOOGLEBAR_LINK_TARGET,其他還有parent, self, top這幾項,準確的參數(shù)我就不列了,開發(fā)文檔里有。不過這一項基本用不著,不用設置;

3)  resultList

用來指定搜索結(jié)果的DOM顯示樣式,默認是用列表的方式顯示(G_GOOGLEBAR_RESULT_LIST_INLINE),還有一種是添加一對方向箭頭讓你逐個翻閱,就像右邊的地圖里顯示的那樣。如果你的地圖空間比較小的話可以用后一種,設定{resultList:G_GOOGLEBAR_RESULT_LIST_SUPPRESS};

4)  suppressInitialResultSelection

這個用來指定搜索完成后是否自動選中第一個搜索結(jié)果并且打開它的信息窗口,默認是false,就是打開第一條記錄的信息窗口,不需要的話就指定{suppressInitialResultSelection:true};

5)  suppressZoomToBounds

按照文檔的說法,這個用來設定搜索完成后是否需要地圖自動縮放移到來完整顯示所有的標記點,默認是false,不縮放的,不過我在試用時發(fā)現(xiàn)不管搜索結(jié)果如何,地圖都不會縮放。所以,暫時忽略這一項。

6)  searchFormHint

這個在文檔里沒有列出來,但是也可以使用,用來設定輸入框處于非激活狀態(tài)時的提示語,默認的是搜索地圖,你也可以設成你自己的提示語,比如:{searchFormHint:"hi,在這里可以直接搜索地圖"}

再來看幾個用來設定搜索操作時的回調(diào)函數(shù),類似于事件監(jiān)聽,這幾個可以做很多文章:

1)  onIdleCallback

這個在搜索結(jié)果被清除的時候調(diào)用,也就是在你點擊搜索結(jié)果上的清除結(jié)果這個鏈接后,是不是在本次搜索結(jié)果返回并且自動清除上一次搜索結(jié)果后調(diào)用我還不確定,看開發(fā)文檔似乎有這個意思。

2)  onSearchCompleteCallback

在已經(jīng)得到搜索結(jié)果但是還沒有添加到地圖上的時候調(diào)用,會傳遞一個GlocalSearch對象作為參數(shù),GlocalSearchGoogle AJAX Search API里定義的一個類,想了解的先去看文檔吧,我就不多說了。

3)  onGenerateMarkerHtmlCallback

在打開一條搜索記錄的信息窗口前會被調(diào)用,傳入marker, html, result三個參數(shù),分別對應這條記錄在地圖上的標記(GMarker)、填充信息窗口的html字符串、對應的搜索結(jié)果(GlocalResult)。這里定義的回調(diào)方法必須返回一個DOM對象,用在打開的信息窗口中。所以,通過這一項的設置,你就可以更改搜索結(jié)果的信息窗口里的默認內(nèi)容了。右邊的地圖里就把默認的信息窗口內(nèi)容換了,去掉了從這里來、到這里去的鏈接,加上了一個靜態(tài)地圖。

4)  onMarkersSetCallback

這個在所有的結(jié)果標記都已經(jīng)創(chuàng)建但還沒有添加到 地圖之前調(diào)用,傳入的參數(shù)是一個搜索結(jié)果的數(shù)組results,數(shù)組里的每一項對應一條搜索記錄,包括latLng, marker, result,對應結(jié)果的坐標GLatLng、標記GMarker、結(jié)果記錄GlocalResult。這個時候結(jié)果的顯示列表已經(jīng)創(chuàng)建完成了,所以,如果你想修 改這個現(xiàn)實結(jié)果不妨試試這個設置項。
   (待續(xù))

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Google map顯示錯誤的解決方法
javascript – Angular Js和google maps API ngGeolocation
google map與 ArcGIS地圖的互聯(lián)互通
如何在網(wǎng)頁中加入google地圖并標識具體位置
google map 應用學習網(wǎng)站 - JavaScript - web - JavaEye論壇
Google Maps Api介紹與基礎操作 | 幼學筆記
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服