最近在使用百度地圖API編寫(xiě)一個(gè)具有地圖功能的MFC程序,在編寫(xiě)htm時(shí)遇到一個(gè)腳本錯(cuò)誤,并進(jìn)行了解決!
step1:點(diǎn)擊右邊樹(shù)狀控件的某一項(xiàng)后,會(huì)根據(jù)該項(xiàng)的內(nèi)容(即用戶名)查找地圖上是否標(biāo)注了該用戶;
step2:若已標(biāo)注該用戶,則將地圖的中心位置平移到該用戶上;若未標(biāo)注該用戶,則彈出提示信息“暫無(wú)***的位置信息!”。

//樹(shù)型控件雙擊某項(xiàng)時(shí),執(zhí)行的函數(shù),使得對(duì)應(yīng)的用戶居中顯示 function showAtCenter(name) { var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length; i++) { if (allOverlay[i].getLabel().content == name) { map.panTo(allOverlay[i].getPosition()); return false; } } alert("暫無(wú) '" + name + "' 的位置信息!"); }執(zhí)行后的錯(cuò)誤提示:

錯(cuò)誤分析
注意在使用allOverlay[i]時(shí)要進(jìn)行是否是Marker的判斷,因?yàn)間etOverlays()后會(huì)得到類(lèi)型不同的對(duì)象,只有Marker圖像標(biāo)注類(lèi)才有g(shù)etLabel()方法,否則會(huì)出現(xiàn)錯(cuò)誤:對(duì)象不支持“getLabel”屬性或方法。
解決方案
正確代碼如下:
//樹(shù)型控件雙擊某項(xiàng)時(shí),執(zhí)行的函數(shù),使得對(duì)應(yīng)的用戶居中顯示 function showAtCenter(name) { var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length - 1; i++) { //注意:在使用allOverlay[i]要進(jìn)行是否是Marker的判斷,因?yàn)間etOverlays()后會(huì)得到類(lèi)型不同的對(duì)象 //只有Marker圖像標(biāo)注類(lèi)才有g(shù)etLabel()方法,否則會(huì)出現(xiàn)錯(cuò)誤:對(duì)象不支持“getLabel”屬性或方法 if (allOverlay[i] instanceof BMap.Marker) { if (allOverlay[i].getLabel().content == name) { map.panTo(allOverlay[i].getPosition()); return false; } } } alert("暫無(wú) '" + name + "' 的位置信息!"); }正確執(zhí)行效果
雙擊右邊樹(shù)形控件的Androiduser項(xiàng)后,地圖平移至以Androiduser標(biāo)注為中心!

新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注