100 万を超える場所を含むテーブルがあります
- ID
- 住所
- 経度
- 緯度
ユーザーは住所を入力すると、Google マップで半径 5 km の最寄りの場所を取得できます。
私の選択クエリ:
$result = mysql_query("SELECT *, ( 6371 * acos( cos( radians(".$lat1.") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(".$lng1.") ) + sin( radians(".$lat1.") ) * sin( radians( lat ) ) ) ) AS distance FROM star HAVING distance < ".$rad." ORDER BY distance");
テーブルの結果、javascript <> 内
while ($row = mysql_fetch_array($result)) {
echo "
var marker".$row{'id'}." = new google.maps.Marker({
position: new google.maps.LatLng(".$row{'lat'}." , ".$row{'lng'}."),
map: map
});
var infowindow".$row{'id'}." = new google.maps.InfoWindow({
content: 'City : ".$row{'city'}.", Address : ".$row{'address'}." , Lat : ".$row{'lat'}." , Lng : ".$row{'lng'}."'
});
google.maps.event.addListener(marker".$row{'id'}.", 'click', function() {
infowindow".$row{'id'}.".open(map, marker".$row{'id'}.");
});
";
}
私の問題は、10 か所を超えると Google マップが表示されないことです。LIMIT 0,10 を使用したくありません。すべての結果を表示したいのです。
大きなテーブルから毎回 10% ずつ検索するようにクエリを分割するにはどうすればよいですか?
ページの読み込み後に実行時にマーカーを配置するようなものです。