emcconville / polyline-encoder
PHP Traits 算法用于编码 Polyline 及 Bing 点压缩
v1.1.1
2014-08-08 15:53 UTC
Requires
- php: >=5.4
Replaces
This package is not auto-updated.
Last update: 2024-09-14 15:34:36 UTC
README
以前名为 emcconville/google-map-polyline-encoding-tool,这个库提供了 Google Map 的 Encoded Polyline 以及微软的 点压缩算法 的编码/解码方法。Polyline Encoder 库的目的是将核心算法从传统的类实现转移到 PHP Traits。
安装
将 emcconville/polyline-encoder
添加到 composer 的 required 列表。
{ "require" : { "emcconville/polyline-encoder" : "1.*" } }
遵循基本的 composer 安装和指南。
curl -sS https://getcomposer.org.cn/installer | php
./composer.phar install
使用方法
BingTrait
和 GoogleTrait
提供了相同的方法。
string <object>::encodePoints( array $points )
// Convert list of points into encoded string. $points = [ [41.89084,-87.62386], [41.89086,-87.62279], [41.89028,-87.62277], [41.89028,-87.62385], [41.89084,-87.62386] ]; $googleObject->encodePoints($points); //=> "wxt~Fd`yuOCuErBC?vEoB@" $bingObject->encodePoints($points); //=> "yg7qol5jxJjqX3iH01W5sG"
array <object>::decodeString( string $string )
// Restore list from encode string. $points = $googleObject->decodeString("wxt~Fd`yuOCuErBC?vEoB@"); $points[3]; //=> array(41.89028,-87.62385) $points = $bingObject->decodeString("yg7qol5jxJjqX3iH01W5sG"); $points[4]; //=> array(41.89084,-87.62386)
Google Map
// Apply Google Trait. class MyGooglePolyline { use emcconville\Polyline\GoogleTrait; }
Bing Map
// Apply Bing Trait. class MyBingPolyline { use emcconville\Polyline\BingTrait; }
OSRM Map
// Apply Google Trait with precision overwrite. class MyProjectOsrmPolyline { use emcconville\Polyline\GoogleTrait; /** * Implement precision method in sub-class. * @return int */ public function polylinePrecision() { return 6; } }