*/ require_once __DIR__ . '/vendor/autoload.php'; function err($msg) { echo $msg . "\n"; exit(1); } if ($argc < 2) { err("convert.php "); } $file = $argv[1]; $data = json_decode(file_get_contents($file)); if (!isset($data->RecordSet->geometryType) || $data->RecordSet->geometryType != 'esriGeometryPolygon' ) { err('No esriGeometryPolygon'); } $sRefs = [ 25833 => ['N', 33] ]; $sRef = $data->RecordSet->spatialReference->wkid; if (!isset($sRefs[$sRef])) { err('Unknown spatial reference EPSG ' . $sRef); } list($latZone, $lngZone) = $sRefs[$sRef]; $geoJson = [ 'type' => 'Feature', 'title' => basename($file, '.json'), 'properties' => null, 'geometry' => [ 'type' => 'Polygon', 'coordinates' => [], ], ]; foreach ($data->RecordSet->features as $feature) { foreach ($feature->geometry->rings as $ring) { $coords = []; foreach ($ring as $point) { $utm = new \PHPCoord\UTMRef( $point[0], $point[1], 0, $latZone, $lngZone ); $ll = $utm->toLatLng(); $coords[] = [$ll->getLng(), $ll->getLat()]; } $geoJson['geometry']['coordinates'][] = $coords; } } echo json_encode($geoJson, JSON_PRETTY_PRINT) . "\n"; ?>