0

Google マップ 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 に答える