[Chameleon] Querying a dynamic layer
Ken-ichi
kueda at wso.williams.edu
Thu Sep 23 13:52:56 EDT 2004
Hah! Success! I checked out the session's map file, and lo and behold,
it was setting the tolerance units to inches. Instead of
$lyrPoints->set( "toleranceunits", "pixels" );
I should have been using
$lyrPoints->set( "toleranceunits", MS_PIXELS );
Since I would have to be ridiculously zoomed in to be within a couple
inches, the query never worked when I used "pixels" and
Chameleon/MapScript defaulted to "inches." Once I changed to the
MS_PIXELS constant, the queries worked.
Thanks for your help.
-Ken-ichi
Paul Spencer wrote:
> Ken,
>
> if you want to see the map file that chameleon is currently using, you
> will need to grab the session id by viewing the source of your page
> and searching for an <input> with name "sid", there should be a number
> like "4152fd8f5f9bf" there. Chameleon uses this to create a directory
> called sess_<sid> in the session save path (configured in php.ini).
> For ms4w users, this is /ms4w/tmp/
>
> In the session directory you will find a session file and one or more
> map files. Open the most recent map file to see what chameleon used
> on the last page load.
>
> You can also see all the variables chameleon holds in the session by
> opening the session file or by including the following at the end of
> your phtml file:
>
> echo "<pre>";
> print_r($_SESSION);
> echo "</pre>";
>
> be warned that there is a lot in here because of circular references
> in some of the php arrays ...
>
> Cheers,
>
> Paul
>
> Ken-ichi wrote:
>
>> This may be a dumb question, but is there actually a function
>> somewhere to output all the map file variables that Chameleon holds
>> in memory during a session at any given time?
>>
>> -Ken-ichi
>>
>> Paul Spencer wrote:
>>
>>> Ken-ichi ...
>>>
>>> actually I'm not sure that I have actually seen this done ... anyone
>>> else done this and got it to work?
>>>
>>> Have you compared the layer definition that is generated by your
>>> script to the one you added to the map file? Perhaps there is some
>>> subtle difference?
>>>
>>> Cheers,
>>>
>>> Paul
>>>
>>> Ken-ichi wrote:
>>>
>>>> I Just tried both of these, but still no luck. I take it others
>>>> have successfully queried dynamically added point layers in the past?
>>>>
>>>> -Ken-ichi
>>>>
>>>> Paul Spencer wrote:
>>>>
>>>>> just a guess, but try giving your template a .html extension and
>>>>> if that doesn't work then try adding a template to the class ...
>>>>>
>>>>> Ken-ichi wrote:
>>>>>
>>>>>> Yup, I defined a class. Looks like this:
>>>>>>
>>>>>> $clsPoints = ms_newClassObj( $lyrPoints );
>>>>>> $clsPoints->label->set( "type", "truetype" );
>>>>>> $clsPoints->label->set( "font", "fritqat" );
>>>>>> $clsPoints->label->set( "type", "truetype" );
>>>>>> $clsPoints->label->set( "size", "6" );
>>>>>> $clsPoints->label->set( "position", "CR" );
>>>>>> $clsPoints->label->color->setRGB($outlineColor[0],$outlineColor[1],$outlineColor[2]);
>>>>>>
>>>>>>
>>>>>> $clsPoints->label->outlinecolor->setRGB(255,244,221);
>>>>>> $styPoints = ms_newStyleObj( $clsPoints );
>>>>>> $styPoints->color->setRGB($color[0],$color[1],$color[2]);
>>>>>> $styPoints->outlinecolor->setRGB($outlineColor[0],$outlineColor[1],$outlineColor[2]);
>>>>>>
>>>>>> $styPoints->set( "symbol", 7 );
>>>>>> $styPoints->set( "size", 7 );
>>>>>> So I'm guessing that's not it.
>>>>>>
>>>>>> -Ken-ichi
>>>>>> Paul Spencer wrote:
>>>>>>
>>>>>>> Another interesting artefact of mapserver is that you must also
>>>>>>> have a class defined for a layer to be queryable. Are you also
>>>>>>> creating classes?
>>>>>>>
>>>>>>> Paul
>>>>>>>
>>>>>>> Ken-ichi wrote:
>>>>>>>
>>>>>>>> Hi all. I'm having trouble using the QueryWidget on a
>>>>>>>> shapefile that I've added to the map dynamically with my own
>>>>>>>> widget. Basically, I set the template property of the layer
>>>>>>>> when I add it to the map, along with the tolerance, but when I
>>>>>>>> click on the points in the layer, the popup lists no results.
>>>>>>>> Any idea what's happening? Here's the code for adding the
>>>>>>>> layer, followed by the widget tag I'm using:
>>>>>>>>
>>>>>>>> $lyrPoints = ms_newLayerObj( $map );
>>>>>>>> $lyrPoints->set( "name", $quad[0]." Points" );
>>>>>>>> $lyrPoints->set( "type", MS_SHAPE_POINT );
>>>>>>>> $lyrPoints->set( "status", MS_ON );
>>>>>>>> $lyrPoints->set( "data", "/path/to/data" );
>>>>>>>> $lyrPoints->set( "group", "Your Layers");
>>>>>>>> $lyrPoints->set( "labelitem", "pointid" );
>>>>>>>> $lyrPoints->set( "labelmaxscale", "600000" );
>>>>>>>> $lyrPoints->set( "template", "ttt" );
>>>>>>>> $lyrPoints->set( "tolerance", 5 );
>>>>>>>> $lyrPoints->set( "toleranceunits", "pixels" );
>>>>>>>>
>>>>>>>>
>>>>>>>> <cwc2 type="Query" visible="true" imagetip="Identify Feature"
>>>>>>>> PopupWidth="500" PopupHeight="600" Toolbar="false"
>>>>>>>> Status="false" Menubar="false" RADIUS="20" MAXFEATURES="5"
>>>>>>>> image="icons/icon_query.png" toolset="Navigation"
>>>>>>>> styleresource="NavButtons" popupstyleresource="TextButtons">
>>>>>>>> <image state="normal"/>
>>>>>>>> <image state="hover"/>
>>>>>>>> <image state="selected"/>
>>>>>>>> </cwc2>
>>>>>>>>
>>>>>>>> The query widget seems to work fine when I just include the
>>>>>>>> same layer in the mapfile, so I'm not quite sure what's wrong.
>>>>>>>>
>>>>>>>> -Ken-ichi
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Chameleon mailing list
>>>>>>>> Chameleon at lists.maptools.org
>>>>>>>> http://lists.maptools.org/mailman/listinfo/chameleon
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Chameleon mailing list
>>>> Chameleon at lists.maptools.org
>>>> http://lists.maptools.org/mailman/listinfo/chameleon
>>>>
>>>
>>
>>
>
More information about the Chameleon
mailing list