Php 如何使用google matrix api显示用户lat long距离特定位置lat long 200米以外的消息
我正在捕获用户当前位置lat long,并将其与特定位置lat long(存储在db中的位置lat long)进行比较,如果用户lat long超过200米,则显示消息您在200米之外,但在输出中,我得到了错误的值,它显示122公里,这是不正确的Php 如何使用google matrix api显示用户lat long距离特定位置lat long 200米以外的消息,php,curl,google-distancematrix-api,Php,Curl,Google Distancematrix Api,我正在捕获用户当前位置lat long,并将其与特定位置lat long(存储在db中的位置lat long)进行比较,如果用户lat long超过200米,则显示消息您在200米之外,但在输出中,我得到了错误的值,它显示122公里,这是不正确的 Code: function check_distance($lat1, $lat2, $long1, $long2) { $url = "https://maps.googleapis.com/maps/api/dista
Code:
function check_distance($lat1, $lat2, $long1, $long2) {
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?key=my_api_key" . $lat1 . "," . $long1 . "&destinations=" . $lat2 . "," . $long2 . "&mode=driving&language=en";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response, true);
$dist_value = $response_a['rows'][0]['elements'][0]['distance']['value'];
if($distance_value>200 meters){
// show more than 200 meters from specific location
}
}
echo check_distance($lat1, $lat2, $long1, $long2);
在添加
$lat1
和$long1
之前,您不应该有&origins=
或其他东西吗?现在您将这些附加到key
值,如json?key=my_api_key123123
@MagnusEriksson是的,我将lat long传递给url我说您缺少lat1和long1值的键。您说122 km不正确,这是否意味着您正在用数据库lat long检查一些已知的lat long?如果是这样,您是否验证了这些确实被正确地传递给函数,并且$url是正确的?您是否通过将其他已知坐标硬编码到测试中而不是依赖从数据库中提取来测试它们?您是否尝试使用而不是从数据库中获取坐标?因为您的数据库可能并不总是足够精确,无法提供所需的结果