Google maps mark infowindow - PullRequest
       2

Google maps mark infowindow

1 голос
/ 08 мая 2011
<?php
        //connect to your database ** EDIT REQUIRED HERE **
        mysql_connect("localhost","root","root"); //(host, username, password)

        //specify database ** EDIT REQUIRED HERE **
        mysql_select_db("Airport") or die("Unable to select database");
        //select which database we're using
        $query="select * from LondonHeathrowAirportArrivals ORDER BY id DESC";  
        // query string stored in a variable
        $rt=mysql_query($query);
        // query executed 
        echo mysql_error(); 

        while($nt=mysql_fetch_array($rt)){
            $counter=$counter+1;
            $angle=round($nt['angle'], -1);
        ?>
        <script type="text/javascript">
        function initialize() {

          var myLatlng = new google.maps.LatLng(51.48, -0.52);
          var myOptions = {
            zoom: 8,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          }
          map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
          var flightPlanCoordinates = [
            path1, path2, path3, path4, path5, path6
          ];

          var flightPath = new google.maps.Polyline({
            path: flightPlanCoordinates,
            strokeColor: "#FF0000",
            strokeOpacity: 1.0,
            strokeWeight: 2
          });

          flightPath.setMap(map);
           for (i=1;i<=1000;i++){
              var marker<?= $nt['Flightnumber'] ?> = new google.maps.Marker({
                  position:eval('myLatlng'+i),
                  map: map, 
                  title:eval('title'+i),
                  icon: eval('image'+i)
              }); 
              google.maps.event.addListener(marker<?= $nt['Flightnumber'] ?>, 'click', function() {
                 alert('<?= $nt[Flightnumber] ?>');
                });

          }
        }
                var myLatlng<?php echo $counter ?>= new google.maps.LatLng(<?php echo $nt['Length'] ?>,<?php echo $nt['Breadth'] ?>);
                var image<?php echo $counter ?> = new google.maps.MarkerImage('img/plane<?= $angle ?>.png', new google.maps.Size(35, 35), new google.maps.Point(0,0), new google.maps.Point(0, 12));
                var title<?php echo $counter ?> = "<?= $nt[Flightnumber] ?>";
                var path1= new google.maps.LatLng(51.51,-0.60);
                var path2= new google.maps.LatLng(51.50,-0.58);
                var path3= new google.maps.LatLng(51.49,-0.57);
                var path4= new google.maps.LatLng(51.48,-0.55);
                var path5= new google.maps.LatLng(51.48,-0.53);
                var path6= new google.maps.LatLng(51.48,-0.52);
            </script>
            <?php               
            }
        ?>
</head>

Может кто-нибудь объяснить мне, почему, когда я нажимаю на другой маркер, я все равно получаю предупреждение, в котором содержится содержание последнего маркера ??? И я был бы очень признателен, если бы кто-нибудь мог изменить приведенный выше код, чтобы сделать оповещение уникальным для каждого ... Я застрял на этом часами и не могу найти решение.

1 Ответ

0 голосов
/ 08 мая 2011

То, что у вас есть, является проблемой закрытия, В этом посте есть краткое определение проблемы и решения

...