javascript - Google Maps Circle/MySQL 查询

标签 javascript mysql google-maps geometry haversine

我想在 map 上画一个圆圈,并获取数据库中的所有行,其中包含落入该圆圈的纬度/经度点。

我不想使用 google.maps.Circle 绘制圆圈,因为这会应用墨卡托投影失真。我想要一个几何圆而不是地理圆。

所以我可能可以使用某种叠加层将其绘制到 Google map 上。但是可以在我的数据库中查询这些点吗?

如果我要画一个地理圈,我可以使用 haversine formula ,但这不适用于几何圆。

最佳答案

您可以使用毕达哥拉斯来查找圆内的点。

a^2 + b^2 = c^2

以下 SQL 使用 PDO查找圆半径内的点

$stmt = $dbh->prepare("SELECT  name, lat, lng, ( SQRT(POW(? - lat, 2)
                      + POW(? - lng, 2))) AS distance FROM mytable   
                       HAVING distance < ? ORDER BY distance ASC ");
    // Assign parameters
    $stmt->bindParam(1,$center_lat);//Center of circle
    $stmt->bindParam(2,$center_lng);////Center of circle
    $stmt->bindParam(3,$radius);

Javascript 函数(如果需要)

function Pythagoras (x1,y1,x2,y2){
    var Dist = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
return Dist ;
}

关于javascript - Google Maps Circle/MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28031516/

相关文章:

javascript - rails : Delete nested attribute while updating entry

javascript - 减慢 html anchor 链接

php - 根据动态创建的Id删除特定图片

android - 过滤自定义ArrayAdapter或在 Activity 中实现搜索

google-maps - 嵌入式谷歌地图与 API V3

javascript - 如何使用 JavaScript 制作 HTML 标记

mysql - 对于该应用程序来说,最好的数据库缓存是什么?

mysql - 这是从具有多个选择的下拉列表中存储选项的方法吗?

javascript - 使用 MVC 在 googlemap 上创建多边形并将结果保存到数据库

javascript - 谷歌地图设置 DirectionsRenderer 对象的方向不绘制路线