相关疑难解决方法(0)

计算两点之间的距离(纬度,经度)

我试图计算地图上两个位置之间的距离.我存储了我的数据:经度,纬度,X POS,Y POS.

我以前使用过下面的代码片段.

DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
    3956 * 2 * ASIN(
          SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) 
              + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)  
              * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) )) 
          AS distance
--INTO #includeDistances
FROM #orig dest
Run Code Online (Sandbox Code Playgroud)

不过我不相信这个数据,它似乎给出了稍微不准确的结果.

一些示例数据,以备您需要时使用

Latitude        Longitude     Distance 
53.429108       -2.500953     85.2981833133896
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决我的代码,我不介意你是否想要修复我已经拥有的东西,如果你有一种新方法可以实现这一点,那就太棒了.

请说明您的结果所在的计量单位.

sql t-sql sql-server math sql-server-2008-r2

82
推荐指数
5
解决办法
16万
查看次数

在数据库中查找最接近的数值

我需要找到一个select语句,它将返回一个与我的输入完全匹配的记录,或者如果找不到完全匹配则返回最接近的匹配.

到目前为止,这是我的选择声明.

SELECT * FROM [myTable] 
WHERE Name = 'Test' AND Size = 2 AND PType = 'p' 
ORDER BY Area DESC
Run Code Online (Sandbox Code Playgroud)

我需要做的是找到与'Area'字段最接近的匹配,所以如果我的输入是1.125并且数据库包含2,1.5,1和.5,则查询将返回包含1的记录.

我的SQL技能非常有限,所以任何帮助都会受到赞赏.

sql

39
推荐指数
3
解决办法
7万
查看次数

如何使用搜索功能显示具有最近长/纬度值的商店 - Laravel 5 eloquent

理想情况下,我正在寻找一个Laravel 5相关答案.我正在尝试制作商店定位器应用程序.我正在尝试将一对纬度/经度坐标(根据用户进入搜索框的地址计算)与我的数据库中最近的(在半径100km范围内)坐标/现有商店相匹配.

用户输入一个地址(使用地理编码)转换为lat和lng坐标.这些内容会发送到我的"文章"页面,其中包含商店列表和谷歌地图.我使用了一个关于范围搜索的简单教程,根据文本"地址"显示我的文章/商店.但这显然不适用于两个坐标.我有一个名为文章的表,其中包括:id,地址,lat,lng,网站,标题等.

我需要像这样或者这样的东西,但是使用雄辩.

当前文章模型:

    public function scopeSearch($query, $search){

    return $query->where('address', 'LIKE', "%$search%" );
   }
Run Code Online (Sandbox Code Playgroud)

文章控制器

 public function index(Request $request)
{
     $query = $request->get('q');
     $articles = $query
    ? Article::search($query)->get()
    : Article::all();
    return view('articles.index', compact('categories'))->withArticles($articles);
}
Run Code Online (Sandbox Code Playgroud)

当前表单/地理编码:

    {!! Form::open(['method' => 'GET', 'id' => 'searchForm', 'name' => 'searchForm', 'route' => 'articles_path']) !!}
      {!! Form::input('search', 'q', null, ['placeholder' => 'LOCATION', 'class' => 'locationSearch', 'id' => 'searchInput'])!!}
      {!! Form::hidden('lat', null, ['id' => 'lat'])!!}
      {!! Form::hidden('lng', null, ['id' => 'lng'])!!}
      {!! …
Run Code Online (Sandbox Code Playgroud)

php google-maps laravel-5.1

11
推荐指数
2
解决办法
8808
查看次数

大圆距离公式:T-SQL

所以我有一个表中有一堆不同的地址.我需要一个proc,它将选择该表中与传入的lat/long值相距指定距离的地址.

我的表的例子如下:

- messageId
- lat (float)
- long (float)
Run Code Online (Sandbox Code Playgroud)

Proc正在传入另一个纬度/长度对(同时float也是一对)以及一个int(英里)

我发现这个http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=81360来计算实际公式,但我无法弄清楚在proc表单中修改它以便能够通过整个列表地址,只给我一个Id<=里程(我传入的)的地址,来自我传入的纬度/经度.

我可以在这里得到任何帮助吗?

谢谢!

t-sql great-circle

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