Google maps 在谷歌地图信息窗口中显示超过1450个标记

Google maps 在谷歌地图信息窗口中显示超过1450个标记,google-maps,google-maps-markers,infowindow,Google Maps,Google Maps Markers,Infowindow,我已经用谷歌地图制作了一些GIS网站。但是我有一些麻烦。我必须显示大约1500-2500个标记,并使用infowindows onclick。2天前,一切正常,但当我在信息窗口中添加越来越多的细节时(以前只有4个细节信息,如姓名、地址等,现在有9个细节信息),标记没有出现。我使用Json消息函数从数据库中获取值并显示在infowindows中。如果是1450个标记,则效果很好,但当标记超过该值时,标记不会显示在地图上。是否存在内存缓存或cookies问题??请帮忙。谢谢我正在使用谷歌浏览器、Po

我已经用谷歌地图制作了一些GIS网站。但是我有一些麻烦。我必须显示大约1500-2500个标记,并使用infowindows onclick。2天前,一切正常,但当我在信息窗口中添加越来越多的细节时(以前只有4个细节信息,如姓名、地址等,现在有9个细节信息),标记没有出现。我使用Json消息函数从数据库中获取值并显示在infowindows中。如果是1450个标记,则效果很好,但当标记超过该值时,标记不会显示在地图上。是否存在内存缓存或cookies问题??请帮忙。谢谢我正在使用谷歌浏览器、Postgre数据库、PHP和谷歌地图api v3

<?php  
require ('config.php');
$rayon = $_POST['rayon'];
$cabang = $_POST['org_id'];
//echo "$rayon, $cabang, $rayonhasil";
$sql = "SELECT distinct org_id, cp_customer_site_use_id, customer_name, address, postal_code, city, cp_rayon_name, icon_rayon, attribute16, attribute17 FROM hasilgis";
$data = pg_query($sql);
$json = '{"enseval": {';
$json .= '"customer":[ ';
while($x = pg_fetch_array($data)){
    $json .= '{';
    $json .= '"id_customer":"'.$x['org_id'].'",
        "id_photo":"'.$x['cp_customer_site_use_id'].'",
        "postal_code":"'.$x['postal_code'].'",
        "nama_customer":"'.htmlspecialchars($x['customer_name']).'",
        "city":"'.htmlspecialchars($x['city']).'",
        "address":"'.htmlspecialchars($x['address']).'",
        "nama_rayon":"'.htmlspecialchars($x['cp_rayon_name']).'",
        "icon":"'.$x['icon_rayon'].'",
        "x":"'.$x['attribute16'].'",
        "y":"'.$x['attribute17'].'"
    },';
}
$json = substr($json,0,strlen($json)-1);
$json .= ']';
$json .= '}}';

echo $json;
?>



