0

我正在使用谷歌地图 API v3,但我遇到了问题。

我需要用不止一张地图显示它们,而且我不知道地图的数量。

这里的代码php代码:

<script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?key=AIzaSyA5DRxSgUpWIfkLYULGijHXFQdogRElRIg&sensor=false">
</script>
<?php
for ($i = 1; $i <= 4; $i++) {
    echo "map n:" . $i . "<br/>";
    ?><script>
        function initialize(ltd,lgd) {
            var myOptions = {
                center: new google.maps.LatLng(ltd, lgd ),
                zoom: 15,
                panControl: false,
                zoomControl: false,
                mapTypeControl: false,
                scaleControl: false,
                streetViewControl: false,
                overviewMapControl: false,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map_canvas<?php echo $i ?>"),
            myOptions);
            google.maps.event.addListener(map, 'click', function(event) {
                placeMarker(event.latLng);
            });
            var marker;
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(ltd, lgd),
                map: map
            });
        }
    </script>
    <?php echo "<body onload='initialize(36.835769,10.247693)'>"; ?>
    <div id="map_canvas<?php echo $i ?>" style="margin-top:18px; width: 136px; height: 136px;"></div>
    <?php
}
?>

谢谢你的帮助 :)

4

1 回答 1

1

您正在创建函数初始化多次,什么没用,每次都会覆盖该函数。

仅使用该函数 1 次并将地图的 id 作为参数传递:

<script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script>
        function initialize(ltd,lgd,map) {
            var myOptions = {
                center: new google.maps.LatLng(ltd, lgd ),
                zoom: 15,
                panControl: false,
                zoomControl: false,
                mapTypeControl: false,
                scaleControl: false,
                streetViewControl: false,
                overviewMapControl: false,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById(map),
            myOptions);
            google.maps.event.addListener(map, 'click', function(event) {
                placeMarker(event.latLng);
            });
            var marker;
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(ltd, lgd),
                map: map
            });
        }
    </script>
<?php
for ($i = 1; $i <= 4; $i++) {
    echo "map n:" . $i . "<br/>";
    ?>
    <div id="map_canvas<?php echo $i ?>" 
         style="margin-top:18px; width: 136px; height: 136px;"></div>
    <script>
    google.maps.event
     .addDomListener(window, 
                    'load', 
                    function()
                    {
                     initialize(36.835769,
                                10.247693,
                                'map_canvas<?php echo $i;?>')});
    </script>
    <?php
}
?>
于 2012-05-11T21:30:14.040 回答