Un ensemble de classes PHP Helper pour aider à générer des géométries Geojson qui sont conformes à la spécification Geojson.
L'ordre du cycle de polygone n'a pas été défini dans la spécification Geojson d'origine, mais depuis RFC7946, la règle de droite est obligatoire.
Une bague linéaire doit suivre la règle de droite par rapport à la zone qu'il limite, c'est-à-dire que les anneaux extérieurs sont dans le sens antihoraire et les trous sont dans le sens horaire.
(Si vous connaissez l'anglais britannique plutôt que l'anglais américain, substituez simplement dans le sens antihoraire dans le sens antihoraire .)
geojson-rewind est un port de PHP du module Node.js geojson-rewind Mapbox de Tom McWright et al. Les crédits complets, les félicitations et les remerciements sont dus à Tom et au reste de l'équipe de cartes.
La façon la plus simple d'installer geojson-rewind est d'utiliser le compositeur:
$> 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 );
?> La sortie pourrait ressembler à ceci ( $> est l'invite de ligne de commande).
$> 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 est publié sous la licence de clause BSD-3. Voir le fichier de licence pour plus d'informations.