INCLUDE capability added...
Sean Gillies
sgillies at FRII.COM
Thu Jul 6 15:10:59 EDT 2006
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