当经纬度已知点时计算100米距离
我想知道是否可以计算已知纬度和经度的给定点周围 100 米的距离。我在 MySQL 数据库中有一些坐标,想知道特定坐标是否位于距给定点 100 米的范围内。
我使用的是Android平台。我只知道我所站立的位置(当前位置)的一个坐标(经度和纬度),并且我想设置距离范围(例如 100 米)。
我在数据库中保存了更多坐标,并且想要计算数据库中保存的其他点是否在距离我当前位置 100 米的范围内。我不知道我是否可以在我的应用程序中使用 GIS 数据库。
I want to know if it is possible to calculate a 100 meter distance around a given point with a known latitude and longitude. I have some coordinates in a MySQL database and want to know if a specific coordinate lies in 100 meter range from a given point.
I am using the Android platform. I know only one coordinate (Longitude and Latitude) where I am standing (current location) and I want to set the distance range (say 100 meters).
I have more coordinates saved in the database and want to calculate if the other points saved in the database are in 100 meter range from my current location or not. I don't know if I can use GIS database in my application.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
给定纬度和经度计算两点之间距离的完整代码 http:// www.movable-type.co.uk/scripts/latlong.html
A complete code for calculating the distance between two points given the latitude and longitude http://www.movable-type.co.uk/scripts/latlong.html
给定输入为
_LATITUDE
、_LONGITUDE
和_METERSRANGE
Given input is
_LATITUDE
,_LONGITUDE
and_METERSRANGE
如果有人仍在寻找答案,计算距离很简单(精确获取方向很难计算,如果有人知道简单的答案,请添加)
所以检查您的经纬度值之间的差异,将十进制度更改为 0.001 意味着 111m 距离。检查纬度和经度到十进制的变化最大 0.001 将在您的点周围绘制一个半径为 111m 的圆。
前任。您的起点是 A(Lat1,Lng1)。您想要测试的点 B(LatB,LngB) 、 C(LatC,LngC) .....
if: (Lat1 - 0.001) <纬度B (Lat1 + 0.001) && (Lng1-0.001)< LngB < (Lng1 + 0.001) == True // B 点半径为 100m。
如果:(Lat1 - 0.001) <纬度C < (Lat1 + 0.001) && (Lng1-0.001)<液化天然气碳< (Lng1 + 0.001) == False // C 点不在 100m 半径内。
十进制度参考 https://en.wikipedia.org/wiki/Decimal_ Degrees
if someone still looking for answer, calculating distance is simple ( getting direction precisely is hard to calculate, if someone knows simple answer for that please do add)
So check difference between your lat-long values, change in decimal degrees to 0.001 means 111m distance. checking both latitude and longitude to decimal degrees change max 0.001 will draw a 111m radius circle around your point.
Ex. your starting point is A(Lat1,Lng1). points you want to test B(LatB,LngB) , C(LatC,LngC) .....
if: (Lat1 - 0.001) < LatB < (Lat1 + 0.001) && (Lng1 - 0.001) < LngB < (Lng1 + 0.001) == True // point B is in 100m radious.
if: (Lat1 - 0.001) < LatC < (Lat1 + 0.001) && (Lng1 - 0.001) < LngC < (Lng1 + 0.001) == False // point C is Not in 100m radious.
Decimal degrees reference https://en.wikipedia.org/wiki/Decimal_degrees