2012-05-11 13 views
0

Я использую API-интерфейс google map v3, и у меня есть проблема.Google map api v3 issue

Мне нужно отобразить их с несколькими картами, и я не знаю количество карт.

Вот код 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 
} 
?> 

Спасибо за любую помощь :)

+1

Так что же это ваша проблема? –

+0

Карта отображается только один раз в конце. – Houx

ответ

1

Вы создаете функцию инициализации несколько раз, что бесполезно, функция будет перезаписан каждый раз.

Используйте функцию только один раз, и передать идентификатор карты в качестве аргумента:

<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 
} 
?> 
+0

спасибо многому человеку :) – Houx

Смежные вопросы