如何从MySQL中选择经度,纬度的特定位置? [英] How to select longitude, latitude around specifc location from mysql?

查看:104
本文介绍了如何从MySQL中选择经度,纬度的特定位置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图获得特定位置的经度和纬度。其实我在mysql表中有一些记录(经度和纬度)。现在我想从表格中获得经度和纬度,它应该有500米左右的经度。请查看代码,我希望你能理解我的问题。

Mysql Location Table



  ------------------------------------- 
id |经度|纬度
-------------------------------------
1 | 25.058036 | 55.133467
-------------------------------------
2 | 25.056986 | 55.135755
-------------------------------------
3 | 25.059163 | 55.135616
-------------------------------------
4 | 25.056860 | 55.132515
-------------------------------------
5 | 25.055683 | 55.134792

我想得到那些距离应该在500米左右的经度,纬度( 25.057550,55.134729 )。

  $ user_long = $ _REQUEST ['user_long']; // 25.057550 
$ user_lat = $ _REQUEST ['user_lat']; // 55.134729

从...所在的位置选择*(取500米附近的记录)

我已经搜索过它,并找到一些很好的展示 haversine公式答案谷歌地图与Php / Mysql ,但我没有得到如何开发这种功能。我知道这个问题可能是愚蠢的,因为我没有添加我的代码,但相信我,我不知道我该怎么做,从哪里开始功能。我会很感激,如果有人引导我关于这个功能。



谢谢

解决方案

((19.286558 - 纬度)* pi()/ 180/2),2)+ COS ()/ 180)
* COS(纬度* pi()/ 180)* POWER(SIN(( - 99.612494-经度)* pi()/ 180/2),2)))
as距离距表<距离< 10 ORDER BY距离;

这会给你10公里范围内的记录。
在子句中修改500米的查询。


I'm trying to get the longitude and latitude around specific location. Actually I have some records (longitude and latitude) in mysql table. Now i want tofetch those longitude and latitude from table which should have around 500 meter of specific longitude. Please view the code, i hope you will understand my question.

Mysql Location Table

-------------------------------------
id  |     longitude    |    latitude
-------------------------------------
1  |   25.058036      |    55.133467
-------------------------------------
2  |   25.056986      |    55.135755
-------------------------------------
3  |   25.059163       |   55.135616
-------------------------------------
4  |   25.056860       |  55.132515
-------------------------------------
5  |   25.055683       |   55.134792

I want to get those longitude, latitude which distance should have around 500 meters of specific (25.057550, 55.134729).

$user_long= $_REQUEST['user_long']; // 25.057550
$user_lat= $_REQUEST['user_lat']; // 55.134729

Select * from location where .... (fetch record around 500 meters)

I have searched about it and find some well expnained haversine formula answer and Google Map With Php/Mysql but i did not got how can i develop this kind of functionality. I know this question may be stupid for someone because i'm not adding my code, but trust me i don't know how can i do it and from where i should start functionality. I will appreciate if someone guide me regarding this functionality.

Thank You

解决方案

SELECT *,3956*2*ASIN(SQRT(POWER(SIN((19.286558 - latitude)*pi()/180/2),2)+COS(19.286558 * pi()/180)
*COS(latitude * pi()/180)*POWER(SIN((-99.612494 -longitude)* pi()/180/2),2)))
as distance FROM table  having distance < 10 ORDER BY distance;

This will give you records within 10 Km range. modify query for 500 meters in having clause.

这篇关于如何从MySQL中选择经度,纬度的特定位置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