Php MySQL数据库上的Google地图上的多个标记未显示

Php MySQL数据库上的Google地图上的多个标记未显示,php,jquery,mysql,json,google-maps-api-3,Php,Jquery,Mysql,Json,Google Maps Api 3,我试图在谷歌地图上显示mysql中的多个标记 我的地图显示正确,但标记没有显示 我有一个从mysql检索数据的php脚本 php: html: 函数initMap(){ var latlng=new google.maps.latlng(-34.031342,18.577419);//默认位置 变量myOptions={ 缩放:16, 中心:拉特林, mapTypeId:google.maps.mapTypeId.SATELLITE, mapTypeControl:true }; var ma

我试图在谷歌地图上显示mysql中的多个标记

我的地图显示正确,但标记没有显示

我有一个从mysql检索数据的php脚本

php:

html:


函数initMap(){
var latlng=new google.maps.latlng(-34.031342,18.577419);//默认位置
变量myOptions={
缩放:16,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.SATELLITE,
mapTypeControl:true
};
var map=new google.maps.map(document.getElementById('mapall'),myOptions);
var infowindow=new google.maps.infowindow(),marker,lat,lng;
var json=json.parse(标记);
for(json中的var i){
lat=(json[i].GPS1);
lng=(json[i].GPS2);
名称=(json[i]。客户端地址);
marker=新的google.maps.marker({
位置:新google.maps.LatLng(lat,lng),
姓名:姓名,,
地图:地图
}); 
google.maps.event.addListener(标记,'click',函数(e){
infowindow.setContent(this.name);
打开(地图,这个);
}.绑定(标记);
}
}
西卡洛现役部队
我的主要依据是:
您不需要执行JSON.parse,只需通过JSON标记循环即可

for( i = 0; i < markers.length; i++ ) {
    lat = (markers[i].GPS1);
    lng = (markers[i].GPS2);
    name = (markers[i].client_address);
for(i=0;i

那太疯狂了。 相反,应该这样做,因为您已经在解析JSON字符串,这应该可以工作,并且看起来更干净

         <script>

            var markers='<?=$markers;?>';


            function initMap() { ...

var标记=“”;
函数initMap(){。。。
    <script>
            <?php
                echo "var markers=$markers;\n";
            ?>

                function initMap() {
                var latlng = new google.maps.LatLng(-34.031342, 18.577419); // default location
                var myOptions = {
                    zoom: 16,
                    center: latlng,
                    mapTypeId: google.maps.MapTypeId.SATELLITE,
                    mapTypeControl: true
                };

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

                for( var i in json ){

                    lat = (json[i].GPS1);
                    lng = (json[i].GPS2);
                    name = (json[i].client_address);

                    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=AIzaSyANS0uqM7qedfDCzPjJ3xoB15vh2DC4Tls&callback=initMap">
             </script>

<div class="row">
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading"><b>Siqalo Active Units</b></div>
<div class="panel-body">
<div id="mapall" style="width:350px;height:350px;"></div> 
</div>
</div>    
</div>
</div>
for( i = 0; i < markers.length; i++ ) {
    lat = (markers[i].GPS1);
    lng = (markers[i].GPS2);
    name = (markers[i].client_address);
           <?php
            echo "var markers=$markers;\n";
        ?>
         <script>

            var markers='<?=$markers;?>';


            function initMap() { ...