INCLUDE capability added...

Fernando Simon fsimon at UNIVALI.BR
Thu Jul 6 15:24:22 EDT 2006


Hi Sean,
    I know, was just a question to check if is possible to do the
"INCLUDE" like Steve did in Mapfile. In PHP we can serialize without
problem.
    Best regards.

Fernando Simon


Sean Gillies wrote:
> Fernando,
>
> Mapscript already has everything you need to create new map objects.
> It does *not* have a general capability for serialization, but that's
> something you can get from your favorite language, no?
>
> cheers,
> Sean
>
>
> On Jul 6, 2006, at 7:54 AM, Fernando Simon wrote:
>
>> Hi Steve,
>>     It's really good enhancement. Just a last question. Can we add this
>> for Mapscript?
>>     Using a new parameter/attribute "include" for objects? I know that
>> this issue will be more complicated because we need to force to include
>> just full objects or append right objects, and after parse again this
>> definitions for new objects, like "refresh" for objects.
>>      Best regards.
>>
>> Fernando Simon
>>
>>
>> Steve Lime wrote:
>>> Good questions.
>>>
>>> 1) The one benefit of leaving this functionality in the lexer is
>>> that it works anywhere. You switch buffers within whatever parent
>>> object you where in when the include was encountered and when you
>>> hit an EOF you revert to the parent buffer. Syntax checking should
>>> still work. Of course this needs to be verified...
>>>
>>> 2) Yes, you can nest includes. This all works by using a buffer
>>> stack that flex manages. The size of that stack is pre-determined (I
>>> know, another static array) at the moment but that's probably ok as
>>> there are practical limits on include depth (I wouldn't think more
>>> than 2 would be very useful). It's set to 5 now.
>>>
>>> Steve
>>>
>>>
>>>>>> Fernando Simon <fsimon at univali.br> 07/06/06 8:10 AM >>>
>>>>>>
>>> Hi all,
>>>     It's a very good improvement  for Mapfiles, but I have just a
>>> little
>>> questions.
>>>     The "INCLUDE" will just accept full objects (layers, symbols,
>>> legend) or can I use to append definitions, like:
>>> LAYER
>>>         TYPE POINT
>>>         STATUS DEFAULT
>>>         INCLUDE "features_layer.lyr"
>>>         INCLUDE "class_layer.cls"
>>> END
>>>
>>>      The "features_layer.lyr" is:
>>> FEATURE
>>>     POINTS 10 10 40 20 300 300 400 10 10 400 END
>>> END
>>>
>>>      And "class_layer.cls", is:
>>> CLASS
>>>     NAME 'Church'
>>>     COLOR 0 0 0
>>>     SYMBOL 'square'
>>>     SIZE 7
>>>     STYLE
>>>         SYMBOL "square"
>>>         SIZE 5
>>>         COLOR 255 255 255
>>>     END
>>>     STYLE
>>>         SYMBOL "square"
>>>         SIZE 3
>>>         COLOR 0 0 255
>>>     END
>>> END
>>>
>>>     Another question, can I use and include with another include
>>> inside?
>>>     Best regards.
>>>
>>> Fernando Simon
>>>
>>>
>>>
>>> Daniel Morissette wrote:
>>>
>>>> Cool!
>>>>
>>>> This may not warrant a RFC, but could you please at least create a bug
>>>> report to document the enhancement, when it was added, what the
>>>> implications and limitations are, etc. (basically what you wrote in
>>>> your email).
>>>>
>>>> Sorry to be a pain about this, but it's always easier to point users
>>>> to bug reports or RFCs in release notes than having to tell them to
>>>> dig through the list archives to find the information (that's assuming
>>>> they are registered and able to reach the list archives).
>>>>
>>>> Daniel
>>>>
>>>> Steve Lime wrote:
>>>>
>>>>> Hi all: I sat down and actually read the Flex manual last night and
>>>>> discovered a simple ability to support INCLUDEd files. It's
>>>>> implemented within the lexer so doesn't impact any of the C source.
>>>>> Only a basic implementation is in place but it seems to work nicely,
>>>>> so now you can do stuff like:
>>>>>
>>>>> MAP
>>>>>   NAME 'include'
>>>>>   EXTENT 0 0 500 500
>>>>>   SIZE 250 250
>>>>>     INCLUDE "test_include_symbols.map"
>>>>>   INCLUDE "test_include_layer.map"
>>>>> END
>>>>>
>>>>> where test_include_symbols.map contains:
>>>>>
>>>>>   SYMBOL
>>>>>     NAME 'square'
>>>>>     TYPE VECTOR
>>>>>     FILLED TRUE
>>>>>     POINTS 0 0 0 1 1 1 1 0 0 0 END
>>>>>   END
>>>>>
>>>>> and test_include_layer.map contains:
>>>>>
>>>>>   LAYER
>>>>>     TYPE POINT
>>>>>     STATUS DEFAULT
>>>>>     FEATURE
>>>>>       POINTS 10 10 40 20 300 300 400 10 10 400 END
>>>>>     END
>>>>>     CLASS
>>>>>       NAME 'Church'
>>>>>       COLOR 0 0 0
>>>>>       SYMBOL 'square'
>>>>>       SIZE 7
>>>>>       STYLE
>>>>>         SYMBOL "square"
>>>>>         SIZE 5
>>>>>         COLOR 255 255 255
>>>>>       END
>>>>>       STYLE
>>>>>         SYMBOL "square"
>>>>>         SIZE 3
>>>>>         COLOR 0 0 255
>>>>>       END
>>>>>     END
>>>>>   END
>>>>>
>>>>> I think this could be extended to non-filebased sources but this'll
>>>>> do for now. Some caveats:
>>>>>
>>>>>   - the filename must be double qouted for the moment
>>>>>   - I'm sure there will be some pathing issues
>>>>>   - I'm not sure everything (especially file handles) is being
>>>>> cleaned up properly yet
>>>>>   - includes are never written when the mapObj is written to disk (I
>>>>> don't think it's necessary or even possible to do so)
>>>>>
>>>>> Anyway, it was simple to add and will be simple to back out if
>>>>> necessary. Figured it was worth testing since it is backwards
>>>>> compatible.
>>>>>
>>>>> Steve
>>>>>
>>>>>
>>>>
>>>
>>>
>
> ---
> Sean Gillies
> http://zcologia.com
>



More information about the mapserver-dev mailing list