PHP Map Obj Serialize

Tamas Szekeres szekerest at GMAIL.COM
Tue Aug 15 10:11:37 EDT 2006


Hi,

If mapObj could be serialized to and deserialized from a binary stream
would it solve your problem? (Only the parameters enumerated in
msCopyMap would have to be serialized)

Tamas


2006/8/15, Stuart Eve <stuarteve at lparchaeology.com>:
> Hi there
> >
> > querystrings have nothing to do with CGI MapServer exclusively ... you
> > use them with or without CGI, with or without scripting... after all,
> > how else does the user communicate with the server... the only known
> > possible ways for a browser to communicate with a server are
> > GET|POST|XMLHttpRequest, afaik. That said...
> Thanks for the reply, we are writing quite a complex application in php
> and afaik you have listed the most common ways that the user may
> communicate with the server. We also make use of session variables as
> well, meaning we can also use some quite complicated multi-dimensional
> arrays to set up and change various variables.
>
> This is one of the reasons why I was wondering if it was possible to
> serialise the map object, save it to the session and then rebuild it
> afterwards, so that we could avoid the performance loss of reading in a
> text file and then recreating the map object each time.
> > Yes, in that case, what you doing is probably one correct way to do it
> > (I am sure TMTOWTDI).
> Does anyone have any other ideas what these other ways may be - I am
> interested to try to streamline this as much as possible.
> >
> > You can continue to do what you are doing... just store the unique,
> > associative threesome of the memorable name ('My favorite house'), the
> > mapfile for it, and the cached png's name in a db table. When the user
> > wants to see her favorite house, query the db and grab the png name
> > and the mapfile... check to make sure the png still exists, and if
> > yes, show it. Else, regenerate the darn thing using the mapfile. All
> > these three things are already plain vanilla text, and can be easily
> > stored in your persistent mechanism of choice.
> I think that there will be a performance hit reading in and comparing
> plain vanilla text files, especially if we have a lot of saved mapfiles.
> For example, if we have 5000 saved mapfiles, the application will need
> to open and read in and compare 5000 mapfiles each reload. Thats going
> to be quite processor heavy. Does anyone have any suggestions?
>
> >
> > Still no mucking around with the mapObj.
> >
> > On the other hand, as I said, TMTOWTDI.
> >
> >
> >> This means
> >> we would need to load the querystring with definitions for each layer
> >> and class within the mapfile which may become a little unmanageable.
> >>
> >> Stuart
> >>
> >> P Kishor wrote:
> >> > I know very little about the current state of PHP/MapScript, but I
> >> > have implemented what you propose below. It does not require mucking
> >> > around with mapObj at all.
> >> >
> >> > Think of how any given map is formed -- it requires a query sent
> >> > either via GET or POST. All you have to do is store that query (it is
> >> > already serialized by http for you), associate it with a memorable
> >> > name ('My House', 'My Cat's Sleeping Place') and the resulting png
> >> > image cached somewhere safe where it doesn't get cleaned up by your
> >> > normal hard disk maid service, and store the three as you wish -- in
> >> > an associative array, in a file, in 3 fields of a database table,
> >> > whatever you want.
> >> >
> >> > Next time your user clicks on her 'My House', you check if the
> >> > associate png is present and use it, if not, use the associated query
> >> > to regenerate it, and restore it.
> >> >
> >> > On 8/15/06, Stuart Eve <stuarteve at lparchaeology.com> wrote:
> >> >> Dear all,
> >> >>
> >> >> We are attempting to think of a way to provide a 'permalink' to a
> >> >> particular map object. In addition we would like to do a check to
> >> see if
> >> >> the server has already created that map (with its specific
> >> >> configuration) before and so just load up the cached png instead of
> >> >> recreating the png each time.
> >> >>
> >> >> I realise we can save out the mapfile to a .txt file and then read
> >> it in
> >> >> - and compare it to all of the other mapfiles we have saved, but it
> >> >> seems like it may be a little processor heavy. We were hoping to save
> >> >> something out to a field in the MySQL table. We were thinking
> >> along the
> >> >> lines of a serialized array which could then be compared with the
> >> other
> >> >> cached arrays in the MySQL table and see if theres a match.
> >> >>
> >> >> Our main problem, though, is that we can't unserialize a map
> >> object (as
> >> >> it loses all of its methods). Is there a way to unserialize the map
> >> >> object and make it function properly again as a map object or
> >> >> alternatively output the mapfile to a field in the database and then
> >> >> recreate the map object from that? Does the mapObj constructor
> >> only work
> >> >> from files?
> >> >>
> >> >> We are using Mapserver 4.8 and PHPMapscript.
> >> >>
> >> >> Thanks in advance
> >> >>
> >> >> Stuart
> >> >>
> >> >> --
> >> >> Stuart Eve
> >> >> L - P : Archaeology
> >> >> stuarteve at lparchaeology.com
> >> >>
> >> >
> >> >
> >>
> >>
> >> --
> >> Stuart Eve
> >> L - P : Archaeology
> >> stuarteve at lparchaeology.com
> >>
> >>
> >
> >
>
>
> --
> Stuart Eve
> L - P : Archaeology
> stuarteve at lparchaeology.com
>



More information about the mapserver-users mailing list