Javascript div打破了我的谷歌地图

时间:2014-01-25 01:24:48

标签: javascript php google-maps

您好我正在使用下面的javascript代码在show / hide div中显示谷歌地图。

PS我想在页面加载时默认隐藏地图。所以我写了这个:

   <script type="text/javascript">

        // <![CDATA[
        function showlayer(layer) {
            var mymap = document.getElementById(layer).style.display;
            if (mymap == "block") {
                document.getElementById(layer).style.display = "none";
            } else {
                document.getElementById(layer).style.display = "block";
            }
        }
        // ]]>


    </script>

<div id="mymap" style="display:none;">
<? include $this->loadTemplate( 'map.php' ); ?>
</div>

map.php文件包含以下代码:

<script src="http://maps.googleapis.com/maps/api/js?v=3.6&amp;sensor=false" type="text/javascript"></script>
    <script type="text/javascript">
        function initialize() {
            var mapLatlng = new google.maps.LatLng(<?php echo $this->link->lat . ', ' . $this->link->lng; ?>);
            var mapOptions = {
              zoom: <?php echo ($this->link->zoom?$this->link->zoom:13); ?>,
              center: mapLatlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP,
              scrollwheel: false
            };
            var map = new google.maps.Map(document.getElementById("map"), mapOptions);
            var marker = new google.maps.Marker({
                position: mapLatlng,
                map: map,
                title:"<?php echo addslashes($this->link->link_name); ?>"
             });
        }
        jQuery(document).ready(function(){initialize();});

    </script>

当我删除style =“display:none;一切正常但我不想在页面加载时显示地图。

任何帮助??

1 个答案:

答案 0 :(得分:0)

执行document.getElementById(layer).style.display = "block";之后调用初始化,因为我认为存在一个错误,它不会使地图在指定的纬度和长度中正确居中。因此,在显示div之后加载地图。