函数初始化(){
var-peta;
var x=新数组();
var y=新数组();
var customer_name=新数组();
var cp_rayon_name=新数组();
var icon=新数组();
var photo=新数组();
var city=新数组();
var address=新数组();
var postal_code=新数组();
//posisi默认peta saat卸载
var lokasibaru=new google.maps.LatLng(-1.2653859116.83119997);
变量选项={
缩放:5,
中心:洛卡西巴鲁,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
peta=new google.maps.Map(document.getElementById(“Map_canvas”),peta选项);
var infowindow=new google.maps.infowindow({
内容:“”
});
//发挥协调作用
url=“json.php”;
$.ajax({
url:url,
数据类型:“json”,
cache:false,
成功:功能(msg){
对于(i=0;i

我不知道你希望我们如何帮助你。当它不起作用时,你会遇到什么javascript错误?你的代码是什么样子的?你能提供一个指向显示问题的映射的链接吗?或者一个JSFIDLE?错误只是当大约1600个标记或更多标记时,标记没有显示在映射中。我会给你代码。我希望你有already和我一样经历过问题,知道如何解决它。你使用的是什么浏览器?你检查过javascript控制台的错误吗?你能提供一个显示问题的例子(第二次请求链接或JSFIDLE)吗?如果没有你的数据和/或数据库,你的PHP是无用的(至少对我来说)。通常,当添加数据导致问题时,这是数据中的问题,而不是代码中的问题…最好使用json_encode,而不是“手动”创建json,以避免代码中的无效字符JSON@dr.molle谢谢,我会尝试一下,也许这是解决方案,但我从未使用json_编码,但非常感谢提供的信息。
<script type="text/javascript">
    function initialize(){
    var peta;
    var x = new Array();
    var y = new Array();
    var customer_name = new Array();
    var cp_rayon_name = new Array();
    var icon = new Array();
    var photo = new Array();
    var city = new Array();
    var address = new Array();
    var postal_code = new Array();
    // posisi default peta saat diload
    var lokasibaru = new google.maps.LatLng( -1.2653859,116.83119999999997);
    var petaoption = {
        zoom: 5,
        center: lokasibaru,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        peta = new google.maps.Map(document.getElementById("map_canvas"),petaoption);
        var infowindow =  new google.maps.InfoWindow({
                      content: ''
        });
    // memanggil function untuk menampilkan koordinat
        url = "json.php";
        $.ajax({
        url: url,
        dataType: 'json',
        cache: false,
        success: function(msg){
            for(i=0;i<msg.enseval.customer.length;i++){
                x[i] = msg.enseval.customer[i].x;
                y[i] = msg.enseval.customer[i].y;
                customer_name[i] = msg.enseval.customer[i].nama_customer;
                cp_rayon_name[i] = msg.enseval.customer[i].nama_rayon;
                icon[i] = msg.enseval.customer[i].icon;
                photo[i] = msg.enseval.customer[i].id_photo;
                city[i] = msg.enseval.customer[i].city;
                address[i] = msg.enseval.customer[i].address;
                postal_code[i] = msg.enseval.customer[i].postal_code;
                var point = new google.maps.LatLng(parseFloat(msg.enseval.customer[i].x),parseFloat(msg.enseval.customer[i].y));
                var gambar_tanda = 'assets/images/'+msg.enseval.customer[i].icon+'.png';
                var photo_cust = '<img src="assets/images/foto_cust/'+msg.enseval.customer[i].id_photo+'_1.jpg" style="width:200px;height:120px;"/>';
                //var nm_cust = msg.enseval.customer[i].nama_customer;
                //var nm_rayon = , msg.enseval.customer[i].nama_rayon;
                var html = '<b>' + customer_name[i] + '</b><br/>'+city[i]+ ', '+address[i]+', '+postal_code[i]+'<br/>' + cp_rayon_name[i] + '<br/>' + photo_cust;
                tanda = new google.maps.Marker({
                            position: point,
                            map: peta,
                            icon: gambar_tanda,
                            clickable: true
                });
            bindInfoWindow(tanda, peta, infowindow, html  );
            }
        }
        });
}
google.maps.event.addDomListener(window, 'load', initialize);
function bindInfoWindow(tanda, peta, infowindow, data) {
    google.maps.event.addListener(tanda, 'click', function() {
    infowindow.setContent(data);
    infowindow.open(peta, tanda);
    });
}
function reload(form){
    var val=form.org_id.options[form.org_id.options.selectedIndex].value;
    self.location='main_page.php?cabang=' + val ;
}
</script>
    <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<div id="wrapper"><!-- #wrapper -->
    <header><!-- header -->
        <br><br><br>
        <h1></h1>
    </header><!-- end of header -->

    <section id="main"><!-- #main content area -->
<div id="map_canvas" style=" align: left; width:1000px; height:500px"></div><br>
<?php require ('config.php'); 
    @$cabang=$_GET['cabang'];
    /*if(strlen($cabang) > 0 and !is_numeric($cabang)){ 
    echo "Data Error";
    exit;
    }*/
    $quer2=pg_query("SELECT DISTINCT orgid FROM epmgis order by orgid");
    if(isset($cabang) and strlen($cabang)){
        $quer=pg_query("SELECT DISTINCT nm_rayon FROM epmgis where orgid=$cabang order by nm_rayon"); 
    }
    else{$quer=pg_query("SELECT DISTINCT nm_rayon FROM epmgis order by nm_rayon"); }
        echo"<table>";
            echo"<tr>";
        echo "<form method=post name=f1 action='proses_map.php'>";
        echo " <td>Silahkan Pilih Kode Cabang </td><td>:</td><td><select name='org_id' onchange=\"reload(this.form)\"><option value=''></option>";
            while($noticia2 = pg_fetch_array($quer2)) { 
                if($noticia2['orgid']==@$cabang){echo "<option selected value='$noticia2[orgid]'>$noticia2[orgid]</option>"."<BR>";}
                    else{echo  "<option value='$noticia2[orgid]'>$noticia2[orgid]</option>";}
                }
                    echo "</select></td></tr>";
                    echo"<br>";
                    echo "<tr><td>Silahkan Pilih Rayon</td><td>:</td><td><select name='rayon'><option value=''></option>";
            while($noticia = pg_fetch_array($quer)) { 
                    echo  "<option value='$noticia[nm_rayon]'>$noticia[nm_rayon]</option>";
            }
                    echo "</select></td></tr>";
                    echo "<tr><td><input type=submit value=Submit>";
                    echo "</form>";
        echo"</td></tr>";
        echo"</table>";
?>