最近在做畢設(shè)項目夜畴,要搭一個網(wǎng)站(體力活拖刃,沒什么技術(shù)含量),其中有幾個頁面需要地圖顯示贪绘《夷担考慮到去年暑假玩過兩個月的百度地圖API,也算半個老司機了税灌,就自然地準備接著用均函,直到出現(xiàn)了下面的問題。
頁面施工第一階段:
(美滋滋的沒什么毛擦獾印)
頁面施工第二階段:
此時就出現(xiàn)彈出頁面中的地圖模塊中有空白的情況苞也。
身為半個老司機,我立刻想到了這應(yīng)該是出了沖突粘秆,將主頁面的地圖部分注釋掉后如迟,彈出頁面顯示正常:
此時我首先懷疑的是變量聲明語句出了問題,
var map = new BMap.Map("allmap", {enableMapClick: false});
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var map = new BMap.Map("modalmap", {enableMapClick: false});
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
這兩段語句雖然放在了不同的函數(shù)塊下,但是都是用var聲明的殷勘,讓人有理由懷疑我大概是踩中了ES6的坑此再。
然而我把下面的變量名改掉后,依然沒什么用玲销。
跑到百度開發(fā)者社區(qū)上逛了一圈输拇,發(fā)現(xiàn)類似問題還是有不少人反映的:
這個人應(yīng)該是內(nèi)部人員,看到發(fā)帖日期贤斜,感覺心涼了半截:
最后我發(fā)現(xiàn)高德導航在這方面做得還是挺不錯的:D
The End:
查看頁面元素可以發(fā)現(xiàn)地圖模塊被重新劃分成了很多<img>標簽策吠,大致揣測下其后端應(yīng)當是將整個地圖分塊分層做了預(yù)渲染,形成很多圖片蠢古,其API調(diào)用就是對這些圖片的get請求以及再拼接的過程奴曙。而在這些圖片被多個實例調(diào)用的場景下,百度地圖出了bug草讶,而且可能是數(shù)據(jù)結(jié)構(gòu)級別的缺陷洽糟,才難以修復(當然不排除其他原因)。
(還是阿里爸爸牛掰)