redbox / distance

此软件包允许您使用Google Maps API计算世界上两个地点之间的距离

v1.2.5 2017-09-01 08:44 UTC

README

Build Status Scrutinizer Code Quality Code Coverage GitHub stars Twitter URL

Redbox-distance

这组类允许您计算地理位置或邮政编码之间的距离。信息来源于Google Maps API。

功能

  • 计算距离单位
    • 千米
    • 英里
  • 启用/禁用SSL验证器
  • 设置Google MAPS API密钥(可选,截至2015年5月25日无需此密钥)

通过Composer安装

使用composer安装此软件包。运行Composer命令以安装Redbox-distance的最新稳定版本

composer require redbox/distance

安装后,您需要要求Composer的自动加载器

require 'vendor/autoload.php';

系统要求

此软件包仅需以下要求

  • Curl
  • PHP >= 5.40

Dit也将需要PHPUnit 4.6,但将在使用Composer安装软件包时自动安装。

示例

让我们计算荷兰阿姆斯特丹和鹿特丹之间的距离,使用地理位置

use Redbox\Distance;

$p1 = new Distance\GeoPoint(52.364533, 4.820374); /* Amsterdam */
$p2 = new Distance\GeoPoint(51.925538, 4.471867); /* Rotterdam */


$tool = new Distance\CalculateDistance();
$distance = $tool->setSource($p1)
                 ->setDestination($p2)
                 ->setUseSslVerifier(false)
                 ->getDistanceInKM();

echo "<h2>Example 1</h2><br>";
echo 'The calculated distance is: '.$distance.' KM<br>';

使用邮政编码计算荷兰丹赫尔德和哈勒姆之间的距离

use Redbox\Distance;

$p1 = new Distance\GeoZipCode('1781 GC'); /* Den Helder */
$p2 = new Distance\GeoZipCode("2011 SR"); /* Haarlem */


$tool = new Distance\CalculateDistance();
$distance = $tool->setSource($p1)
                 ->setDestination($p2)
                 ->setUseSslVerifier(false)
                 ->getDistanceInKM();

echo "<h2>Example 2</h2><br>";
echo 'The calculated distance is: '.$distance.' KM';

其他可用的计算包括

$distance->getDistanceInMiles();

$distance->getDistanceInYards();

故障排除

如果您收到有关SSL连接错误的错误,您可能希望禁用验证对等(CURLOPT_SSL_VERIFYPEER)。calculateDistance类提供了一个方法来禁用此功能。如果需要,请考虑使用setUseSslVerifier()方法,如下所示。

$distance = $tool->setSource($p1)
                 ...
                 ->setUseSslVerifier(false)
                 ...

有时邮政编码功能可能会返回错误的结果。为了解决这个问题,也可以将国家添加到邮政编码中,如下所示。

$p1 = new GeoZipCode('1781 GC Netherlands'); /* Den Helder */

作者

Redbox-distance由Johnny Mast创建和维护。对于功能请求和建议,您可以考虑给我发送电子邮件。

许可

MIT许可

版权(c)2017 Johnny Mast (mastjohnny@gmail.com)

特此免费授予任何人获得此软件及其相关文档文件(“软件”)副本的权限,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人这样做,前提是符合以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,源于、因或与该软件或软件的使用或其他交易有关。