myclar/kamel-php
最新稳定版本:v1.0.1
Composer 安装命令:
composer require myclar/kamel-php
包简介
A PHP KML parser library
README 文档
README
A PHP KML parser library initially developed as part of the WP-Trip-Summary WordPress plug-in. It is based on Stepan Daleky's KML parser on GitLab and has now been extracted as a separate library to ease up on the code base a bit.
About
Supported KML entities:
Kmlclass (<kml>root element);FolderandDocumentclasses (and elements) asContainertypes and direct children of the KML root;- Abstract
Featureclass and element, with support for the following attributes:id,styleUrl,name,description,open,visibility,address,phoneNumber; Placemarkclass and element, with support forPoint,Linestring,LinearRing,PolygonandMultiGeometrygeometries as well asStyleandExtendedData.
Installation
Install the latest version with:
composer require myclar/kamel-php
Using the parser directly
The parser class simply parses a KML string (or a file that contains a KML string) and returns an object graph:
use KamelPhp\KmlParser\Parser; $kmlParser = Parser::fromString($fileContents); //OR $kmlParser = Parser::fromFile($filePath); //And then get the KML root and do your thing with it. $kml = $kmlParser->getKml();
Some samples:
- The built-in
Processor - The current set of tests for the parser class
Using the processor
The processor class provides a simple and expedient way of traversing a KML document, while allowing a certain degree of customization. Its usage is not mandatory.
Limitations:
- Either root KML folder or root KML document is considered, not both (first it checks for a root folder and, if not found for a root document);
- A KML container is searched, in this order, for: folders, documents and placemarks;
- Neither folder, nor document metadata is stored;
- For a placemark, only the name and description metadata items are stored and reported;
- Order in which various document parts are processed cannot be altered;
- Visibility, as specified by the
visibilityfeature attribute, is not accounted for.
In order to use the processor, you need to provide a mandatory delegate (a class implementing KamelPhp\KmlParser\Processor\Delegate) which you can use to:
- control what gets reported back to you (
Delegate::shouldXYZ()methods, e.g. returnfalsefromDelegate::shouldProcessPointGeometry()if you do not what to have KML points sent back to you.); - process KML primitives as they are found and reported back to you (e.g. implement
Delegate::processPoint()to process KML points); - react when processing begins (
Delegate::begin()) and ends (Delegate::end()); - react when an error occurs (
Delegate::error()).
As it may already be obvious, the way it works sort of breaks the tree structure, but that's perfectly acceptable in my use case - obtain relevant geometries for simple map drawing.
It's up to yo what the delegate does, either it stores the artefacts somewhere or it builds some representation in memory and provides a way to access it at the end. See here an example implementation.
use KamelPhp\KmlParser\Parser; $delegate = new MyDelegate(); $processor = new Processor($delegate); $processor->processKmlString($sourceString);
myclar/kamel-php 适用场景与选型建议
myclar/kamel-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 01 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「library」 「parser」 「kml」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 myclar/kamel-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 myclar/kamel-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 myclar/kamel-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.
An MT940 bank statement parser for PHP
Inbox pattern process implementation for your Laravel Applications
Laravel integration for the jsonapi.org parser
A modern HTML DOM parser for PHP using DOMDocument and Symfony CssSelector.
Core library that defines common interfaces used by the rest of the intahwebz..
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2025-01-06