基本的に...ビジネスロジックはこのようなものです:
あなたがマップオブジェクトから境界を取得し、レコードをフェッチするSQLクエリにAJAXを経由してパラメータとしてこれらを渡す必要があり、例えばminLat/maxLat & minLng/maxLng ...これらはWHERE条件に入ります。これは、あなたの地理データから「四角形を切り取る」でしょう。これらの値を5〜10%調整すると、境界に非常に近いポイントがマップに塗りつぶされることはありません(これは美容的な修正です)。
ちょうど(それがjQueryのを使用しています)、GoogleマップAPIのための私のドライブ上のいくつかのサンプルJSコードを見つけました:左に上場への取り込み
function loadViewport() {
var b = map.getBounds();
$.minY = b.getNorthEast().lng();
$.maxY = b.getSouthWest().lng();
$.minX = b.getSouthWest().lat();
$.maxX = b.getNorthEast().lat();
$.url = "http://www.somehost.com/data.php?mode=viewport&minX="+$.minX+"&maxX="+$.maxX+"&minY="+$.minY+"&maxY="+$.maxY;
$.ajax({type:"GET",url:$.url,dataType:"json",success: parseJSON});
}
は機能parseJSON(で行うことでする必要があります)...これは動作しません、他 - データ型フロートである必要はもちろん
WHERE
(`location`.`latitude` BETWEEN ".(float)$minX." AND ".(float)$maxX.")
AND
(`location`.`longitude` BETWEEN ".(float)$maxY." AND ".(float)$minY.")
テーブルの列:SQLの条件はそのようなものになるだろう
ザ・確かに。
あなたが見ることができるように、私はfloatに文字列からキャストよ - 比較を可能にするために...このことができます
希望、マップクエストのためのコードは変更される場合があります - しかし論理は全く同じでなければなりません。
Source
ドロップマーカーがあり、四隅のうち2つだけが使用されていることがわかります。 –