2015-05-03 57 views
-1

我已經得到了我的工作重新設計的門戶:它使用谷歌地圖作爲基礎層,然後覆蓋了一系列代表規劃區不同層次的,規劃疊加層,政府權限範圍界限等。地圖荷載;疊加加載;地圖響應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。如您所料,該地圖位於divid="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)的用戶;他們在這裏 -

Existing (working) version

Development Version

回答

1

有沒有元素(單選按鈕),ID分別changetype-establishmentchangetype-geocode。該錯誤是由試圖強迫一個事件監聽添加到這些不確定因素在setupClickListener(G21_Portal-SearchBar_src.js)

修復此錯誤(將這些元素添加或刪除的setupClickListener的呼叫)和其他錯誤會也離開了。