[Chameleon] How to pass forward user specific extents?

Ken Sanderson ken at rockies.ca
Tue Aug 24 14:37:29 EDT 2004


Thanks Paul, that did the trick!

Just for anyone else interested or might find this in a future search, I
added a metadata object to the Web object of the MAP file called
original_extents with the value in the format of:
<minx>,<miny>,<maxx>,<maxy>.

Ken

-----Original Message-----
From: Paul Spencer [mailto:pagameba at magma.ca] 
Sent: August 24, 2004 12:00 PM
To: Ken Sanderson
Cc: chameleon at lists.maptools.org
Subject: Re: [Chameleon] How to pass forward user specific extents?


Ken, there is a mechanism for that too!  Chameleon uses metadata at the 
map object level to maintain the full extents when you first loaded the 
map ... you can override this behaviour by supplying your own full 
extents ...

"original_extents" "<minx> <miny> <maxx> <maxy>"

if your users can change projection, then you will also need an 
"original_projection" entry ...

when you run a chameleon app, it stores temporary files in the place 
indicated in your php.ini ... if you are using ms4w it is in c:/ms4w/tmp

... you will see a bunch of directories called sess_xxxxxxxxx and inside

these directories are a bunch of files, including map files.  You can 
open one of these map files to see the metadata that chameleon creates 
on first load ...

Cheers,

Paul

Ken Sanderson wrote:

> That worked perfect Bill, thanks!!
> 
> One last question, well atleast in regards to this topic. Is there a 
> way to set the current view extents vs the overall extents? Basically 
> I need the user to go to their prefered starting extent, but if they 
> hit the 'zoom to full extents' button it should take them to the 
> overall extents of the MAP file, not the ones I have just set via the 
> setextent() function. Right now, if you use the 'zoom to full extent' 
> tool it takes them to the values I set with setextent() at instead of 
> the full map extents.
> 
> Hope that makes sense. I am thinking I need to save the original 
> extents to variables and then reset it after the original load?
> 
> Ken
> 
> -----Original Message-----
> From: chameleon-bounces at lists.maptools.org
> [mailto:chameleon-bounces at lists.maptools.org] On Behalf Of William A. 
> Bronsema
> Sent: August 24, 2004 10:27 AM
> To: Ken Sanderson
> Cc: chameleon at lists.maptools.org
> Subject: Re: [Chameleon] How to pass forward user specific extents?
> 
> 
> Ken,
> 
> Add a hidden input tag like:
> <input type="hidden" name="myLoadCheck" value='1'>
> 
> Use php to check the form variables that are passed over the URL.  On
> the initial load the form variable "myLoadCheck" will not be set so
you 
> know it is the first load.  Subsequent page load will have the
variable
> set.
> 
> something like:
> 
> $bNotFirstLoad = ( isset( $_GET['myLoadCheck'] ) ||
>                    isset( $_POST['myLoadCheck'] ) );
> 
> I haven't tried it, but something like this should work.
> 
> Regards,
> Bill
> 
> Ken Sanderson wrote:
> 
> 
>>Thanks Paul and Bill.
>>
>>I used Bill's method of:
>>$oApp->moMapSession->oMap->setextent
>>
>>As this was creating an unknown object error:
>>$this->moMapObject->oMap->extent->setextent
>>
>>How do you suggest checking for first load? I had assumed that the
>>script in PHTML only was read on the original load.
>>
>>Ken
>>
> 
> 
> 

-- 
  -----------------------------------------------------------------
|Paul Spencer                           pspencer at dmsolutions.ca   |
|-----------------------------------------------------------------|
|Applications & Software Development                              |
|DM Solutions Group Inc                 http://www.dmsolutions.ca/|
  -----------------------------------------------------------------





More information about the Chameleon mailing list