2012-11-15 33 views
3

財產「COORDS」我與地理位置的谷歌地圖API搞亂。一切工作正常,但我不斷收到這個錯誤在我的控制檯:地理位置遺漏的類型錯誤:無法讀取的不確定

Uncaught TypeError: Cannot read property 'coords' of undefined

這裏是我的緣檢查:

// Does this browser support geolocation? 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(initialize, locationError); 
} else { 
    showError("Your browser does not support Geolocation!"); 
} 

我的成功處理程序:

function initialize(position) { 
    var lat = position.coords.latitude; 
    var lon = position.coords.longitude; 
    var acc = position.coords.accuracy; 

    // Debugging 
    console.log(position.coords); 
    console.log("Accuracy: "+acc+"\nLatitude: "+lat+"\nLongitude: "+lon); 

    // Google Maps API 
    var myLatlng = new google.maps.LatLng(lat,lon); 
    var mapOptions = { 
     center: new google.maps.LatLng(lat, lon), 
     zoom: 12, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title:"Hello World!" 
    }); 
} 

我然後初始化地圖在我身上的標籤<body id="map" onload="initialize()">

地圖呈現良好,所有內容都按預期工作。當我登錄position.coords到我的控制檯時,我得到一個乾淨的讀數。爲什麼我一直收到這個錯誤?渲染沒有結果

谷歌和SO搜索...

乾杯

回答

4

當加載文件時,調用initialize方法不帶參數。 這就是爲什麼你會得到錯誤。

嘗試,而不是這樣:

function initCoords() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(initialize, locationError); 
    } else { 
    showError("Your browser does not support Geolocation!"); 
    } 
} 

,並在您的html代碼:

<body id="map" onload="initCoords()">

保持initialize功能是。

+0

太好了,謝謝你們! – robabby

1

該錯誤可能是這裏

<body id="map" onload="initialize()"> 

你調用不帶參數的初始化函數。因此,「位置」參數爲undefined

function initialize(position) { 
    var lat = position.coords.latitude; 

它,如果你叫

var lat = undefined.coords.latitude 
+0

::捂臉::謝謝! – robabby

0

如果您正在使用的地圖對象之前過得好在初始化科爾多瓦/ PhoneGap的谷歌地圖的錯誤,確保谷歌地圖的HTML數據,緯度和數據長性存在。

這裏有一個例子,

<div class="widget uib_w_20 maps-size d-margins" data-uib="media/google_maps" data-ver="0" data-rpath="null" data-zoom="8" id="google-maps" data-center-auto="true" data-lat="41.309697" data-long="-72.9370447">

沒有數據-LAT和數據長,爲Web應用程序的測試,谷歌地圖在初始化過程中會失敗

相關問題