2014-02-14 40 views
0

我有一個函數,在該函數中,我傳遞了一個頁面的div,其中GoogleMap將顯示在頁面上。 Div ID未能正確顯示,但GoogleMap要顯示Map時,顯示錯誤。通過在運行時傳遞Div來渲染GoogleMap

<a data-transition="slide" onclick="showGoogleMap('AusMapDiv','#AustpaymentLocationsPage','151.209349','-33.840835')">Australia</a> 


var myLatitude , myLongitude , pagediv ; 
function showPosition(position) { 
    var myCenter = new google.maps.LatLng(myLatitude, myLongitude); 
    var mapProp = { center : myCenter, zoom : 5, mapTypeId : google.maps.MapTypeId.ROADMAP }; 

    var map = new google.maps.Map(pagediv , mapProp); 
    var marker = new google.maps.Marker({ position : myCenter }); 
    marker.setMap(map); 
} 

function showGoogleMap(pgdiv, locpage, logit, lati) { 
    myLongitude = logit; 
    myLatitude = lati; 
    pagediv = pgdiv; 

    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition, function(){  
        console.log("Error while showing GoogleMap"); }); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 

    $.mobile.changePage(locpage , { transition: "slide"}); 
} 
+0

看來你傳遞的是字符串而不是數字的經緯度值。在函數LatLng()中使用parseFloat()將字符串更改爲數字會更好。 –

+1

他們正在工作,我試圖以編程方式給Divs。 – AAhad

回答

0

如果pgdiv是股利其中包含地圖,則行中的ID:

var map = new google.maps.Map(pagediv , mapProp); 

應改爲:

var map = new google.maps.Map(document.getElementById(pagediv), mapProp); 

規範Map()構造:

Map(mapDiv:Node, opts?:MapOptions) 

其中mapDiv是DOM元素,而不是div元素的ID。

+1

是的正確,它的工作....這意味着地圖API需要一個元素,而不是要渲染圖像的元素的名稱。 – AAhad