2016-06-11 6 views
0

私はウェブサイトの開発にGoogleマップを使用しています。私のデータベースには多くのマーカーがあります。現在の地図に表示されている領域にあるマーカーをロードします。ズーミングが変わると、マーカの数もそれに応じて調整する必要があります。最善のアプローチは何ですか?前もって感謝します!Googleマップは表示された領域のマーカーのみを読み込みます

+0

なぜ表示されていないマーカーを削除する必要がありますか?私はあなたがこれの最終目標を説明する必要があると思います。 – DBS

答えて

2

使用します。また、追加したりする場合、ユーザーの変更データを削除するのbounds_changed機能を使用することができます

"select lat, lng 
    from your_table 
    where lat = $minLat 
    AND lat <= $maxLat 
    AND lng <= $maxLng 
    AND lng >= $minLng"; 
+0

それは動作します!私はこれを必要としました。何千ものマーカがパフォーマンスを考慮して本当の打撃となるでしょう。ありがとう@scaisEdge –

+0

私の答えが正しければ、それを受け入れたものとしてマークしてください – scaisEdge

2

バインド

aNord = this.map.getBounds().getNorthEast().lat(); 
    aEst = this.map.getBounds().getNorthEast().lng(); 
    aSud = this.map.getBounds().getSouthWest().lat(); 
    aOvest = this.map.getBounds().getSouthWest().lng(); 

フィルタ(サーバー側)データベースからのデータのために(この場合はPHPで)地図をズームまたはパンする。

var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 12, 
     center: {lat:41.082774, lng: 28.86821}, 
     disableDefaultUI: true 
    }); 

    google.maps.event.addListener(map, 'bounds_changed', function() { 
    aNord = map.getBounds().getNorthEast().lat(); 
    aEst = map.getBounds().getNorthEast().lng(); 
    aSud = map.getBounds().getSouthWest().lat(); 
    aOvest = map.getBounds().getSouthWest().lng(); 
    }); 
関連する問題