Google Map Api 谷歌地圖接口整理
一:基本知識(shí):
1. 使用谷歌地圖 API 的第一步就是要注冊(cè)一個(gè) API 密鑰,需要注重一下兩點(diǎn):
1.假如使用 API 的頁(yè)面還沒有發(fā)布,只是在本地調(diào)試,可以不用密鑰,隨便用個(gè)字符串代替就可以了。
2.API 密鑰只對(duì)網(wǎng)站目錄或者域有效。對(duì)不同域的網(wǎng)頁(yè),需要用這些域分別注冊(cè)不同的密鑰
2.頁(yè)面引用javascript文件<script
src="http://ditu.google.com/maps?file=api&hl=zh-CN&v=2&key=abcdefg"
type="text/javascript"></script>
URL(http://ditu.google.com/maps?file=api&hl=zh-CN&v=2&key=abcdefg)解析:
1.ditu.google.com:也可以用ditu.google.cn,假如你需要在地圖上顯示大陸以外的具體地圖,就用
maps.google.com
2.file=api 這個(gè)是請(qǐng)求API 的JS 文件用的,固定的格式。
3.hl=zh-CN
這個(gè)是在設(shè)定地圖上除了地圖圖片以外的諸如控件名稱、版權(quán)聲明、使用提示等所需要顯示文本的語(yǔ)言版本時(shí)候用的,假如沒有指定這個(gè)參數(shù)就使用 API
的默認(rèn)值,對(duì)itu.google.com 來說,默認(rèn)是中文簡(jiǎn)體aps.google.com 默認(rèn)的是英文。
4. v=2
這個(gè)是用來指定需要導(dǎo)入的 API 類庫(kù)的版本號(hào),可以有四種設(shè)定方式:
v=2.s 穩(wěn)定版本,更新最慢,但是最可靠;
v=2 當(dāng)前版本(只用主版本號(hào)),更新速度和可靠性介于 s 和 x 之間
v=2.x 最新版本,更新最快,包括最新功能,可能沒有當(dāng)前版本可靠;
v=2.76 指定具體版本。不建議使用。
注:目前谷歌地圖 API的主版本號(hào)是2,當(dāng)API升級(jí)時(shí)舊版本只能繼續(xù)使用一個(gè)月,所以要及時(shí)更改主版本號(hào),版本號(hào)改變會(huì)在Google
Code和Maps API討論組發(fā)布相關(guān)信息
5.key=abcdefg這個(gè)是設(shè)定你注冊(cè)的 API 密鑰.
二:核心類:
google地圖API主要包括:地圖類(GMap2)、標(biāo)記類(GMarker)、標(biāo)記選項(xiàng)類(GMarkerOptions)、折線類
(GPolyline)、經(jīng)緯度(GLatLng)、命名空間(GEvent)、坐標(biāo)類(GPoint)、控件的大小類GSize、
interface(GControl)、地圖類型類(GMapType)、地圖上面的圖標(biāo)類(GIcon)、窗體類(GInfoWindow)、窗體選 項(xiàng)類
GInfoWindowOptions)、接口GOverlay、枚舉GMapPane等等
注:標(biāo)記和折線都是地圖的覆蓋物
1.GMap2:地圖類,下面實(shí)例化一張地圖:
var map= new GMap2(container: DOM_Div,opts: Options);
構(gòu)造函數(shù)的參數(shù)如下:
參數(shù) 是否必要 值類型 定義
container 是 DOM_Div DOM元素,是個(gè)Div
opts 可選 Options 構(gòu)造函數(shù)選項(xiàng)
GMap2包含的方法:
1.設(shè)置狀態(tài)的方法:
enableDragging():設(shè)置地圖可以被拖動(dòng)。
disableDragging():禁止地圖被拖動(dòng)。
draggingEnabled():返回地圖是否能夠被拖動(dòng)的布爾值。假如能夠拖動(dòng),返回"真";否則返回"假"。
enableInfoWindow():設(shè)置地圖信息窗口可以彈出。
disableInfoWindow():禁止地圖信息窗口彈出。
infoWindowEnabled():返回地圖信息窗口是否能夠被彈出的布爾值。假如能夠彈出,返回"真";否則返回"假"。這個(gè)方法通常作為檢驗(yàn)之用。
enableDoubleClickZoom():設(shè)置可以雙擊縮放地圖,左鍵雙擊為放大,右鍵雙擊為縮小(默認(rèn))。
disableDoubleClickZoom():禁止雙擊縮放地圖,Google Earth 默認(rèn)為禁止雙擊縮放。
doubleClickZoomEnabled():返回地圖是否可以雙擊縮放的布爾值。假如能夠雙擊縮放,返回"真";
enableContinuousZoom():設(shè)置地圖可以連續(xù)平滑地縮放。
disableContinuousZoom():禁止地圖連續(xù)平滑地縮放。
continuousZoomEnabled():返回地圖是否可以連續(xù)平滑地縮放的布爾值。假如能夠連續(xù)平滑地縮放,返回"真";否則返回"假"。
enableScrollWheelZoom():設(shè)置地圖可以由鼠標(biāo)滾輪控制縮放。
disableScrollSheelZoom():禁止由鼠標(biāo)滾輪控制地圖縮放。
scrollWheelZoomEnabled():返回地圖縮放是否可以由鼠標(biāo)滾輪控制。假如能夠由鼠標(biāo)滾輪控制縮放,返回"真";否則返回"假"。
isLoaded() 返回類型布爾值 假如地圖已經(jīng)被setCenter()初始化,則返回true.
2.得到地圖的數(shù)據(jù)信息方法:
getCenter() 返回類型GLatLng 返回地圖中心點(diǎn)的地圖坐標(biāo).
getBounds() 返回類型GLatLngBounds 返回地圖視口范圍的矩形區(qū)域的地理坐標(biāo).
getBoundsZoomLevel(bounds)
返回類型數(shù)字返回顯示指定的區(qū)域需要的最適合的地圖縮放等級(jí).該縮放等級(jí)是根據(jù)當(dāng)前的地圖類型計(jì)算出來的,假如還沒有指定地圖類型,將使用地圖類型數(shù)組之中的第一項(xiàng).
getSize() 返回類型GSize 返回地圖視口的像素大小.
getZoom() 返回?cái)?shù)字 返回當(dāng)前的縮放等級(jí).
getContainer():取得地圖的容器
getCurrentMapType()得到當(dāng)前的地圖類型。注重得到的是地圖類型GMapType對(duì)象,而不是對(duì)象名稱
3.設(shè)置地圖:
setCenter(center, zoom?,
type?)將地圖視圖切換到指定的中心點(diǎn),也可以同時(shí)設(shè)置可選的地圖縮放等級(jí)和地圖類型.地圖類型必須已經(jīng)添加到地圖.
addMapType()該方法必須在構(gòu)造地圖實(shí)例之后初始化地圖狀態(tài)時(shí)立即執(zhí)行.在地圖剛剛構(gòu)造的時(shí)候調(diào)用地圖其他的方法都將會(huì)產(chǎn)生錯(cuò)誤.
panTo(center) 設(shè)置地圖的中心點(diǎn)到指定的坐標(biāo),假如該點(diǎn)已經(jīng)在當(dāng)前的視口之中,則地圖中心會(huì)滑動(dòng)到該位置.
panBy(distance) 地圖滑動(dòng)指定的像素距離.
panDirection(dx, dy) 以指定的方向滑動(dòng)地圖寬度一半的距離.+1代表右方和下方,-1代表左方和上方.
setZoom(level)設(shè)置地圖的縮放等級(jí)到給定值.
zoomIn()縮小地圖(將地圖的縮放等級(jí)增加1).
zoomOut()放大地圖(將地圖的縮放等級(jí)減少1).
savePosition()保存地圖當(dāng)前的位置和縮放等級(jí),以供以后通過returnToSavedPosition()方法來返回當(dāng)前視圖.
returnToSavedPosition()返回到上一次通過savePosition()保存的地圖視圖.
checkResize()檢查地圖容器(container)的大小是否已經(jīng)發(fā)生變化,在地圖容器DOM大小可能發(fā)生變化的時(shí)候調(diào)用該方法,以便地圖能進(jìn)行自動(dòng)調(diào)整.
setMapType(GMapType):設(shè)置地圖類型:大概有三種類型:G_NORMAL_MAP,G_SATELLITE_MAP,G_PHYSICAL_MAP,
removeMapType(GMapType)從當(dāng)前地圖上刪除一個(gè)地圖類型。
enableGoogleBar():設(shè)置地圖上的搜索欄
4.有關(guān)地圖覆蓋物的方法:
addOverlay(overlay) 在地圖上添加一個(gè)標(biāo)注并觸發(fā)地圖的addoverlay事件.
removeOverlay(overlay) 在地圖上刪除指定的標(biāo)注.假如該標(biāo)注確實(shí)在地圖上.
clearOverlays()刪除所有地圖上的標(biāo)注.
5.有關(guān)信息浮窗的方法:
openInfoWindow(point, node,
opts?)在指定的地理點(diǎn)打開一個(gè)簡(jiǎn)單的信息浮窗.滑動(dòng)地圖以保證打開的信息浮窗可見.信息浮窗的內(nèi)容以DOM節(jié)點(diǎn)的形式給定.
openInfoWindowHtml(point, html,
opts?)在指定的地理點(diǎn)打開一個(gè)簡(jiǎn)單的信息浮窗.滑動(dòng)地圖以保證打開的信息浮窗可見.信息浮窗的內(nèi)容以HTML文本的形式給定.
openInfoWindowTabs(point, tabs,
opts?)在指定的地理點(diǎn)打開一個(gè)分標(biāo)簽的信息浮窗.滑動(dòng)地圖以保證打開的信息浮窗可見.信息浮窗的內(nèi)容以DOM節(jié)點(diǎn)的形式給定.
openInfoWindowTabsHtml(point, tabs,
opts?)在指定的地理點(diǎn)打開一個(gè)分標(biāo)簽的信息浮窗.滑動(dòng)地圖以保證打開的信息浮窗可見.信息浮窗的內(nèi)容以HTML文本的形式給定.
showMapBlowup(point, opts?)在指定的地理點(diǎn)打開一個(gè)顯示指定點(diǎn)更近的視圖的信息浮窗.
closeInfoWindow()關(guān)閉當(dāng)前打開的信息浮窗.
getInfoWindow() 返回類型GInfoWindow
返回地圖的信息浮窗對(duì)象.假如當(dāng)前并不存在信息浮窗,則創(chuàng)建一個(gè)信息浮窗而不顯示它.這個(gè)操作并不被enableInfoWindow()影響.
6.控件的方法:
addControl(GControl)添加一個(gè)google地圖的控件
RemoveControl(GControl)刪除一個(gè)google地圖的控件
7. 示例:
var map = new
Map2(document.getElementByIdx_x_x("map"),{size:GSize(200,200),
backgroundColor:"#FF0000"});
map.addControl(new GSmallMapControl());//添加一個(gè)地圖左側(cè)的縮放按鈕控件
map.addControl(new GMapTypeControl());//添加地圖類型控件包括普通地圖、衛(wèi)星地圖、混合地圖
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
//實(shí)例化一個(gè)維度為37.4419、經(jīng)度為 -122.1419的經(jīng)緯度實(shí)例,然后設(shè)置地圖的中心。地圖縮放值為13
// Add 10 markers in random locations on the map
var bounds = map.getBounds();//得到地圖四面的邊界值
var southWest = bounds.getSouthWest();//西南的經(jīng)緯度
var northEast = bounds.getNorthEast();//東北的經(jīng)緯度
var lngSpan = northEast.lng() - southWest.lng();//經(jīng)度差
var latSpan = northEast.lat() - southWest.lat();//維度差
//實(shí)例化一個(gè)在本張地圖中的一個(gè)經(jīng)緯度
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
var marker = new GMarker(point);//實(shí)例化一個(gè)標(biāo)點(diǎn)
//給標(biāo)點(diǎn)加click事件,當(dāng)點(diǎn)擊標(biāo)點(diǎn)時(shí)彈出一個(gè)信息窗
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<b>hello</b>");
});
map.addOverlay(marker);//把標(biāo)點(diǎn)添加到地圖覆蓋物
2.GMapOptions類:
這個(gè)類型包含以下4個(gè)屬性
1.size
默認(rèn)情況下,你創(chuàng)建的地圖大小就是你給定的地圖容器的大小,所以,通常情況下,你需要顯式的聲明你的地圖容器的width和height屬性,否則,地圖
是不能正常顯示的,但是,有了size這個(gè)可選屬性后,你就多了一個(gè)選擇了。你可以在創(chuàng)建地圖的時(shí)候直接通過size這個(gè)屬性指定地圖的大小,而不需要聽
命于地圖容器了,即使這個(gè)地圖容器已經(jīng)顯示的定義了width和height的大小。當(dāng)然,size屬性對(duì)應(yīng)的值是一個(gè)GSize類型的數(shù)據(jù),比如,假如
給定options={size:GSize(400, 300)},那么,你所創(chuàng)建的地圖大小就是400×300的一個(gè) 矩形塊,而和你指定的容器大小無(wú)關(guān)。
2.mapType
創(chuàng)建地圖后,默認(rèn)顯示的地圖類型是普通地圖,假如要加上可以選擇的衛(wèi)星地圖、地形地圖等等其他類型的地圖,可以使用
GMap2.setMapType()方法,但這樣往往會(huì)羅列一堆的setMapType。GMapOptions提供了mapTypes這個(gè)可選項(xiàng),通
過一個(gè)數(shù)組就可以給地圖加上多種支持類型,比如使用{mapTypes:
[G_NORMAL_MAP,G_SATELLITE_MAP,G_PHYSICAL_MAP]}
,你的地圖就擁有三種普通、衛(wèi)星、地形三種類型了。mapTypes數(shù)組中的第一項(xiàng)是地圖加載的默認(rèn)類型,所以,假如你想默認(rèn)加載衛(wèi)星地圖,把G_SATELLITE_MAP移到數(shù)組的第一項(xiàng)就可以了。
3.draggableCursor、draggingCursor
這兩個(gè)選項(xiàng)是用來定義地圖上你的光標(biāo)類型,我把它們放在一起介紹不等于它們必須一起使用,你可以單獨(dú)使用任何一個(gè)。其中,draggableCursor
是地圖可拖拽狀態(tài)(默認(rèn)就是可拖拽的)下的光標(biāo),draggingCursor是拖拽地圖時(shí)的光標(biāo),對(duì)應(yīng)的值和你在JavaScript里面設(shè)置其他的光
標(biāo)時(shí)使用的值一樣,比如,
{draggableCursor:"crosshair",draggingCursor:"move"}。當(dāng)然,你也可以使用url形式加上你自己的圖標(biāo)
4.backgroundColor
在地圖圖塊的圖片還沒有傳送完成之前,地圖的顯示區(qū)域默認(rèn)會(huì)使用灰色填充,這個(gè)就是backgroundColor可以發(fā)揮作用的地方了,你可以把灰色換成其他任何符合W3C標(biāo)準(zhǔn)的顏色
5.googleBarOptions
這個(gè)和你在地圖上通過GMap2.enableGoogleBar()時(shí)有關(guān)系,指定你添加GoogleBar時(shí)的一些默認(rèn)屬性
示例:
var options = {size:GSize(400, 300), backgroundColor:"#FF0000"};
var map = new GMap2(document.getElementByIdx_x_x("mapContainer"),
options);
3.GMarker類
構(gòu)造函數(shù):
1.GMarker(point, icon?, inert?)
在指定位置point使用指定圖標(biāo)icon或G_DEFAULT_ICON創(chuàng)建一個(gè)標(biāo)記.假如inert參數(shù)為true,該標(biāo)記將不可點(diǎn)擊而且沒有任何參數(shù).(2.50版本不再支持)
2.GMarker(point, opts?)
在指定位置point使用指定的選項(xiàng)GMarkerOptions創(chuàng)建一個(gè)標(biāo)記.默認(rèn)標(biāo)記能夠點(diǎn)擊并使用默認(rèn)圖標(biāo)G_DEFAULT_ICON. (從
2.50開始支持)
Gmarker包含的主要方法:
1.openInfoWindow(content, opts?) 在標(biāo)記圖標(biāo)之上打開地圖信息窗口。信息窗口的內(nèi)容為 DOM 節(jié)點(diǎn)。僅適用于
GInfoWindowOptions.maxWidth 選項(xiàng)。
2. openInfoWindowHtml(content, opts?) 在標(biāo)記圖標(biāo)之上打開地圖信息窗口。信息窗口的內(nèi)容顯示為包含 HTML
文本的字符串。僅適用于 GInfoWindowOptions.maxWidth 選
項(xiàng)。
3.getIcon() GIcon 如構(gòu)造函數(shù)所設(shè)置的,返回此標(biāo)記的 icon。
4.getTitle() String 如構(gòu)造函數(shù)通過 GMarkerOptions.title
屬性所設(shè)置的,返回此標(biāo)記的標(biāo)題。假如未傳入標(biāo)題,則返回“undefined(未定義)”(自 2.85 開始)
5.getPoint() GLatLng 如構(gòu)造函數(shù)或 setPoint() 所設(shè)置的,返回此標(biāo)記錨定的地理坐標(biāo)。(自 2.88
開始建議不要使用)
6.getLatLng() GLatLng 如構(gòu)造函數(shù)或 setLatLng() 所設(shè)置的,返回此標(biāo)記錨定的地理坐標(biāo)。(自 2.88
開始)
7.setPoint(point) none 設(shè)置此標(biāo)記所錨定點(diǎn)的地理坐標(biāo)。(自 2.88 開始建議不要使用)
8.setLatLng(point) none 設(shè)置此標(biāo)記所錨定點(diǎn)的地理坐標(biāo)。(自 2.88 開始)
9.enableDragging() none 答應(yīng)在地圖上拖拽標(biāo)記。對(duì)于函數(shù),必須已經(jīng)用 GMarkerOptions.draggable
= true 初始化標(biāo)記。
10.disableDragging() none 禁止在地圖上拖拽標(biāo)記。
11.draggable() Boolean 假如已使用 GMarkerOptions.draggable = true
通過構(gòu)造函數(shù)對(duì)標(biāo)記進(jìn)行了初始化,則返回 true。否則,返回 false。
12.draggingEnabled() Boolean 假如當(dāng)前答應(yīng)用戶在地圖中拖拽標(biāo)記,則返回 true。
13.setImage(url) none 請(qǐng)求將 url
指定的圖像設(shè)置為此標(biāo)記的前景圖。注:不調(diào)整打印圖像和陰影圖像。因此,此方法主要是為了達(dá)到高亮顯示或變暗顯示效果,而不是徹底改變標(biāo)記的外觀。(自 2.75
開始)
15.hide() none 假如當(dāng)前標(biāo)記可見,則隱藏標(biāo)記。注:假如當(dāng)前標(biāo)記可見,則此函數(shù)會(huì)觸發(fā)
GMarker.visibilitychanged 事件。(自 2.77 開始)
16.show() none 假如當(dāng)前標(biāo)記不可見,則顯示標(biāo)記。注:假如當(dāng)前標(biāo)記不可見,則此函數(shù)會(huì)觸發(fā)
GMarker.visibilitychanged 事件。(自 2.77 開始)
17.isHidden() Boolean 假如當(dāng)前標(biāo)記不可見,則返回 true。否則,返回 false。(自 2.77 開始)
示例:
1.
var point = new GLatLng(pointx,pointy);
var icon = new GIcon();
icon.image =
"http://labs.google.com/ridefinder/images/mm_20_red.png";
var myMarker = new GMarker(point, icon);
alert(myMarker.getIcon().image);
2.
var point = new GLatLng(pointx,pointy);
var myMarker = new GMarker(point,{draggable:true});//可拖拽的標(biāo)記
alert(myMarker.getPoint());
4.GPolyline類
構(gòu)造函數(shù)
GPolyline(latlngs, color?, weight?, opacity?, opts?) 根據(jù)頂點(diǎn)數(shù)組創(chuàng)建折線。color
是一個(gè)字符串,包含十六進(jìn)制數(shù)字、HTML 樣式的顏色,即 #RRGGBB。weight 是以像素表示的線寬度。 opacity 為 0 到 1
之間的數(shù)字。該線條是消除鋸齒且半透明的。
GPolyline包含的方法
1.getVertexCount() Number 返回折線的頂點(diǎn)數(shù)目。(自 2.46 開始)
2.getVertex(index) GLatLng 返回折線中給定索引值對(duì)應(yīng)的頂點(diǎn)。(自 2.46 開始)
3.getLength() Number 返回沿地球表面的折線長(zhǎng)度(以米表示)。(自 2.85 開始)
4.getBounds() GLatLngBounds 返回此折線的邊界。(自 2.85 開始)
5.hide() none 假如當(dāng)前折線可見并且 GPolyline.supportsHide() 返回
true,則隱藏此線。注:假如當(dāng)前折線可見,則此函數(shù)會(huì)觸發(fā) GPolyline.visibilitychanged 事件(自 2.87 開始)
6.isHidden() Boolean 假如當(dāng)前折線不可見,則返回 true。否則,返回 false。(自 2.87 開始)
7.show() none 假如當(dāng)前折線不可見,則顯示該線。注:假如當(dāng)前折線不可見,則此函數(shù)會(huì)觸發(fā)
GPolyline.visibilitychanged 事件。(自 2.87 開始)
8.supportsHide() Boolean 假如當(dāng)前環(huán)境下支持 GPolyline 對(duì)象的 GPolyline.hide(),則返回
true。否則,返回 false。(自 2.87 開始)
注:假如您想在地圖里面顯示折線,您需要在您的XHTML文檔里面包含VML命名空間和一些CSS代碼,這樣可以令它們?cè)贗E下面可以正常工作。XHTM文檔的開頭看起來就像這
樣:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8"/>
<title>My Google Maps Hack</title>
<style type="text/css">v\:*
{behavior:url(#default#VML);}
</style>
<script
src="http://maps.google.com/maps?file=api&v=2&key=abcdefg"
type="text/javascript"></script>
</head>
5.GLatLng類
構(gòu)造函數(shù):
GLatLng(lat, lng, unbounded?) 注重緯度和經(jīng)度的順序。假如 unbounded 標(biāo)記為
true,則表示數(shù)字以原始輸入狀態(tài)使用,否則緯度將在 -90 度到 +90 度之間,而經(jīng)度在 -180 度和 +180 度之間周而復(fù)始。
GlatLng包含的方法:
lat() Number 返回以度數(shù)表示的緯度坐標(biāo)(-90 到 +90 之間的數(shù)值)。假如在構(gòu)造函數(shù)中設(shè)置了 unbounded
標(biāo)記,則緯度坐標(biāo)值可能超出此范圍。
lng() Number 返回以度數(shù)表示的經(jīng)度坐標(biāo)(-180 到 +180 之間的數(shù)值)。假如在構(gòu)造函數(shù)中設(shè)置了 unbounded
標(biāo)記,則經(jīng)度坐標(biāo)值可能超出此范圍。
6. GPoint類
GPoint 是以像素坐標(biāo)表示的地圖上的一點(diǎn)。注重:在 v2 中,它不再是以地理坐標(biāo)表示的地面上的一個(gè)點(diǎn)。現(xiàn)在,地理坐標(biāo)可以用 GLatLng
表示。
在地圖坐標(biāo)系統(tǒng)中,x 坐標(biāo)向右增大,y 坐標(biāo)向下增大。
注重:GPoint 的兩個(gè)參數(shù)同 x 和 y 屬性一樣可訪問,但最好不要修改它們,而是在創(chuàng)建新對(duì)象時(shí)使用不同的參數(shù)。
7. GEvent命名空間
此命名空間包含的函數(shù)可用于注冊(cè)事件處理程序(既處理自定義事件也處理 DOM 事件)和觸發(fā)自定義事件。此 API 定義的所有事件都是由
GEvent.trigger() 內(nèi)部觸發(fā)的自定義事件。
addListener(source, event, handler) 返回GEventListener
為源對(duì)象的自定義事件注冊(cè)事件處理程序。返回一個(gè)可用于最終注銷處理程序的句柄。事件觸發(fā)時(shí),this 將被設(shè)置為源對(duì)象,同時(shí)調(diào)用事件處理程序。
addDomListener(source, event, handler) 返回GEventListener 為源對(duì)象的 DOM
事件注冊(cè)事件處理程序。源對(duì)象必須為 DOM 節(jié)點(diǎn)。返回一個(gè)可用于最終注銷處理程序的
句柄 。事件觸發(fā)時(shí),this 被設(shè)置為源對(duì)象,同時(shí)調(diào)用事件處理程序。此函數(shù)將 DOM 方法用于當(dāng)前瀏覽器,來注冊(cè)事件處理程序。
removeListener(handle)刪除使用 addListener() 或 addDomListener()
安裝的處理程序。
clearListeners(source, event)刪除使用 addListener() 或 addDomListener()
為給定事件在給定對(duì)象上安裝的所有處理程序。
clearInstanceListeners(source)刪除使用 addListener() 或 addDomListener()
為所有事件在給定對(duì)象上安裝的所有處理程序。
trigger(source, event, ...)使源對(duì)象觸發(fā)自定義事件。將 event
后所有剩余的可選參數(shù)依次輸入給事件處理程序作為參數(shù)。
bind(source, event, object, method)返回GEventListener
將給定對(duì)象的方法調(diào)用注冊(cè)為源對(duì)象自定義事件的處理程序。返回一個(gè)可用于最終注銷處理程序的句柄。
bindDom(source, event, object, method)返回 GEventListener
將給定對(duì)象的方法調(diào)用注冊(cè)為源對(duì)象自定義事件的處理程序。返回一個(gè)可用于最終注銷處理程序的句柄。
callback(object, method) Function 返回在 object 上調(diào)用 method 的 closure。
callbackArgs(object, method, ...) Function 返回在 object 上調(diào)用 method
的closure。調(diào)用返回的函數(shù)時(shí),將 method 后面所有余下的可選參數(shù)依次輸入 method 作為參數(shù)。
8.GClientGeocoder地址解析類:
此類用于和 Google
服務(wù)器建立直接通訊,以獲得用戶指定地址的地理位置信息。另外,地理解析器可維護(hù)自己的地址緩存,可以無(wú)需與服務(wù)器通訊而回答反復(fù)的查詢。注重:目前中國(guó)地圖地址解析器只支持市/縣/區(qū)級(jí)別的地址。
getLatLng(address, callback) 給 Google 服務(wù)器發(fā)送請(qǐng)求,對(duì)指定的地址進(jìn)行地址解析。假如地址已成功定位,則用
GLatLng 點(diǎn)調(diào)用用戶指定的回調(diào)函數(shù)。否則,向回調(diào)函數(shù)提供一個(gè) null 點(diǎn)。假如地址不明確,則僅向回調(diào)函數(shù)傳送最匹配的點(diǎn)。(自 2.55 開始)
getLocations(address, callback) 給 Google
服務(wù)器發(fā)送請(qǐng)求,對(duì)指定的地址進(jìn)行地址解析。包含狀態(tài)代碼的答復(fù),假如答復(fù)成功,則向用戶指定的回調(diào)函數(shù)傳送一個(gè)或多個(gè) Placemark 對(duì)象。與
GClientGeocoder.getLatLng 方法不同,回調(diào)函數(shù)可以通過檢查 Status 字段的代碼值確定失敗原因。(自 2.55 開始)
示例:
var map = new GMap2(document.getElementByIdx_x_x("map"));
var geocoder = new GClientGeocoder();
var address="五道口";
geocoder.getLatLng(address,function(point) {
if (!point)
{
alert(address + " not found");
}
else
{
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
alert(point);
}
});
三:下面是Google API自帶控件
GLargeMapControl:放大縮小調(diào)節(jié)桿
GMapTypeControl:地圖和衛(wèi)星圖片的切換功能
GSmallMapControl:GLargeMapControl的精簡(jiǎn)版 ,去掉了縮放的調(diào)節(jié)桿保留了縮放按鈕
GSmallZoomControl:只包括縮放按鈕,去掉了GLargeMapControl里其他的所有控制
GScaleControl:比例尺控件
四:減少瀏覽器內(nèi)存泄露
Google Maps API鼓舞使用閉包/Closures,Maps
API的第二版引入一個(gè)GUnload()函數(shù),用于最大限度地消除可能引發(fā)內(nèi)存泄露的循環(huán)引用。您應(yīng)該在頁(yè)面的unload事件中調(diào)
用GUnload()函數(shù)來降低您的應(yīng)用程序內(nèi)存泄露的風(fēng)險(xiǎn):<body
onunload="GUnload()">這個(gè)函數(shù)確實(shí)可以消除Google地圖在Internet Explorer下的內(nèi)存泄露,但是假如您比較關(guān)心
內(nèi)存消耗問題,您仍然應(yīng)該用Drip之類的工具測(cè)試您自己網(wǎng)站的內(nèi)存泄露情況。
五:瀏覽器兼容性
Google Maps
API支持的瀏覽器種類與Google地圖網(wǎng)站相同。因?yàn)椴煌膽?yīng)用程序在碰到不兼容的瀏覽器的時(shí)候需要表現(xiàn)不同的行為,所以Maps API提供了一個(gè)全局方法
(GBrowserIsCompatible())來檢查兼容性,但是,發(fā)現(xiàn)一個(gè)不兼容的瀏覽器時(shí),它不會(huì)自動(dòng)采取任何措施。
http://maps.google.com/maps?file=api&v=2里面的腳本似乎可以在任何瀏覽器里面解析而不產(chǎn)生錯(cuò)誤,所以您可以在檢查瀏覽器兼容性之前就包含腳本文件。
六:相關(guān)資料的網(wǎng)址:
http://code.google.com/intl/zh-CN/apis/maps/
http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/v2/reference.html
Google地圖API的同步中文文檔:http://www.codechina.org/doc/google/gmapapi/
百度文庫(kù):http://wenku.baidu.com/view/a2885c27a5e9856a561260b2.html
csdn博客:http://blog.csdn.net/jiali765/archive/2010/03/03/5338265.aspx
http://www.jbedu.com/study/jishuwenzhang/196.html
posted on 2012-09-21 11:49 Mr.lu 閱讀(9660) 評(píng)論(1) 編輯 收藏