3 votos

Cómo utilizar PHP MapScript para generar un archivo de mapas de MapServer

Acabo de leer de esta pregunta que el OP era

usando Mapscript y C# para generar y mostrar un Mapfile

Me preguntaba si es realmente posible utilizar MapScript para generar ¿un archivo de mapas? Y si es así, ¿hay algún ejemplo de cómo hacerlo con PHP MapScript?

P.D. Soy nuevo en MapServer, y siento que escribir manualmente cada archivo de mapa es un dolor incluso si aprendo toda su gramática. Sería bueno si un montón de mapfiles se puede generar a partir de un programa mediante la variación de ciertos parámetros.

Si MapScript no es la solución, ¿hay alguna otra forma de generar archivos de mapas mediante programación?

P.S.2. Este puesto hace una pregunta similar sobre cómo hacerlo en python, pero parece que no hay solución en las respuestas.

Gracias de antemano,

--- EDITAR ---

Sólo para aclarar, estoy interesado en la escritura/serialización de objetos Mapscript en un archivo de mapas (en PHP), no en la escritura de un archivo de mapas literalmente a través de un lenguaje de programación como PHP o C++. Por la pregunta del SO citada, esto parece posible en C#. Estaba preguntando si hay ejemplos específicos de hacer eso (preferiblemente en PHP).

2voto

Biz Puntos 11

Vale, esto no es realmente una pregunta relacionada con el SIG, sino con la programación. De todos modos, para el propósito que pretendes puedes usar casi cualquier lenguaje que quieras. Aquí hay un script PHP muy, muy simple basado en el ejemplo de Mapfile de la documentación en http://www.mapserver.org/mapscript/php/by_example.html . En este script sólo la variable DATA está alterado:

<?php

foreach(['map1', 'map2', 'map3'] as $mapname) {

    $tpl = "NAME \"Europe in purple\"
SIZE 400 400
STATUS ON
SYMBOLSET \"/var/www/html/maps/symbols/symbols.sym\"
EXTENT -5696501 1923039 5696501 11022882
UNITS METERS
SHAPEPATH \"/var/www/html/maps/data\"

WEB
    IMAGEPATH \"/var/www/html/maps/tmp/\"
    IMAGEURL \"/tmp/\"
END

LAYER
    NAME \"Europe\"
    TYPE POLYGON
    STATUS ON
    DATA \"$mapname\"
    CLASS
        STYLE
            COLOR 110 50 100
            OUTLINECOLOR 200 200 200
            SYMBOL 0
        END
    END
END
END";

    // Write it to a file
    $handle = fopen("mapfile_$mapname", 'a');
    fwrite($handle, $tpl);

}

?>

Ejecute el script con php script.php .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X