Какой самый простой способ отобразить несколько местоположений, используя Google Map API с MySQL и PHP? - PullRequest
0 голосов
/ 01 августа 2011

Я хотел бы отобразить более 100 мест с подробным содержимым пузырьков (например, название компании, адрес, номер телефона, веб-сайт, отрасль) на пользовательской карте Google.Как я могу получить эти местоположения из базы данных MySQL, используя Google Maps API 3 и PHP?

1 Ответ

2 голосов
/ 24 апреля 2012

скажем, у вас есть база данных SQL этого типа:
id / lat / lon / comment

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key= **your key** &sensor=true">
</script>


    $sqlprep = "SELECT * FROM table_name";

    $doselect = mysql_query($sqlprep);

    echo "<script> var locations = [";

        while ($loc = mysql_fetch_assoc($doselect)){

        echo "['" .$loc[comment] ."', " . $loc['lat'] . ", " . $loc['lon'] . "";

        }

    echo " ];</script>";

и затем в вашей Java:

<script>jQuery(window).ready(function(){


          function initialize() {
                var myLatlng = new google.maps.LatLng( YOUR CENTER LAT,LAN HERE );
               var myOptions = {
                 center: myLatlng,
                 zoom: 15,
                 mapTypeId: google.maps.MapTypeId.ROADMAP
               };


  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);



             var infowindow = new google.maps.InfoWindow()


    var marker, i;

    for (i = 0; i < locations.length; i++) {  
            marker = new google.maps.Marker({
            position: new google.maps.LatLng(locations[i][1], locations[i][2]),


              map: map
            });


//adding the pop up windows here:

            google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                      infowindow.setContent(locations[i][0]);
                      infowindow.open(map, marker);
                    }
            })(marker, i));


      }

  initialize() ; 


   });  </script>

Ваш HTML должен выглядеть примерно так:

<html>
<body >
<div id="map_canvas" >
</div>
</body>
</html>     

Я мог бы пропустить некоторые скобки, но вы поняли;) надеюсь, это поможет даже через 8 месяцев:)

...