geojson rewind
v1.0.1 - PHP 8 Support
Geojsonの仕様に準拠したGeojsonジオメトリの生成を支援するPHPヘルパークラスのセット。
ポリゴンリングオーダーは、元のGeojson Specで定義されていませんでしたが、RFC7946以降、右手ルールが義務付けられています。
線形リングは、境界線、つまり外側のリングが反時計回りで、穴は時計回りである領域に関して、右側のルールに従う必要があります。
(アメリカの英語ではなく英国の英語を知っている場合は、反時計回りに反時計回りに代わるだけです。)
geojson-rewind 、Mapboxのnode.js geojson-rewindモジュールのPHPへのポートです。完全なクレジット、称賛、謝辞は、Tomとその他のマップボックスチームによるものです。
geojson-rewindをインストールする最も簡単な方法は、Composerを使用することです。
$> composer require vicchi/geojson-rewind
<?php
include " vendor/autoload.php " ;
$ source = [
' type ' => ' Polygon ' ,
' coordinates ' => [
[ [ 100.0 , 0.0 ], [ 101.0 , 0.0 ], [ 101.0 , 1.0 ], [ 100.0 , 1.0 ], [ 100.0 , 0.0 ] ],
[ [ 100.2 , 0.2 ], [ 100.8 , 0.2 ], [ 100.8 , 0.8 ], [ 100.2 , 0.8 ], [ 100.2 , 0.2 ] ]
]
];
$ enforce_rfc7946 = true ;
$ output = Vicchi GeoJson Rewind:: rewind ( $ source , $ enforce_rfc7946 );
// show output for demonstration purposes
var_dump ( $ output );
?>出力は次のように見えます( $>はコマンドラインプロンプトです)。
$> php test.php
array(2) {
["type"]=>
string(7) "Polygon"
["coordinates"]=>
array(2) {
[0]=>
array(5) {
[0]=>
array(2) {
[0]=>
float(100)
[1]=>
float(0)
}
[1]=>
array(2) {
[0]=>
float(101)
[1]=>
float(0)
}
[2]=>
array(2) {
[0]=>
float(101)
[1]=>
float(1)
}
[3]=>
array(2) {
[0]=>
float(100)
[1]=>
float(1)
}
[4]=>
array(2) {
[0]=>
float(100)
[1]=>
float(0)
}
}
[1]=>
array(5) {
[0]=>
array(2) {
[0]=>
float(100.2)
[1]=>
float(0.2)
}
[1]=>
array(2) {
[0]=>
float(100.2)
[1]=>
float(0.8)
}
[2]=>
array(2) {
[0]=>
float(100.8)
[1]=>
float(0.8)
}
[3]=>
array(2) {
[0]=>
float(100.8)
[1]=>
float(0.2)
}
[4]=>
array(2) {
[0]=>
float(100.2)
[1]=>
float(0.2)
}
}
}
}
geojson-rewind BSD-3-Clauseライセンスの下で公開されています。詳細については、ライセンスファイルを参照してください。