我已經得到了我的工作重新設計的門戶:它使用谷歌地圖作爲基礎層,然後覆蓋了一系列代表規劃區不同層次的,規劃疊加層,政府權限範圍界限等。地圖荷載;疊加加載;地圖響應jscripts ...但map.DrawingManager未定義
這些覆蓋,和機制,以使它們
- 可見
- 可選擇(以用於報告獲取關於它們的數據),並
設置每個層的透明度
是加載並由一系列JavaScript腳本操縱。
還存在產生工具欄用於縮放,平移和圈/多邊形選擇地圖畫布內的JavaScript和另一個使報告用於數據的子集來生成,和政府地區的一個子集。
所有這一切都工作得很好:決定將表現層更「現代」的一個項目,以更新基礎數據,部分要歸咎於。
門戶的佈局有點模仿 - 很多東西放在'絕對'定位等等(加上,主色是橙色),這使得它看起來像狗的早餐,如果你的屏幕被< 27" (我猜原來開發了其中的一個)。
於是,我開始四處轉移的東西,並得到了佈局朝着什麼明智的標題。
我現在發現,絕大多數大部分的javascript功能的工作,正是因爲它過去那樣,但有兩個例外:報告和工具欄
所有的JavaScript東西都是通過window.onload = InitialisePortal
運行的腳本觸發的。
InitialisePortal()
調用一系列初始化組件的函數:底圖是第一個被初始化的東西,工具欄被構建並放置在其後面。
底圖載荷,並且可以通過JavaScript的onclick()
改變:例如有按鈕,
- 變焦到所選擇的政府區域;
- 使底圖成爲天線;和
- 使底圖成爲單色而不是顏色。
這些所有工作完全像他們那樣。
在報表方面,一個「下拉」選擇失敗來填充,因此所有功能停在那裏。我並不擔心報道方面的問題。
在「工具欄」側,工具欄構建,並且被放置在那裏它應該是;但沒有任何按鈕的功能。
javascripts與舊版本完全在同一頁面,完全相同。
HTML中的相關div
處於相同的相對位置(即,頁面源中的div
的順序沒有改變)。某些div
的CSS已更改 - 但只有position: absolute
(etc)和background-color
。如您所料,該地圖位於div
,id="map_canvas"
。
CLUES。
第一條線索:TypeError: a is null in main.js:18:0
(來自maps.gstatic.com的main.js)。這似乎表明main
預期的一些變量未被通過。
第二條線索:map.drawingManager is undefined in ToolBarControl.js:229:3
。
ToolBarControl.js線229是map.drawingManager.setDrawingMode(null)
map.drawingManager在門戶-Drawing.js線6被定義 - map.drawingManager = new google.maps.drawing.DrawingManager([snip]
map
在門戶-Main.js線限定382 - map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
我的診斷是不知何故main.js
足夠了解地圖能夠完成所有可用的工作,但不知何故將這些球放在了繪圖管理器的一面。因此最後的問題是:是否有人看到特定的(即,main.js 行18 - 即function Ze(a,b)
)未定義 - 之前的問題?如果是這樣,這是什麼意思?
(我假設null a
也是定義map.drawingManager()的後續問題的原因)。對於那些想要仔細閱讀(舊,橙色)版本(完美工作)和(25%完成,藍色)版本(其中工具欄爲verkakte)的用戶;他們在這裏 -