2013-11-21 86 views
0

我有一個谷歌地圖,顯示正確的初始頁面加載,並顯示正確的地方標記(這是從自定義Web服務檢索)。不過,我正在提示用戶分享他們的位置,當他們這樣做時,地圖就會消失。我提示用戶通過分享自己的位置:谷歌地圖 - 地圖不重新加載時,用戶分享位置

 if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(setPosition, error); 
     } ... 

這工作得很好,並在「成功」函數被調用(setPosition兩種),我用下面的刷新地圖:

//load map object and show map 
this.map = new google.maps.Map(
document.getElementById(this.mapElementId), 
{ 
zoom: this.currentZoom, 
center: this.startPos, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
); 

'this.map'已成功填充谷歌地圖對象。 'document.getElementById(this.mapElementId)'工作正常,並且找到我想要地圖出現的<div>,'currentZoom'和'startPos'的座標正確地被獲取。

以前這個工作正常,當時地圖是的一部分 - 我現在將代碼內聯移動到之前包含的頁面(它看起來不像跨域問題,因爲我「已經驗證了這一點)

UPDATE

(實際上,請忽略我以前的更新 - 我越來越取決於我是否正在調試不同的標記下面是從工作的標記和破版本,當我允許共享我的位置時,沒有運行Firebug調試器。'working'版本中的藍線顯示突出顯示包含谷歌地圖的DIV):

工作:

enter image description here 破:

enter image description here

+1

我猜獲得用戶的地理位置可能工作後刷新谷歌。檢查此[回答](http://stackoverflow.com/a/18607307/1671639)如何觸發谷歌地圖v3中的刷新。希望這可以幫助。 – Praveen

+0

真的忘了問你,地圖畫布是灰色的嗎? – Praveen

回答

0

事實證明,在我的 'setPosition兩種' 回調函數(如果使用的瀏覽器有能夠成功地請求用戶的地理位置),我隱藏了一個<div>,當地理位置請求不成功時顯示錯誤消息。出於某種原因,隱藏<div>會停止顯示地圖,即使隨後沒有在任何代碼中引用該地圖,也不會與包含Google地圖的<div>相關。我問什麼可怎麼回事,如何可靠地在這裏清除錯誤信息,另外一個問題:

https://stackoverflow.com/questions/20134180/jquery-javascript-hiding-div-stops-google-map-from-appearing