Javascript 在运行时通过传递Div来呈现GoogleMap

Javascript 在运行时通过传递Div来呈现GoogleMap,javascript,google-maps,Javascript,Google Maps,我有一个函数,在这个函数中,我传递一个页面的div,GoogleMap将显示在页面显示器上。Div ID是正确的,但是当GoogleMap要显示Map时,下面给出的是错误的 <a data-transition="slide" onclick="showGoogleMap('AusMapDiv','#AustpaymentLocationsPage','151.209349','-33.840835')">Australia</a> var myLatitude ,

我有一个函数,在这个函数中,我传递一个页面的div,GoogleMap将显示在页面显示器上。Div ID是正确的,但是当GoogleMap要显示Map时,下面给出的是错误的

<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"});
}
澳大利亚
var myLatitude,myLongitude,pagediv;
功能显示位置(位置){
var myCenter=new google.maps.LatLng(myLatitude,myLongitude);
var mapProp={center:myCenter,zoom:5,mapTypeId:google.maps.mapTypeId.ROADMAP};
var map=newgoogle.maps.map(pagediv,mapProp);
var marker=new google.maps.marker({position:myCenter});
marker.setMap(map);
}
功能显示谷歌地图(pgdiv、locpage、logit、lati){
我的长度=对数;
麦拉度=纬度;
pagediv=pgdiv;
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition,function(){
log(“显示谷歌地图时出错”);});
}否则{
x、 innerHTML=“此浏览器不支持地理位置。”;
}
$.mobile.changePage(locpage,{transition:“slide”});
}

如果
pgdiv
是包含地图的div的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。

似乎您传递的是字符串,而不是lat/lng值的数字。最好在函数LatLng()中使用parseFloat()将字符串更改为数字。它们正在工作,我在以编程方式提供div之前尝试过。是的,正确,它工作了……这意味着Map API需要一个元素,而不是渲染图像的元素名。