【问题标题】:How to calculate the distance between two addresses如何计算两个地址之间的距离
【发布时间】:2012-10-25 06:20:37
【问题描述】:

我想计算两点之间的距离。点是地址。

例子:

A 点:JFK 机场,纽约,纽约,美国

B 点:美国纽约州纽约市拉瓜迪亚

现在我想计算 A 点和 B 点之间的距离(通过道路)和旅行时间。

我该怎么做?是否可以使用谷歌地图 API?你会如何解决这个问题?

【问题讨论】:

    标签: php api openstreetmap street-address


    【解决方案1】:
    <?php 
    $from = "sr nagar,hyderabad";
    $to = "kukatpalle,hyderabad";
    $from = urlencode($from);
    $to = urlencode($to);
    $apiKey= "";  
    $data = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&destinations=$to&key=$apiKey&language=en-EN&sensor=false");
    $data = json_decode($data);
    $time = 0;
    $distance = 0;
    foreach($data->rows[0]->elements as $road) {
        $time += $road->duration->value;
        $distance += $road->distance->value;
    }
    echo "To: ".$data->destination_addresses[0];
    echo "<br/>";
    echo "From: ".$data->origin_addresses[0];
    echo "<br/>";
    echo "Time: ".$time." seconds";
    echo "<br/>";
    echo "Distance: ".$distance." meters";
    ?>
    

    注意:上面你需要的公里和时间h:m格式只需替换为

    $time      = $road->duration->text;
    $distance  = $road->distance->text;
    

    【讨论】:

    • 很好的答案。这真的帮助了我。 +1
    • @RajaRamaMohanThavalam 您应该说明给定 google map api 的请求限制
    • Google 地图 API 的无密钥访问现已弃用,因此这将不再有效。
    • 您需要生成一个 Google 地图 API 密钥并将“&key=yourkeygoeshere”添加到 URL 的末尾,以上代码才能正常工作。使用此链接创建您的 API 密钥:g.co/dev/maps-no-account
    【解决方案2】:

    您可以使用 Google Maps API 和 PHP 来计算两个地址之间的距离。

    $addressFrom = 'Insert from address';
    $addressTo = 'Insert to address';
    $distance = getDistance($addressFrom, $addressTo, "K");
    echo $distance;
    

    getDistance() 函数可以从这里找到 - http://www.codexworld.com/distance-between-two-addresses-google-maps-api-php/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      相关资源
      最近更新 更多