PHP code example of livemap / svg-parser

1. Go to this page and download the library: Download livemap/svg-parser library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

livemap / svg-parser example snippets


$svg_content = \file_get_contents( $svg_filename );

$parser = new SVGParser($svg_file_content, $options);

//@todo: переделать под RESULT
if ($_svgParserClass->parser_state->isError) {
    throw new RuntimeException( "[JS Builder] SVG Parsing error " . $_svgParserClass->parser_state->getMessage() );
}

$layer_name = "Image";
$_svgParserClass->parseImages( $layer_name );

if ($json->type === "bitmap" && $_svgParserClass->getImagesCount()) {
    $image_info = $_svgParserClass->getImageInfo();

    // использовать параметры из файла карты НЕЛЬЗЯ, потому что размеры слоя разметки привязаны к размеру карты в файле
    // если мы изменим размеры (maxBounds) до размеров оригинальной картинки - все сломается :(
    // $image_info['width'] = $json->image->width;
    // $image_info['height'] = $json->image->height;


    $_svgParserClass->set_CRSSimple_TranslateOptions( $image_info['ox'], $image_info['oy'], $image_info['height'] );
} else {
    $_svgParserClass->set_CRSSimple_TranslateOptions( 0, 0, $image_info['height'] );
}

foreach($json->layout->layers as $layer) {
    $layer_config = null;
    
    if (!empty($json->layers->{$layer})) {
        $layer_config = $json->layers->{$layer};
    }
    
    $_svgParserClass->parseLayer($layer);   // парсит слой (определяет атрибут трансформации слоя и конвертит в объекты все элементы)

    // установим конфигурационные значения для пустых регионов для текущего слоя
    $_svgParserClass->setLayerDefaultOptions($layer_config);

    // получаем все элементы на слое
    $paths_at_layer = $_svgParserClass->getElementsAll();

    // Всё, на этом работа парсера закончена
}