redbox / distance
此软件包允许您使用Google Maps API计算世界上两个地点之间的距离
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.6
This package is not auto-updated.
Last update: 2024-09-23 07:12:38 UTC
README
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)
特此免费授予任何人获得此软件及其相关文档文件(“软件”)副本的权限,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人这样做,前提是符合以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,源于、因或与该软件或软件的使用或其他交易有关。