相关疑难解决方法(0)

MySQL大圆距离(Haversine公式)

我有一个工作的PHP脚本,它获取经度和纬度值,然后将它们输入到MySQL查询中.我想把它做成MySQL.这是我目前的PHP代码:

if ($distance != "Any" && $customer_zip != "") { //get the great circle distance

    //get the origin zip code info
    $zip_sql = "SELECT * FROM zip_code WHERE zip_code = '$customer_zip'";
    $result = mysql_query($zip_sql);
    $row = mysql_fetch_array($result);
    $origin_lat = $row['lat'];
    $origin_lon = $row['lon'];

    //get the range
    $lat_range = $distance/69.172;
    $lon_range = abs($distance/(cos($details[0]) * 69.172));
    $min_lat = number_format($origin_lat - $lat_range, "4", ".", "");
    $max_lat = number_format($origin_lat + $lat_range, "4", ".", "");
    $min_lon = number_format($origin_lon - $lon_range, "4", ".", "");
    $max_lon = …
Run Code Online (Sandbox Code Playgroud)

php mysql great-circle

181
推荐指数
4
解决办法
10万
查看次数

测量PHP中两个坐标之间的距离

嗨,我需要计算具有lat和long的两个点之间的距离.

我想避免任何外部API调用.

我尝试在PHP中实现Haversine公式:

这是代码:

class CoordDistance
 {
    public $lat_a = 0;
    public $lon_a = 0;
    public $lat_b = 0;
    public $lon_b = 0;

    public $measure_unit = 'kilometers';

    public $measure_state = false;

    public $measure = 0;

    public $error = '';



    public function DistAB()

      {
          $delta_lat = $this->lat_b - $this->lat_a ;
          $delta_lon = $this->lon_b - $this->lon_a ;

          $earth_radius = 6372.795477598;

          $alpha    = $delta_lat/2;
          $beta     = $delta_lon/2;
          $a        = sin(deg2rad($alpha)) * sin(deg2rad($alpha)) + cos(deg2rad($this->lat_a)) * cos(deg2rad($this->lat_b)) * sin(deg2rad($beta)) * sin(deg2rad($beta)) ;
          $c        = …
Run Code Online (Sandbox Code Playgroud)

php geocoding coordinates haversine

133
推荐指数
6
解决办法
14万
查看次数

根据纬度/经度获取两点之间的距离

我尝试实现这个公式:http ://andrew.hedges.name/experiments/haversine/ aplet对我测试的两个点有好处:

在此输入图像描述

但我的代码不起作用.

from math import sin, cos, sqrt, atan2

R = 6373.0

lat1 = 52.2296756
lon1 = 21.0122287
lat2 = 52.406374
lon2 = 16.9251681

dlon = lon2 - lon1
dlat = lat2 - lat1
a = (sin(dlat/2))**2 + cos(lat1) * cos(lat2) * (sin(dlon/2))**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
distance = R * c

print "Result", distance
print "Should be", 278.546
Run Code Online (Sandbox Code Playgroud)

它返回的距离是5447.05546147.为什么?

python geocoding geography geo

121
推荐指数
7
解决办法
17万
查看次数

如何从sql数据库中使用纬度和经度查找最近的位置?

我想从下面的数据库表中找到最近的位置

Address                            Latitude                longitude 

Kathmandu 44600, Nepal              27.7                   85.33333330000005
Los, Antoniterstraße                37.09024               -95.71289100000001
Sydney NSW, Australia               49.7480755             8.111794700000019
goa india                           15.2993265             74.12399600000003
Run Code Online (Sandbox Code Playgroud)

我从谷歌地图中获取了所有这些数据.在这里,我必须找到一个地方最近的位置.假设我在Surkhet的地方,它的纬度是28.6,经度是81.6,我怎样才能找到距离Surkhet最近的地方.

php mysql google-maps

37
推荐指数
2
解决办法
6万
查看次数

邻近搜索

应用程序如何执行邻近搜索?例如,用户键入邮政编码,然后该应用程序列出通过邻近排序的20英里内的所有商家.

我想在PHP和MySQL中构建类似的东西.这种方法是否正确?

  1. 获取我感兴趣的位置的地址并存储在我的数据库中
  2. 使用Google的地理编码服务对所有地址进行地理编码
  3. 编写包含Haversine公式的数据库查询,以进行邻近搜索和排序

这个可以吗?在第3步中,我将计算每个查询的接近度.有一个PROXIMITY表是否更好地列出了每个企业和几个参考位置之间的距离?

php mysql proximity

21
推荐指数
2
解决办法
8569
查看次数

Python的权威"寻找我的地理定位"解决方案

所以我一直在网上寻找一个Python库,它会返回你确切的当前位置,并发现没有任何可用的东西,除非你通过你的IP地址找到你的位置的廉价和不准确的方法,我已经在我的移动热点上进行了测试,并且距离100英里.

我有另一个解决方案,但它需要将JavaScript与Python混合,我需要帮助,我只在Python/Django上工作了几天.

由于Python是服务器端,我无法找到任何可以精确定位您的精确经度和纬度的库.但是使用客户端JavaScript,这非常简单,无需任何库:

http://jsfiddle.net/3bERp/1/

所以我想知道是否有任何Python程序员在那里有更多的经验,可以在这里解释如何运行上面的javascript代码,并将javascript输出作为Python字符串返回:

    python
    >>>javascriptOutput = runJavaScript("<script> function showPosition(position) </script>")
    >>>print javascriptOutput
    <p id="long">-122.15563439999998</p> <p id="lat">37.4458668</p>
    >>>
Run Code Online (Sandbox Code Playgroud)

所以我的想法是在我在单个python函数中提供的JSfiddle URL中运行整个HTML块,它将返回JSfiddle提供的相同结果.

有了这个结果,我可以将它存储在一个python变量中并对它进行一些字符串连接,最终存储我准确的客户端经度和纬度坐标.

那么可以在Python函数中运行一些JavaScript吗?

要么

您可以使用Python/Django以某种方式读取用户在运行javascript/HTML5地理位置后看到的HTML源吗?

我现在越想到这一点,我就越开始认为Javascript将需要AJAX到Django服务器......

python django

9
推荐指数
1
解决办法
1296
查看次数

使用 C# MongoDB 查询在数据库集合中查找最近的纬度/经度

我有一个 MongoDB 集合,其中包含数百万条记录,如下所示

{ 
    "_id" : ObjectId("5e662d6e9ce8bf144c715afd"), 
    "X" : 19.229000091552734, 
    "Y" : 233.723388671875,  
    "Data" : {
       // Some data
    }
}
{ 
    "_id" : ObjectId("5e662d6e9ce8bf144c715afe"), 
    "X" : 19.229000091552734, 
    "Y" : 2773.426513671875, 
    "Data" : {
        // Some data
    }
}
Run Code Online (Sandbox Code Playgroud)

我想出了两个地理坐标的远程计算器

public static double DistanceTo(this Coordinates baseCoordinates, Coordinates targetCoordinates, UnitOfLength unitOfLength)
        {
            var baseRad = Math.PI * baseCoordinates.Latitude / 180;
            var targetRad = Math.PI * targetCoordinates.Latitude / 180;
            var theta = baseCoordinates.Longitude - targetCoordinates.Longitude;
            var thetaRad = Math.PI * theta / …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-csharp-2.0

5
推荐指数
0
解决办法
556
查看次数

PHP-计算接近50公里的经度和纬度

我有这些数据:

纬度:50.223137

经度:18.679558

现在我想在PHP中创建一个特殊的函数,该函数将能够计算小于50 km的最小经纬度和最大经纬度。最后,我想获得4个参数,并希望在简单的SQL查询中使用这些参数:SELECT * FROM table WHERE lat >= [min_lat] AND lng >= [min_lng] AND lat <= [max_lat] AND lng <= [max_lng];

我知道,我只能使用一个sql查询来做到这一点:纬度/经度查找最近的纬度/经度-复杂的sql或复杂的计算,但是我的数据库中现在有20.000.000条记录,并且它仍在增长。我还必须在sql数据库中搜索其他内容,因此我想基于PHP计算所有内容,然后以这种方式在sql中搜索:SELECT * FROM table WHERE lat >= [min_lat] AND lng >= [min_lng] AND lat <= [max_lat] AND lng <= [max_lng];因为我认为-这是更快的方法。

我也找到了这个函数:https : //www.geodatasource.com/developers/php,这很不错,但是我想以其他方式创建该函数-我想声明为参数:lat,lng和distance(例如:50 km) )。最后,我想获取4个参数-min_lat,min_lng,max_lat,max_lng。

有人可以帮助我创建此功能吗?

谢谢。

php google-maps

-1
推荐指数
1
解决办法
1252
查看次数