2015-11-06 44 views
1

我正在使用Google地圖,並且我編寫了如下所示的JS代碼,當用戶通過瀏覽器授予位置實現許可權時,塊許可,地圖不顯示任何東西,聞我點擊它的面積,我得到以下錯誤:\谷歌地圖錯誤「Uncaught TypeError:無法讀取未定義的屬性'x'

Erorr:

遺漏的類型錯誤:無法讀取屬性「X」的未定義

JS SCRIPT:

var pos = new Object(); 
    var marker1 = new Object(); 
    var marker2 = new Object(); 
    var resp; 
    var loc; 
    var bus_loc; 

    function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      //  zoom: 13 
     }); 

     var infoWindow = new google.maps.InfoWindow({}); 
     var scope = angular.element($("#address")).scope(); 
     var angLoc; 
     scope.$apply(function() { 
      angLoc = scope.contact.business.location.split(','); 
      bus_loc = { 
       lat: parseFloat(angLoc[0]), 
       lng: parseFloat(angLoc[1]) 
      }; 
     }); 
     var image = '/static/image/main_template/map/2.png'; 
     marker2 = new google.maps.Marker({ 
      map: map, 
      position: bus_loc, 
      icon: image 
     }); 
     marker2.addListener('click', function() { 
      infoWindow.setPosition(bus_loc); 
      infoWindow.setContent('<p style="padding: 0; margin-top: 10px; direction: rtl">ساینا</p>'); 
      infoWindow.open(map, marker2); 
     }); 

     map.setCenter(bus_loc); 
     // Try HTML5 geolocation. 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function(position) { 
       pos = { 
        lat: position.coords.latitude, 
        lng: position.coords.longitude 
       }; 

       loc = { 
        lat: parseFloat(pos.lat), 
        lng: parseFloat(pos.lng) 
       }; 
       var image = '/static/image/main_template/map/1.png'; 
       marker1 = new google.maps.Marker({ 
        map: map, 
        position: loc, 
        icon: image 
       }); 
       marker1.addListener('click', function() { 
        infoWindow.setPosition(loc); 
        infoWindow.setContent('<p style="padding: 0; margin-top: 10px; direction: rtl">اینجا هستید</p>'); 
        infoWindow.open(map, marker1); 
       }); 
       map.setCenter(loc); 

       var distanceService = new google.maps.DistanceMatrixService(); 
       distanceService.getDistanceMatrix({ 
         origins: ['' + loc.lat + ',' + loc.lng + ''], 
         destinations: ['' + bus_loc.lat + ',' + bus_loc.lng + ''], 
         travelMode: google.maps.TravelMode.DRIVING, 
         unitSystem: google.maps.UnitSystem.METRIC, 
         durationInTraffic: true, 
         avoidHighways: false, 
         avoidTolls: false 
        }, 
        function(response, status) { 
         if (status !== google.maps.DistanceMatrixStatus.OK) { 
          console.log('Error:', status); 
         } else { 
          resp = response; 
          $('#distance').html('<b>فاصله از شما: <b>' + resp.rows[0].elements[0].distance.text); 
          $('#duration').html('<b>زمان تخمینی رسیدن شما به این با خودرو: <b>' + resp.rows[0].elements[0].duration.text); 

         } 
        }); 



       var bounds = new google.maps.LatLngBounds(); 
       bounds.extend(marker1.getPosition()); 
       bounds.extend(marker2.getPosition()); 

       map.fitBounds(bounds); 


      }, function() { 
       handleLocationError(true, infoWindow, map.getCenter()); 
      }); 
     } else { 
      // Browser doesn't support Geolocation 
      handleLocationError(false, infoWindow, map.getCenter()); 
     } 




    } 

    function handleLocationError(browserHasGeolocation, infoWindow, pos) { 
     // infoWindow.setPosition(pos); 
     // infoWindow.setContent(browserHasGeolocation ? 
     //  'مکان جغرافیایی یافت نشد' : 
     //  'مرورگر شما امکان نشان دادن مکان جغرافیایی را ندارد.'); 
    } 

我該怎麼辦?

+0

錯誤的行號? –

+0

通常沒有錯誤,但當我點擊地圖區域時: common.js:191未捕獲TypeError:無法讀取undefined屬性'x' – altruistic

+0

我的第一個想法是:bus_loc應該是「new google.maps.LatLng」,而不是隻是一個對象,你使自己{lat:...,lng:...} –

回答

1

不添加任何prototye繼承像現在這樣,谷歌地圖繪製有它的問題

Object.prototype.boolToArray = function() {} 
0

我有同樣的問題,在我的情況下,這是因爲IE或IIS服務器阻止一些谷歌地圖的URL。您可以使用「網絡」標籤中的開發人員工具F12進行檢查,並在未經許可的情況下加載頁面。您可能找到了狀態爲4XX的谷歌地圖網址。 我解決了加入谷歌地圖網址到可信站點

1

確保你沒有覆蓋「窗口。自'!

有同樣的問題,當我把一個斷點放在common.js中的錯誤時,我看到它正在檢查window.self,而window.self沒有= window!

我的問題:我創建了一個組件,並寫下「self = this」而不是「var self = this」。我覆蓋導致這個錯誤的window.self。

相關問題