开发者

Google maps marker infowindow

开发者 https://www.devze.com 2023-03-03 14:11 出处:网络
<?php //connect to your database ** EDIT REQUIRED HERE ** mysql_connect(\"localhost\",\"root\",\"root\"); //(host, username, password)
<?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>

Can someone please explain to me why when I click on diffrent marker i still get an alert which has the content of the last marker??? And I would be very grateful if anyone could change the code above to make the alert unique for each one... I've been stuck on this for hours and can't find a solution.


What you are having is a closure problem, This post has a brief definition of the problem and the solution

0

精彩评论

暂无评论...
验证码 换一张
取 消