重要的GMaps对象与接口
?1、GMap2 類(地圖類)
?? A、構造函數:GMap2(container:Node, opts?:GMapOptions)
?? 說明:在指定的 HTML 容器中創建新的地圖,該容器通常是一個 DIV 元素。如果可選參數 opts.mapTypes 中沒有給出地圖類型集合,則使用默認的集合 G_DEFAULT_MAP_TYPES。如果可選參數
opts.size 中沒有給出大小,則使用 container 的大小。如果給出了 opts.size,則相應地調整地圖容器元素的大小。請參見 class GMapOptions。注意:需要先將地圖居中,才能使用該地圖。您應該
立即調用 GMap2.setCenter() 來初始化使用該構造函數創建的地圖。
?? var map = new GMap2(document.getElementById('map_canvas'));
?? 產生一個GMap對象,map_canvas為DOC文檔元素ID。
?? B、setCenter(center:GLatLng, zoom?:Number, type?:GMapType)
?? 按指定的中心設置地圖視圖。也可以同時設置縮放級別和地圖類型。地圖類型必須是地圖已知的類型。請參見構造函數和方法 addMapType()。必須在構造后先調用此方法,才能設置地圖的初始狀態
。在調用此函數之前調用對新構造的 GMap2 對象執行的操作,這是錯誤的。
?? map.setCenter(new GLatLng(39.9, 116.3975), 13);
?? 設置地圖視圖中心點。
?? C、addControl(control:GControl, position?:GControlPosition)
?? 將控件添加到地圖。地圖上的位置由可選的 position 參數確定。如果此參數不存在,則使用由 GControl.getDefaultPosition() 方法確定的控件默認位置。一個控件實例只能向地圖中添加一次。
?? map.addControl(new GSmallMapControl());
?? 創建帶有可在四個方向平移、放大和縮小的按鈕的控件。
?? map.addControl(new GLargeMapControl());
?? 創建帶有可在四個方向平移、放大、縮小的按鈕以及縮放滑塊的控件。
?? map.addControl(new GSmallZoomControl());
?? 創建帶有放大和縮小按鈕的控件。
?? map.addControl(new GScaleControl());
?? 創建顯示地圖比例尺的控件。
?? map.addControl(new GMapTypeControl());
?? 創建一個標準地圖類型控件,通過按鈕在受支持地圖類型之間進行選擇和切換。
?? D、addOverlay(overlay:GOverlay)?
?? 將疊加層添加到地圖中,并觸發 addoverlay 事件。
?? map.addOverlay(marker);
?? 在地圖上添加一個標識層。
2、GMarker 類(位置標識類)
?? A、構造函數:GMarker(latlng:GLatLng, opts?:GMarkerOptions)
?? GMarker 標記地圖上的位置。它實現 GOverlay 接口,因此可使用 GMap2.addOverlay() 方法添加到地圖中。
?? 按 GMarkerOptions 中指定的選項在 latlng 創建標記。默認情況下,標記是可點擊的,并且有默認圖標 G_DEFAULT_ICON。
?? var marker = new GMarker(new GLatLng(39.9090, 116.3977));
?? 創建一個標識對象,通常被用在 map.addOverlay(marker);? 當作參數傳入。
?? B、openInfoWindowHtml(content:String, opts?:GInfoWindowOptions)
?? 通過標記圖標打開地圖信息窗口。信息窗口的內容為 DOM 節點。只適用于 GInfoWindowOptions.maxWidth 選項。
?? var html = '<div style="width:80px; padding:5px 10px;">'+'北京天安門'+'</div>';
?? marker.openInfoWindowHtml(html);
?? 在圖片標識上顯示提示信息“北京天安門”。
?? C、openInfoWindow(content:Node, opts?:GInfoWindowOptions)
?? 通過標記圖標打開地圖信息窗口。信息窗口的內容為 DOM 節點。只適用于 GInfoWindowOptions.maxWidth 選項。
??
3、GLatLng 類(坐標類)
?? GLatLng 是以經度和緯度表示的地理坐標點。
?? A、構造函數:GLatLng(lat:Number, lng:Number, unbounded?:Boolean)
?? 注意緯度和經度的順序。如果 unbounded 標記為 true,則將使用傳遞的數字,否則緯度會限定在 -90 度和 +90 度之間,而經度會限定在 -180 度和 +180 度之間。
?? var point = new GLatLng(39.9090, 116.3977);
?? 生成一個坐標點對象。 map.addOverlay(new GMarker(point));? 通常point作為GMarker的參數對象使用。
?? B、lat() 返回以度數表示的緯度坐標(-90 到 +90 之間的數字)。
?? C、lng() 返回以度數表示的經度坐標(-180 到 +180 之間的數字)。
?
4、GClientGeocoder 類(地址解析器對象)
?? 此類用于和 Google 服務器建立直接通信,以獲取用戶指定地址的地址解析。另外,地址解析器可維護自己的地址緩存,可以無需往返于服務器而回答重復的查詢。作為常用的最佳做法,建議不要在
回路中使用 GClientGeocoder 函數。有多個地址要進行地址解析的開發人員或許應改為使用我們的 HTTP 地址解析器。
?? A、構造函數:GClientGeocoder(cache?:GGeocodeCache)
?? 創建地址解析器的新實例,直接與 Google 服務器對話。可選的緩存參數允許指定已知地址的自定義客戶端緩存。如果未指定緩存,則使用 GFactualGeocodeCache。
?? var geocoder = new GClientGeocoder();
?? 生成一個地址解析器對象。
?? B、getLatLng(address:String, callback:function)
?? 向 Google 服務器發送請求,對指定的地址進行地址解析。如果地址已成功定位,則用 GLatLng 點調用用戶指定的回調函數。否則,向回調函數提供一個 null 點。如果地址不明確,則僅向回調函
數傳遞最匹配的點。
?? 具體地址解析,下面例子將看到彈出中國上海市的經緯度字符串
???? var geocoder = new GClientGeocoder();
???? function showAddress(address) {?
???????? geocoder.getLatLng(address,???
???????? function(point) {?????
???????????? if (!point) {???????
???????????????? alert("無法解析:" + address);?????
???????????? } else {???
???????????????? alert(point.toString());???
???????????????? map.setCenter(point, 13);???
???????????????? map.addControl(new GSmallMapControl());???
???????????????? var marker = new GMarker(point);???????
???????????????? map.addOverlay(marker);???????
???????????????? marker.openInfoWindowHtml(address);?????
???????????? }???
???????? } );
???? }
???? showAddress('中國上海市');
???
5、google.maps.Event類(GEvent類:事件類)
?? 此命名空間包含的函數可用于注冊事件處理程序(既處理自定義事件也處理 DOM 事件)和觸發自定義事件。此 API 定義的所有事件都是由 GEvent.trigger() 內部觸發的自定義事件。靜態方法如下
:
?? A、GEvent.addListener(source:Object, event:String, handler:Function) 返回值為GEventListener
?? 為源對象的自定義事件注冊事件處理程序。返回一個可用于最終注銷處理程序的句柄。可使用源對象的 this 集合調用事件處理程序。
??
?? google.maps.Event.addListener(marker, "click", function(){
???????? marker.openInfoWindowHtml(html);
???? })
??
?? 點擊標識時彈出提示框。
???
?? B、GEvent.addDomListener(source:Node, event:String, handler:Function)? 返回值為GEventListener
?? 為源對象的 DOM 事件注冊事件處理程序。源對象必須為 DOM 節點。返回一個可用于最終注銷處理程序的句柄。可使用源對象的 this 集合調用事件處理程序。此函數將 DOM 方法用于當前瀏覽器,
來注冊事件處理程序。
?? C、GEvent.removeListener(handle:GEventListener)
?? 刪除使用 addListener() 或 addDomListener() 安裝的處理程序。
?? D、GEvent.clearListeners(source:Object or Node, event:String)
?? 刪除使用 addListener() 或 addDomListener() 在指定對象上為指定事件安裝的所有處理程序。
6、GBrowserIsCompatible()
?? 判斷瀏覽器是否支持GMaps。
??
以下給出一段GMaps地圖使用的代碼,中心表示點位北京天安門
?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gmaps Test!</title>
<script type="text/javascript" src="jquery.js"></script>
<script src="http://ditu.google.cn/maps?ie=utf-8&oe=utf-8&file=api&v=2.73&key=ABQIAAAAnfs7bKE82qgb3Zc2YyS-oBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSySz_REpPq-
4WZA27OwgbtyR3VcA" type="text/javascript"></script>
<script type="text/javascript"><!--
jQuery(function() {
?? if (GBrowserIsCompatible()) {
???? var map = new GMap2(document.getElementById('map_canvas'));
???? var marker = new GMarker(new GLatLng(39.9090, 116.3977));
???? var html = '<div style="width:80px; padding:5px 10px;">'+'北京天安門'+'</div>';
???? map.setCenter(new GLatLng(39.9, 116.3975), 13);
????
???? map.addControl(new GSmallMapControl());
???? map.addOverlay(marker);
???? marker.openInfoWindowHtml(html);
???? google.maps.Event.addListener(marker, "click", function(){
???????? marker.openInfoWindowHtml(html);
???? })
?? }
});
//--></script>
???
</head>
<body>
<p>測試Gmaps</p>
<div id="map_canvas" style="border:1px solid #979797; background-color:#e5e3df; width:600px; height:500px; margin:2em auto;">
? <div style="padding:1em; color:gray;">正在加載...</div>
</div>
</body>
</html>
使用時需要注意兩點: 一載入你正確的? jquery.js 庫。 二是把key換成你網站自己的KEY。? 上面的KEY為本地調試使用,必須使用 http://localhost?訪問才可用。
總結
以上是生活随笔為你收集整理的重要的GMaps对象与接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北航2022软件工程第一次作业——阅读、
- 下一篇: php自定义微博尾巴,怎么自定义微博小尾