Eine Reihe von PHP -Helferklassen, um die Geojson -Geometrien zu generieren, die der Geojson -Spezifikation entsprechen.
Die Polygon -Ringreihenfolge war in der ursprünglichen Geojson -Spezifikation nicht definiert, aber da RFC7946 die rechte Handregel vorgeschrieben ist.
Ein linearer Ring muss der rechten Regel in Bezug auf den Bereich folgen, dh Außenringe sind gegen den Uhrzeigersinn und die Löcher im Uhrzeigersinn.
(Wenn Sie britisches Englisch und nicht amerikanischem Englisch kennen, ersetzen Sie einfach gegen den Uhrzeigersinn gegen den Uhrzeigersinn .)
geojson-rewind ist ein Port zum PHP des Node.js geojson-rewind Moduls von Mapbox von Tom McWright et al. Vollständige Credits, ein großes Lob und Anerkennungen sind auf Tom und den Rest des Mapbox -Teams zurückzuführen.
Der einfachste Weg, geojson-rewind zu installieren, ist die Verwendung von Komponisten:
$> 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 );
?> Die Ausgabe könnte so aussehen ( $> ist die Befehlszeile Eingabeaufforderung).
$> 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 wird unter der BSD-3-Clause-Lizenz veröffentlicht. Weitere Informationen finden Sie unter Lizenzdatei.