مجموعة من فصول Helper PHP للمساعدة في توليد هندسة Geojson المتوافقة مع مواصفات Geojson.
تم تحديد ترتيب حلقة المضلع في مواصفات Geojson الأصلية ، ولكن منذ RFC7946 ، يتم تكليف قاعدة اليد اليمنى .
يجب أن تتبع الحلقة الخطية القاعدة اليمنى فيما يتعلق بالمنطقة التي تتراوح بينها ، أي ، الحلقات الخارجية هي عكس اتجاه عقارب الساعة ، والثقوب في اتجاه عقارب الساعة.
(إذا كنت تعرف اللغة الإنجليزية البريطانية بدلاً من اللغة الإنجليزية الأمريكية ، فما عليك سوى استبدال عكس اتجاه عقارب الساعة .)
geojson-rewind هو منفذ لـ PHP of Mapbox's Node.js geojson-rewind Module بواسطة 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-Cause. انظر ملف الترخيص لمزيد من المعلومات.