[mapguide-users] Selection problem with map stored in session repository

Kenneth, GEOGRAF A/S ks at geograf.dk
Fri Jul 27 04:10:53 EDT 2007


I belive that the function you should examine is this:

    function ScreenToMapUnits2(x, y, bAllowOutsideWindow)
    {
        if(!bAllowOutsideWindow)
        {
            if(x > mapDevW - 1) x = mapDevW - 1;
            else if(x < 0) x = 0;

            if(y > mapDevH - 1) y = mapDevH - 1;
            else if(y < 0) y = 0;
        }

        x = extX1 + (extX2 - extX1) * (x / mapDevW);
        y = extY1 - (extY1 - extY2) * (y / mapDevH);
        return new Point(x, y);
    }

You then have to determine if it is extY1, extY2 or mapDevH that is wrong.
Once you find that out, you should examine areas where they get 
calculated, to further narrow it down.

Regards, Kenneth, GEOGRAF A/S



Ismael Cams skrev:
> Thanks for the answer Kenneth.
>
> I have checked the coordinates and they are indeed skewed. The x coordinates
> are ok, but the y coordinates do not match (which explains why I have to
> click somewhat above the point in order to select it). As soon as I resize
> the legend frame the coordinates get ok.
>
> The MCS part is not clear to me. Can I somehow make changes to this
> functions in order to solve the problem or can I try something else (without
> having to disable my legend) ? 
>
> For your notice: I make also selections programatically. This works fine in
> all cases. 
>
>
> Kenneth, GEOGRAF A/S wrote:
>   
>> I would say that the offset is likely caused by something incorrect on 
>> the html side.
>> If point 7 means: create 2 layouts in studio and test them in the same
>> app,
>> it would appear that a setting in the WebLayout file causes the html to 
>> report bad map offsets.
>>
>> You might see the actual coordinats being sent, by inserting an 
>> "alert(...)" in ajaxmappane.templ,
>> where it builds the polygon (search for "POLYGON").
>>
>> If the coordinates are correct (ea. the same), I have no clue.
>>
>> If the coordinates are skewed, look in the ajaxmappane.templ,
>> for the function that calculates the MCS coordinates from screen (x,y).
>> That functions has some offsets, and it is my guess that they slip a bit.
>>
>> Regards, Kenneth, GEOGRAF A/S
>>
>>
>>
>> Ismael Cams skrev:
>>     
>>> I have following situation:
>>>
>>> 1. I build dynamically two weblayouts in a session. One is containing a
>>> legend, the other one is only containing the zoom control.
>>> 2. The weblayouts refer to the same mapdefinition that is also build in a
>>> session.
>>> 3. The mapdefinition is referring to a point layer (sessionlayer)
>>> 4. Making a selection in the weblayout without legend works fine.
>>> 5. Making a selection in the weblayout with legend does not work
>>> correctly.
>>> I have to click above the point to actually make the selection.
>>> 6. When I minimize the legend frame (by using the arrow in the
>>> webbrowser)
>>> the selection suddenly works correctly. Also when I disable the legend in
>>> the first layout this is also working fine.
>>> 7. When I create the same scenario with Studio I do not encounter the
>>> problem (selection is working without problems).
>>>
>>> I believe it has something to do with using the same session, but I do
>>> not
>>> have a clue where to look after. Can someone give me hints about what
>>> could
>>> be the problem ?
>>>
>>> Kind regards,
>>> Ismaël
>>>   
>>>       
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>>
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20070727/f40bf5c7/attachment.html


More information about the mapguide-users mailing list