如何计算纬度和经度指定的两点之间的距离?
为了澄清,我想要以公里为单位的距离; 这些要点使用WGS84系统,我想了解可用方法的相对准确性.
我正在尝试使用此处描述的技术计算两个点之间的距离(我有纬度和经度),计算两个纬度 - 经度点之间的距离?(Haversine配方)
代码如下Javascript:
var R = 6371; // Radius of the earth in km
var dLat = (lat2-lat1).toRad(); // Javascript functions in radians
var dLon = (lon2-lon1).toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
Run Code Online (Sandbox Code Playgroud)
但是当我尝试实现它时,错误就出现了Uncaught TypeError: Object 20 has no Method 'toRad'.
我需要一个特殊的库或什么来获得.toRad()工作吗?因为它似乎搞砸了第二行.
无法弄清楚如何对用户附近的地址进行自动排序。我不明白从哪里开始以及如何编写代码。
\n\n我的firebase中有地址。地址的类型为字符串(不是纬度/经度)。例子:
\n\n"\xd0\x9c\xd0\xbe\xd1\x81\xd0\xba\xd0\xb2\xd0\xb0, \xd0\xad\xd0\xbb\xd0\xb5\xd0\xba\xd1\x82\xd1\x80\xd0\xbe\xd0\xb7\xd0\xb0\xd0\xb2\xd0\xbe\xd0\xb4\xd1\x81\xd0\xba\xd0\xb0\xd1\x8f, 21"\n"\xd0\x9c\xd0\xbe\xd1\x81\xd0\xba\xd0\xb2\xd0\xb0, \xd0\x90\xd1\x80\xd0\xb1\xd0\xb0\xd1\x82, \xd0\xa1\xd1\x82\xd0\xb0\xd1\x80\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbd\xd1\x8e\xd1\x88\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb5\xd1\x83\xd0\xbb\xd0\xbe\xd0\xba, \xd0\xb4\xd0\xbe\xd0\xbc 43"\n"\xd0\x9c\xd0\xbe\xd1\x81\xd0\xba\xd0\xb2\xd0\xb0, \xd1\x83\xd0\xbb\xd0\xb8\xd1\x86\xd0\xb0 1-\xd1\x8f \xd0\x91\xd1\x83\xd1\x85\xd0\xb2\xd0\xbe\xd1\x81\xd1\x82\xd0\xbe\xd0\xb2\xd0\xb0, \xd0\xb4\xd0\xbe\xd0\xbc 12/11, \xd0\xba\xd0\xbe\xd1\x80\xd0\xbf\xd1\x83\xd1\x81 53"\nRun Code Online (Sandbox Code Playgroud)\n\n我知道什么需要使用firebase 的查询,但是如何使用查询,我现在不明白。
\n\n这是我的代码:
\n\nclass PhotoStudiosViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate {\n\n @IBOutlet weak var tableView: UITableView!\n\n var theStudios: [Studio] = []\n\n var studiosRef: DatabaseReference!\n\n override func viewWillAppear(_ animated: Bool) {\n super.viewWillAppear(true)\n\n tableView.estimatedRowHeight = 475\n tableView.rowHeight = UITableViewAutomaticDimension\n\n loadDataFromFirebase()\n\n }\n\n func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n\n return theStudios.count\n }\n\n func …Run Code Online (Sandbox Code Playgroud) 这是场景:
1)我有一个移动应用程序,它有两个数据点:位置和主题标题.
2)我将这两点发送给firebase.
3)从具有不同位置和不同主题的各种设备发送许多点.
4)移动设备然后请求特定位置的主题标题列表.
我的问题是:在将集合返回给调用者之前,firebase可以在数据库中按字母顺序自动重新排序这些主题标题吗?
从本质上讲,我不希望移动设备重新排序任何内容,只是直接从数据集中显示数据.
我想这必须在服务器端用javascript代码完成,我不清楚它是如何在firebase中完成的.
提前致谢
firebase ×2
algorithm ×1
geolocation ×1
haversine ×1
ios ×1
javascript ×1
maps ×1
math ×1
swift ×1
userlocation ×1