m165437 / igc2kmz-php
igc2kmz-php是Python脚本igc2kmz的PHP包装器,用于将IGC文件转换为Google Earth格式。
Requires
- php: ^7.1.3
- illuminate/support: 5.5.x|5.6.x|5.7.x|5.8.x
- symfony/process: ^4.0
Requires (Dev)
- m165437/igc2kmz-installer: ^1.0
- phpunit/phpunit: ^7.0
README
PHP包装器igc2kmz,用于将IGC文件转换为Google Earth格式。
什么是igc2kmz-php?
igc2kmz-php允许您在PHP应用程序中使用Python脚本igc2kmz,将IGC文件转换为Google Earth格式。
简而言之:您可以将IGC文件转换为KMZ文件。
IGC是一种数据文件标准,由IGC GPS小组委员会和滑翔飞行数据记录器制造商(…)开发,以促进GPS技术应用于滑翔,特别是应用于FAI的竞赛验证和徽章及记录飞行的同质化。
KML是一种XML表示法,用于在基于互联网的二维地图和三维地球浏览器中表达地理注释和可视化。KMZ文件是包含单个根KML文档和可选覆盖层、图像和图标的压缩KML文件。
要求
- igc2kmz Python脚本
- Python版本2.x,不是3.0版本(igc2kmz所需)
- PHP 7.1或更高版本
什么是igc2kmz和igc2kmz-php?
- igc2kmz是一个将IGC文件转换为KMZ文件的Python脚本。
- igc2kmz-php是igc2kmz Python脚本周围的PHP包装器。
安装
推荐使用composer安装igc2kmz-php。
$ composer require m165437/igc2kmz-php
这将安装PHP包与您的应用程序。请注意,Python脚本igc2kmz不包括在内。
使用Composer安装igc2kmz Python脚本
igc2kmz-php的使用
- 获取实现
\Igc2KmzPhp\Igc2KmzInterface
的实例,\Igc2KmzPhp\Igc2Kmz
。将igc2kmz二进制文件的路径传递给构造函数。 - 在您的
\Igc2KmzPhp\Igc2Kmz
实例上设置igc文件和选项。 - 运行您的命令。
$igc2kmz = new Igc2Kmz('vendor/bin/igc2kmz');
在Laravel中使用
此包包括一个Laravel服务提供程序,并通过Package Discovery进行注册。
在由Laravel的服务容器解析的构造函数或方法中类型提示类。它将自动解析并注入到类中。
public function __construct(Igc2Kmz $igc2kmz) { $this->igc2kmz = $igc2kmz; }
如果您需要更改默认的二进制文件路径vendor/bin/igc2kmz
,创建一个配置文件config/igc2kmz.php
并在其中设置路径。
return [ 'binary' => 'alternative/path/igc2kmz' ];
代码示例
请注意,igc2kmz-php旨在保持其状态,运行
\Igc2KmzPhp\Igc2KmzInterface::resetOptions
和\Igc2KmzPhp\Igc2KmzInterface::resetPhotos
以清除为实例的下一个调用设置的选项和照片。
将flight.igc转换为output.kmz
请确保您的igc路径正确且可读,并且您的输出路径可写。
$igc2kmz ->igc('path/to/flight.igc') ->output('path/to/output.kmz') ->run();
设置飞行员姓名和滑翔机类型
对于单独的飞行,您可以覆盖飞行员姓名和滑翔机类型(否则它们来自IGC文件)。
$igc2kmz ->igc('path/to/flight.igc') ->output('path/to/output.kmz') ->pilotName('Jane Doe') ->gliderType('NOVA Mentor 5') ->run();
添加带注释的照片
$igc2kmz ->igc('path/to/flight.igc') ->output('path/to/output.kmz') ->addPhoto('https://domain.tld/photo_1.jpg', 'Comment on first image') ->addPhoto('https://domain.tld/photo_2.jpg', 'Comment on second image') ->run();
在运行之前获取进程
$process = $igc2kmz ->igc('path/to/flight.igc') ->output('path/to/output.kmz') ->build(); // do stuff with the process $igc2kmz ->run($process);
测试
使用以下命令运行测试
vendor/bin/phpunit
鸣谢
归功于Tom Payne创建了igc2kmz。
贡献
感谢您考虑为此软件包做出贡献!请参阅CONTRIBUTING以获取详细信息。
许可协议
igc2kmz-php遵循MIT许可协议(MIT)。请参阅LICENSE文件以获取更多信息。