如何使用数据库(mysql)中的gps位置找到两个地理点之间的数据?

时间:2012-10-31 07:54:05

标签: android geolocation gps geocoding

我想在android中创建一个应用程序,用户可以在其中输入两个地理点(lat和long),并且我希望在数据库表(mysql)中进行查询,其中已经存储了gps位置的人员信息(lat通过使用上述查询,我​​想在输入的起点和终点之间搜索人。

例如:用户A输入了起点:德里和结束点:孟买,现在他将点击搜索按钮,所有人都来自孟买和德里之间的gps位置。如果它是可行的。所有人都将显示为列表视图。

希望我已经解释得很好,因为你明白了.. 请有人告诉我如何实现这一目标?我使用php mysql作为后端。

1 个答案:

答案 0 :(得分:1)

如果你想知道在两个点划分的方形区域内的人,你必须检查人的位置是否在两个点的纬度和经度之间。例如:

//Delimiting points:
    Dehli:    28°36′36″N 77°13′48″E
    Mumbai:   18°58′30″N 72°49′33″E

//People:
    Person A: 28°40′52″N 73°21′47″E
    Person B: 22°03′44″N 75°56′11″E

Person A is OUTSIDE the square area between Dehli and Mumbai because the latitude
he is on is greater than the greatest latitude of both points:
    Mumbai lat. < Dehli lat. < Person A lat.

Person B is INSIDE the square area between Dehli and Mumbai because the latitude
and longitude he is on is between both points latitude and longitude:
    Mumbai lat. < Person B lat. < Dehli lat.
    Mumbai lon. < Person B lon. < Dehli lon.

如果您想计算距离,可以依赖Great Circle Formula。这可以用来查找半径为X英里的人。