Javascript 选择经度和纬度最近的记录

Javascript 选择经度和纬度最近的记录,javascript,php,mysql,wordpress,google-maps,Javascript,Php,Mysql,Wordpress,Google Maps,我将经度和纬度存储在数据库中,如 表名:km_商店 字段:门店id、门店长度、门店宽度、门店名称 如何使用最近的商店的经度和纬度来查找它们 我正在使用 <script> var x = document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPositi

我将经度和纬度存储在数据库中,如

表名:km_商店 字段:门店id、门店长度、门店宽度、门店名称

如何使用最近的商店的经度和纬度来查找它们

我正在使用

<script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    document.getElementById("km_long").value = position.coords.latitude;
    document.getElementById("km_lat").value = position.coords.longitude;    
}
</script>
<strong>Long:</strong> <input type="text" id="km_long" /> <strong>Latitude:</strong> <input type="text" id="km_lat" />
[php]

global $wpdb;
$results = $wpdb->get_results('select * from km_stores', OBJECT );
foreach ($results as $store) {
            echo $store->store_name;
}
[/php]

var x=document.getElementById(“演示”);
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition);
}否则{
x、 innerHTML=“此浏览器不支持地理位置。”;
}
}
功能显示位置(位置){
document.getElementById(“km_long”).value=position.coords.latitude;
document.getElementById(“km_lat”).value=position.coords.longitude;
}
长:纬度:
[菲律宾]
全球$wpdb;
$results=$wpdb->get_results('select*from km_stores',OBJECT);
foreach($results as$store){
echo$store->store\u name;
}
[/php]

[php][/php]
标记,因为我在WordPress页面插件中使用php。

使用毕达哥拉斯来获得它们与坐标的距离

如果你的坐标是5,15(为了参数起见),你的第一个存储是10,20。你可以使用

$distance = sqrt((5 - 10) * (5 - 10) + (15 - 20) * (15 - 20))
这个公式可能给你一个负数,但是如果你忽略-,你会得到距离


抱歉,这个答案有点粗糙。

现在您的select语句正在拉入所有点,因此您希望将其限制为仅拉入附近的点。最简单的方法是在数据库表中添加lat和lng值的搜索条件

$query = 'SELECT * FROM km_stores WHERE lat BETWEEN ' . $lat - x . ' AND ' . $lat + x;
$query = $query . ' AND lng BETWEEN ' . $lng - x . ' AND ' . $lng + x;
$results = $wpdb->get_results($query, OBJECT );
这假设您定义了$lat和$lng值,表示要搜索的点(看起来您将它们称为km_lat和km_lng)。然后,将x替换为希望点位于范围内的lat/lng距离。使用这些值来决定哪个数字适用于您的应用程序。

可能的重复: