Набор классов Helper PHP, чтобы помочь в создании геометрии Geojson, которые соответствуют спецификации Geojson.
Порядок кольца многоугольника был неопределен в оригинальной спецификации Geojson, но с тех пор, как RFC7946 правило правой руки обязано.
Линейное кольцо должно следовать правому правилу относительно области, о которой она ограничивает, то есть наружные кольца представляют собой против часовой стрелки, а отверстия по часовой стрелке.
(Если вы знаете британский английский, а не американский английский, просто замените против часовой стрелки против часовой стрелки .)
geojson-rewind -это порт PHP от Mapbox Node.js geojson-rewind модуль Tom McWright et al. Полные кредиты, слава и благодарности связаны с Томом и остальной частью команды Mapbox.
Самый простой способ установить geojson-rewind -это использование композитора:
$> 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. См. Файл лицензии для получения дополнительной информации.