2015-11-08 70 views
0

我已經創建了一種方法來使用地理位置來查找用戶位置,並將該位置傳遞給我的函數以向Web服務發出請求。在收到來自Web服務的數據後,一些標記將被添加到地圖中。標記顯示在地圖上,但顯然當我嘗試更改標記圖標時,標記消失。我試圖把它放在同一個文件夾中,圖像名稱是正確的,我試圖在瀏覽器中打開圖像,並打開它。這是我的代碼,任何人都可以幫我嗎?Google地圖:無法更改標記圖標

if(navigator.geolocation) { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var lat = position.coords.latitude; 
     var lon = position.coords.longitude; 
     initialLocation = new google.maps.LatLng(lat,lon); 
     map.setCenter(initialLocation); 
     get_json(lat,lon,function(data){ 
      var i, marker; 
      var location; 
      for (i=0; i<=data.cells.length;i++) { 
       location = new google.maps.LatLng(data.cells[i].lat, data.cells); 
       marker = new google.maps.Marker({ 
        position: location, 
        map: map, 
        icon: "../img/icon_bts.png" 
       });  
      } 
     }); 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    } 
+0

您可以嘗試使用圖標的絕對路徑。 (只是爲了檢查) –

+0

你可以嘗試打開你的瀏覽器的控制檯,看看是否有任何JavaScript錯誤被拋出? cltr + shift + j for chrome –

+0

我懷疑它應該是一些簡單的文件未找到的錯誤,因爲在圖標代碼被踢入後,標記停止呈現一次。必須拋出異常,從而防止發生標記呈現代碼。 –

回答

1

看起來像你在添加自己的標記時意外刪除了部分腳本。假設你發佈你的文字代碼片段(如果你沒有,你真的應該),下面一行

location = new google.maps.LatLng(data.cells[i].lat, data.cells); 

永遠無法工作constructor of LatLng需要兩個數字參數:如果data.cells[i].lat是一個數字,data.cells肯定不是。我假設行應爲類似

location = new google.maps.LatLng(data.cells[i].lat, data.cells[i].lng); 

如果不解決您的問題,只是看在瀏覽器控制檯實際的錯誤是什麼,其報告爲你的問題的一部分。

+0

謝謝你,傻了我。現在標記的圖標發生了變化。但是如果你不介意我提出另一個問題,爲什麼即使顯示標記,我仍然不斷收到錯誤未解析的data.cells [i]? –

+0

因爲你的循環條件被關閉了。使用<,不是<=。 –