2、使用自定義的JS和Google Map API中的GClientGeocoder類
其實(shí)Google Map API中提供了一個(gè)GClientGeocoder類來實(shí)現(xiàn)地址譯碼,即實(shí)現(xiàn)地名與坐標(biāo)的轉(zhuǎn)換,這個(gè)是需要從客戶端提交地名來查找數(shù)據(jù)庫從而返回坐標(biāo)值。
先看下面的代碼:
var rpoint;
var map = new GMap2(document.getElementById("GMapContainer"));
var geocoder = new GClientGeocoder();
geocoder.getLatLng(str,function(rpoint){
//alert(str);
if(!rpoint){
alert(str+" 無法解析地址");
}
else{
//alert(rpoint);
map.setCenter(rpoint,15);
var marker = new GMarker(rpoint);
map.addOverlay(marker);
marker.openInfoWindowHtml("歡迎查看"+str+"地圖");
map.enableDoubleClickZoom();
map.enableScrollWheelZoom();
map.enableContinuousZoom();
map.addControl(new GLargeMapControl())
map.addControl(new GOverviewMapControl());
map.addControl(new GScaleControl());
map.addControl(new GMapTypeControl());
new GKeyboardHandler(map);
//map.enableGoogleBar();
}
});
從上面的代碼可以看出,geocoder為GClientGeocoder類的一個(gè)實(shí)例,再通過方法
geocoder.getLatLng(str,function);
來獲取地名str相對(duì)應(yīng)得地理坐標(biāo)值,再通過GMap2類的map對(duì)象來展現(xiàn)地圖。由此可見,使用自定義的方法需要兩次查詢谷歌地圖的服務(wù)器。當(dāng)然從效率上來講,還是不如GoogleBar好,也沒有GoogleBar好用,但是在某些場(chǎng)合,還是很有必要的。
參考示例:MyApp2.html.(此系列完結(jié))
聯(lián)系客服