Javascript 缩放:10, 中心:拉特林, mapTypeId:google.maps.mapTypeId.ROADMAP, mapTypeControl:false }; var map=new google.maps.map(document.getElementB

Javascript 缩放:10, 中心:拉特林, mapTypeId:google.maps.mapTypeId.ROADMAP, mapTypeControl:false }; var map=new google.maps.map(document.getElementB,javascript,php,mysql,google-maps-api-3,Javascript,Php,Mysql,Google Maps Api 3,缩放:10, 中心:拉特林, mapTypeId:google.maps.mapTypeId.ROADMAP, mapTypeControl:false }; var map=new google.maps.map(document.getElementById('map'),myOptions); var infowindow=new google.maps.infowindow(),marker,lat,lng; var json=json.parse(标记); for(json中的var

缩放:10, 中心:拉特林, mapTypeId:google.maps.mapTypeId.ROADMAP, mapTypeControl:false }; var map=new google.maps.map(document.getElementById('map'),myOptions); var infowindow=new google.maps.infowindow(),marker,lat,lng; var json=json.parse(标记); for(json中的var o){ lat=json[o].lat; lng=json[o].lng; name=json[o].name; marker=新的google.maps.marker({ 位置:新google.maps.LatLng(lat,lng), 姓名:姓名,, 地图:地图 }); google.maps.event.addListener(标记,'click',函数(e){ infowindow.setContent(this.name); 打开(地图,这个); }.绑定(标记); } }
您正在将整个脚本包含在循环中,即每次执行循环时,都会生成一个新的映射实例将映射移动到循环外,只在循环内标记如何操作?您正在将整个脚本包含在循环中,即每次执行循环时,都会生成一个新的映射实例将映射移动到循环外,只在循环内标记如何操作我会那样做吗?
<?php
require_once "db/db_handle.php";
$select = "SELECT * FROM map";
$data = $db->query($select);
?>
<!DOCTYPE html>
<html>
  <head>
    <style>
      #map {
        height: 400px;
        width: 100%;
       }
    </style>
  </head>
  <body>
    <h3>My Google Maps Demo</h3>
    <div id="map"></div>
    <?php foreach ($data as $key) {
      echo $key['lat'];
    ?>
    <script>
      function initMap() {
        var uluru = {lat: <?php echo $key['lat']; ?>, lng: <?php echo $key['lng']; ?>};
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 12,
          center: uluru
        });
        var marker = new google.maps.Marker({
          position: uluru,
          map: map
        });
        var contentString = '<?php echo $key['address']; ?>';

        var infowindow = new google.maps.InfoWindow({
          content: contentString
        });

        var marker = new google.maps.Marker({
          position: uluru,
          map: map,
          title: 'Uluru (Address)'
        });
        marker.addListener('click', function() {
          infowindow.open(map, marker);
        });
      }
    </script>
    <?php  } ?>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=myKey&callback=initMap">
    </script>
  </body>
</html>
require_once "db/db_handle.php";
$select = "SELECT * FROM map";
$data = $db->query($select);
foreach ($data as $key)
            $locations[]=array( 'name'=>'Location Name', 'lat'=>$key['lat'], 'lng'=>$key['lng'] );
}
/* Convert data to json */
$markers = json_encode( $locations ); 
<script type='text/javascript'>
        <?php
            echo "var markers=$markers;\n";

        ?>
     function initMap() {

            var latlng = new google.maps.LatLng(-33.92, 151.25); // default location
            var myOptions = {
                zoom: 10,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: false
            };

            var map = new google.maps.Map(document.getElementById('map'),myOptions);
            var infowindow = new google.maps.InfoWindow(), marker, lat, lng;
            var json=JSON.parse( markers );

            for( var o in json ){

                lat = json[ o ].lat;
                lng=json[ o ].lng;
                name=json[ o ].name;

                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(lat,lng),
                    name:name,
                    map: map
                }); 
                google.maps.event.addListener( marker, 'click', function(e){
                    infowindow.setContent( this.name );
                    infowindow.open( map, this );
                }.bind( marker ) );
            }
        }
 require_once "db/db_handle.php";
    $select = "SELECT * FROM map";
    $data = $db->query($select);
    foreach ($data as $key)
                $locations[]=array( 'name'=>'Location Name', 'lat'=>$key['lat'], 'lng'=>$key['lng'] );
    }
    /* Convert data to json */
    $markers = json_encode( $locations );
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <style>
          #map {
            height: 400px;
            width: 100%;
           }
        </style>
      </head>
      <body>
        <h3>My Google Maps Demo</h3>
        <div id="map"></div>
        <script type='text/javascript'>
        <?php
            echo "var markers=$markers;\n";

        ?>

        function initMap() {

            var latlng = new google.maps.LatLng(-33.92, 151.25); // default location
            var myOptions = {
                zoom: 10,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: false
            };

            var map = new google.maps.Map(document.getElementById('map'),myOptions);
            var infowindow = new google.maps.InfoWindow(), marker, lat, lng;
            var json=JSON.parse( markers );

            for( var o in json ){

                lat = json[ o ].lat;
                lng=json[ o ].lng;
                name=json[ o ].name;

                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(lat,lng),
                    name:name,
                    map: map
                }); 
                google.maps.event.addListener( marker, 'click', function(e){
                    infowindow.setContent( this.name );
                    infowindow.open( map, this );
                }.bind( marker ) );
            }
        }
        </script>
        <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=myKey&callback=initMap">
        </script>
      </body>
    </html>