【问题标题】:Using Google Maps API to calculate distance between two addresses使用 Google Maps API 计算两个地址之间的距离
【发布时间】:2014-10-21 07:21:18
【问题描述】:

背景:由于我处于 NDA 之下,因此我无法透露太多有关该项目的信息。

我正在使用this tutorial 使用 Google 地图计算两个地址之间的距离。

我希望输出源地址(一个固定点)和目标地址之间的距离,这取决于用户在 _ct_text_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>');  

【问题讨论】:

  • “多张地图”是什么意思?什么是“问题”?看起来您只在代码中显示了一张地图。 . . .提示:printfprint 输出 HTML 字符串要好得多。
  • @brasofilo 很抱歉造成混乱。我在保密协议下不会透露太多关于该项目的信息,但我已经更新了我原来的问题。
  • 但是如何重现问题呢?我只是尝试使用一个简单的 PHP 文件(没有 WP),将您的代码转换为一个函数,调用它 2 次,它工作正常。查看指南How to create a Minimal, Complete, and Verifiable example
  • @brasofilo 我认为这与 $field_value 中的输入字段有关。我正在使用CustomPress 创建一个自定义字段,以便上面的 PHP 代码从该输入中提取。我应该添加哪些其他代码来帮助其他人理解我的问题?
  • 这是我尝试过的:pastebin.com/yrPJTZws - 将 $field_value 中的确切返回值进行测试

标签: php wordpress google-maps-api-3


【解决方案1】:

不得不替换这个:

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

与:

$params_string = http_build_query($params);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多