当前位置: 首页 > 知识库问答 >
问题:

与google maps API的结果和距离矩阵的公式相混淆[闭合]

笪成周
2023-03-14

这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这个问题的解决方式不太可能对未来的读者有所帮助。

我有一个项目,将根据我设置的半径检测附近的标记/设施。我选择了5公里/3公里/1公里。我临时将中心设置为静态水平和液化天然气。在获取标记的坐标时,我有一个数据库,用于计算坐标。我用我找到的一些公式。

下面是我在后端基于中心标记获取附近标记的代码

Static lat lng from frontend   // lat: 1.3182001528756,lng: 103.84650707245


$km = $request->radius/1000;   //1km
$centerLat = $request->centerLat;
$centerLng = $request->centerLng;
$ky = 40000 / 360;
$originParm = $centerLat.','.$centerLng;

$test = \DB::select(\DB::raw("SELECT school_name as name, lng, lat, 
( 6371 * acos( cos( radians(" . $centerLat . ") ) 
* cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $centerLng . ") ) 
+ sin( radians(" . $centerLat . ") ) * sin( radians( lat ) ) ) ) 
AS distance FROM xp_pn_schools HAVING distance < ".$km.""));

$test = json_decode(collect($test),true);

foreach($test as $data) {
    $arr['data'][] = array(
        'coord' => ['lat' => $data['lat'], 'lng' => $data['lng']],
        'name' => ucwords(strtolower($data['name'])),
        'distance' => $data['distance'],

    );
    $coordArr[] = $data['lat'].','.$data['lng']; //concat for google api link
}

用于使用goole距离矩阵api的后端(用于根据位置获取ETA和距离)

$destination = implode('|',$coordArr);
$ch = curl_init();
$url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins='.$originParm.'&destinations='.rawurlencode($destination).'&key=***********&mode=driving';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$output = json_decode($output,true);
curl_close($ch);

return response()->json(array(
                'markers' => $arr,
                'time' => $output
              ));

但在我的前端,当我查看回复时,我得到了如下信息

我将半径设置为距离前端1公里或1000公里,以便渲染很少的结果进行比较

正如您所看到的,第一个结果是法勒学校距离公式为0.8公里。但在谷歌地图api中,它是2.1公里。如何验证这两个选项中的哪一个是正确的?

共有1个答案

刘凡
2023-03-14

半正弦公式给出了大圆/直线距离,距离矩阵给出了行驶距离。这两者几乎总是不同的,两者中行驶距离越大。

 类似资料:
  • 最后,我们准备把数据从文件读入一个矩阵中。具体来说,每个城市在该矩阵中都一个相应的行和列。 我们将在main函数中创建该矩阵,它会剩余大量空间: apmatrix<int> distances (50, 50, 0); 在processLine内部,我们从Set中得到两个城市的索引,并以这两个索引为矩阵的索引,向矩阵中添加了新信息: int dist = convertToInt (distSt

  • 我对数据挖掘并不陌生,所以我完全被WEKA结果难倒了。希望得到一些帮助。提前谢谢! 我有一个具有二分类(S, H)的数值向量数据集。我在省略交叉验证中训练了一个朴素贝叶斯模型(尽管方法真的无关紧要)。结果如下: 如您所见,输出和混淆矩阵都有三个错误。然后,我使用具有相同属性和相同两个类的独立数据集重新评估模型。结果如下: 这就是我的问题所在。输出清楚地显示有很多错误。事实上,有44个。另一方面,混

  • 问题内容: 我目前正在将数据读入如下所示的数据框中。 我想根据此数据创建一个欧几里得距离矩阵,该矩阵显示所有城市对之间的距离,因此我得到一个结果矩阵,如下所示: 我的实际数据框中还有更多城市和坐标,因此我需要能够以某种方式遍历所有城市对并创建一个距离矩阵,就像上面显示的那样,但是我不确定如何配对所有城市一起引用并应用欧几里德距离公式?任何帮助,将不胜感激。 问题答案: 我认为您对distance_

  • 如何分析Weka中的混淆矩阵,以获得准确度?我们知道,由于数据集不平衡,精度不准确。混淆矩阵如何“确认”准确性? 示例:a)准确率96.1728% b) 准确率:96.8% 等...

  • 我正在对实际数据和来自分类器的预测数据进行多标签分类。实际数据包括三类(c1、c2和c3),同样,预测数据也包括三类(c1、c2和c3)。数据如下 在多标签分类中,文档可能属于多个类别。在上述数据中,1表示文档属于特定类,0表示文档不属于特定类。 第一行Actual\u数据表示文档属于c1类和c2类,不属于c3类。类似地,第一行predicted\u数据表示文档属于类别c1、c2和c3。 最初我使

  • 本文向大家介绍求mk矩阵A和nk矩阵的欧几里得距离?相关面试题,主要包含被问及求mk矩阵A和nk矩阵的欧几里得距离?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 先得到矩阵,然后对矩阵A和矩阵分别求出其中每个向量的模平方,并扩展为两个m*k的矩阵和。最终求得新的矩阵,并将此矩阵开平方得到A,B向量集的欧几里得距离。