1

谷歌地图没有出现。我认为问题在于 lat 和 long 的数据类型。这是代码:当提供 lat long 的硬编码值时,所有函数都可以正常工作。

function initialize(a, b, zoom) {
    alert('init called  ' + "lat: " + typeof a + "long: " + typeof b + "zoom: " + typeof zoom);
    //here lat long are string and zoom is number 

    //var zoom =parseInt(zoom);
    var a = parseFloat(a);
    var b = parseFloat(b);
    alert('init called  ' + "lat: " + typeof a + "long: " + typeof b + "zoom: " + typeof zoom);

    //here lat oang and zoom all are number
    var centerLoc = new google.maps.LatLng(a, b);

    var mapProp = {
        center: centerLoc,
        zoom: zoom,
        //   mapTypeId:google.maps.MapTypeId.ROADMAP,
        mapTypeId: google.maps.MapTypeId.SATELLITE
    };
    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    marker = new google.maps.Marker({
        position: centerLoc,
        title: 'Click to zoom'
    });
    google.maps.event.addListener(marker, 'click', function () {
        map.setZoom(map.getZoom() + 1);
        map.setCenter(marker.getPosition());
    });
    marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);

</script>

这是html:

<html>
<body>
<div id="googleMap" style="width:1000px;height:500px;"></div>
</body>
</html>
4

1 回答 1

1

你的代码对我来说很好。唯一的问题是你不能这样做:

google.maps.event.addDomListener(window, 'load', initialize);

因为您不能将参数传递给以这种方式调用的函数。如果你在 body 标记中使用它作为 onload 函数,它可以工作:

<body onload="initialize(-33.8665433, 151.1956316,5)">

工作示例

于 2013-03-30T13:57:20.883 回答