Php 使用谷歌地图API计算两个地址之间的距离

Php 使用谷歌地图API计算两个地址之间的距离,php,wordpress,google-maps-api-3,Php,Wordpress,Google Maps Api 3,背景:我不能透露太多关于该项目,因为我在保密协议 我使用谷歌地图计算两个地址之间的距离 我希望输出源地址(固定点)和目标地址之间的距离,这取决于用户在\u ct\u text\u 53ea3270e6e6d字段中输入的内容 它可以从一个地址拉取,但是如果它从多个地图拉取,它只显示到其中一个地图的距离,而不是每个地图的距离 以下是显示问题的屏幕截图: 这是我的密码: $field_value = do_shortcode('[ct id="_ct_text_53ea3270e6e6d" prop

背景:我不能透露太多关于该项目,因为我在保密协议

我使用谷歌地图计算两个地址之间的距离

我希望输出源地址(固定点)和目标地址之间的距离,这取决于用户在
\u ct\u text\u 53ea3270e6e6d
字段中输入的内容

它可以从一个地址拉取,但是如果它从多个地图拉取,它只显示到其中一个地图的距离,而不是每个地图的距离

以下是显示问题的屏幕截图:

这是我的密码:

$field_value = do_shortcode('[ct id="_ct_text_53ea3270e6e6d" property="title | description | value"]'); 

// Our parameters
$params = array(
    'origin'        => '900 South Crouse Ave, Syracuse, NY, 13210',
    'destination'   => $field_value,
    'sensor'        => 'true',
    'units'         => 'imperial'
);

// Join parameters into URL string
foreach($params as $var => $val){
    $params_string .= '&' . $var . '=' . urlencode($val);  
}

// Request URL
$url = "http://maps.googleapis.com/maps/api/directions/json?".ltrim($params_string, '&');

// Make our API request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);

// Parse the JSON response
$directions = json_decode($return);

// Print distance
 print('<p><strong>Distance from Campus: </strong>' .$directions->routes[0]->legs[0]->distance->text. '</p>');  
$field_value=do_短码('[ct id=“\u ct_text_53ea3270e6e6d”property=“title | description | value”]”);
//我们的参数
$params=数组(
“起源”=>“纽约州锡拉丘兹南克劳斯大道900号,邮编13210”,
“目的地”=>$field\u值,
“传感器”=>“正确”,
“单位”=>“英制”
);
//将参数连接到URL字符串中
foreach($var=>$val的参数){
$params_string.='&'$var.='.urlencode($val);
}
//请求URL
$url=”http://maps.googleapis.com/maps/api/directions/json?.ltrim($params_string,&');
//提出我们的API请求
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$URL);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$return=curl\u exec($curl);
curl_close($curl);
//解析JSON响应
$directions=json_decode($return);
//打印距离
打印(“距离校园:”.$directions->routes[0]->legs[0]->Distance->text.“

”);
必须替换这个:

// Join parameters into URL string
foreach($params as $var => $val){
    $params_string .= '&' . $var . '=' . urlencode($val);
}
与:


“多重地图”是什么意思?什么是“问题”?看起来您在代码中只显示了一个映射。提示:输出HTML字符串要比打印好得多。@brasofilo很抱歉给您带来混淆。我在保密协议下没有透露太多关于这个项目的信息,但是我已经更新了我原来的问题。但是如何重现这个问题呢?我只是尝试了一个简单的PHP文件(没有WP),将您的代码转换为一个函数,调用了2次,效果很好。查看指南@brasofilo,我认为它与$field_值内的输入字段有关。我使用创建一个自定义字段,以便上面的PHP代码从该输入中提取。我应该添加哪些其他代码来帮助其他人理解我的问题?这就是我尝试的:-将从
$field\u value
返回的精确值放入测试
$params_string = http_build_query($params);