我有一张包含数百万个地点的桌子
- ID
- 地址
- 经度
- 纬度
用户可以输入一个地址,他可以在谷歌地图中以 5 公里半径获得最近的位置。
我的选择查询:
$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 个位置时,它不显示谷歌地图。我不想使用 LIMIT 0,10,我想显示所有结果。
如何将查询拆分为每次从大表中搜索 10%?
在页面加载后将标记置于运行时。