From: mapguide-users-bounces@lists.osgeo.org on behalf of Berdel, Brian [brian.berdel@mcmtrans.com] Sent: Monday, May 21, 2007 7:19 PM To: MapGuide Users Mail List Subject: RE: [mapguide-users] Navigation Example .NET Attachments: ATT254220.txt Thanks for your help. I was able to get it working correctly with the ZoomToPoint call, which is what I was trying to do anyway. It does refresh the map and turns the layer on, but Kenneth is correct that it is not shown as on in the legend and tool tips are affected. I am going to submit another internal on it since Kenneth’s seems to have disappeared. Thanks again, Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com -------------------------------------------------------------------------------- From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Andy Morsell Sent: Monday, May 21, 2007 5:55 PM To: 'MapGuide Users Mail List' Subject: RE: [mapguide-users] Navigation Example .NET The JavaScript call should be GetMapFrame().Refresh(); Andy -------------------------------------------------------------------------------- From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Berdel, Brian Sent: Monday, May 21, 2007 2:43 PM To: MapGuide Users Mail List Subject: RE: [mapguide-users] Navigation Example .NET Why do I keep getting? Object doesn't support this property or method when referring to parent.GetMapFrame().Refresh; I have this in an onload function of the page in JavaScript. Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com -------------------------------------------------------------------------------- From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Kenneth Sent: Monday, May 21, 2007 2:33 PM To: MapGuide Users Mail List Subject: Re: [mapguide-users] Navigation Example .NET I can't find it either :D... Here is the text of my post: When using the server API for altering layer visibility, a call to the GetMapFrame().Refresh() is not sufficient to refresh the legend. Pseudocode: $map.Open(...); $map.Layers('layername').setVisibility(true); $map.Save(); Calling the GetMapFrame().Refresh() after this, will update the map to display the new layer. However the Legend does not reflect this change. The problem can be solved with two changes: 1. In ajaxmappane.templ, the Refresh() function should also call ResetVisLayers() 2. In legendctrl.templ, the Refresh call should be changed, so it does not call with the summary parameter The problem only occurs in the AJAX viewer. When retrieving the legend script, using the summary parameter, the visibility does not change. Removing the summary parameter is a bad fix, as it also disables the optimizations that the summary parameter gives. If the above mentioned fix 1, is not implemented, a lot of features will fail after modifying the map. For instance tooltips for the layers will not work. I think this is a problem with a design flaw in the way the viewer is implemented. Keeping state data solely on the client is a very bad idea. This happens with layerstates and current zoom in the AJAX viewer, and the Selection in the DWF viewer. To allow modifications to the map from the server API, all data should be written to the server. To provide caching the client should fetch a change list, rather than sporadically caching data. Using a sequence number, the client can skip multiple update cycles, and still be synced correctly. Using a generic format would allow the DWF and ajax viewer to work on exactly the same data, thus reducing duplicate code. Regards, Kenneth, GEOGRAF A/S Berdel, Brian wrote: Looks like you are right…Thanks. I cannot seem to find your workaround, can you send me a link or something? Thanks, Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com -------------------------------------------------------------------------------- From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Kenneth Sent: Monday, May 21, 2007 9:58 AM To: MapGuide Users Mail List Subject: Re: [mapguide-users] Navigation Example .NET The zoom will invalidate the map, and is the same as a refresh. I haven't tested it, but I don't think a scale change (eg. zoom) will refresh the visible layer cache, but it might. Regards, Kenneth, GEOGRAF A/S Andy Morsell wrote: But in the example below, where the layer is being set to visible right before a zoom, the zoom should take care of the map refresh and the layer should appear on the subsequent map. Or, is this not the case? Andy -------------------------------------------------------------------------------- From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Kenneth Sent: Sunday, May 20, 2007 11:18 AM To: MapGuide Users Mail List Subject: Re: [mapguide-users] Navigation Example .NET If you modify the layer visibility, using serverside code, it will not work correctly with the AJAX viewer. The problem is that the AJAX client has a small cache of visible layers, and calling map.refresh() on the client does not invalidate this cache. The symptoms will be that no tooltip is displayed for the layer, and the layer never shows up in the legend. I've posted this bug on the mapguide-internals list, and a workaround. Regards. Kenneth, GEOGRAF A/S Berdel, Brian wrote: Cool, thanks! I’ll give it a try. Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com size=2 width="100%" align=center tabIndex=-1> From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Andy Morsell Sent: Friday, May 18, 2007 12:39 PM To: 'MapGuide Users Mail List' Subject: RE: [mapguide-users] Navigation Example .NET The execution of the API functions must happen server side in this instance. But, it looks like you could put your .NET conditional code in the gotopoint.aspx page and it would work. The OnPageLoad() javascript function would fire afterwards so all should behave smoothly. And, you would not have to programmatically refresh the map since that will happen with the ZoomToView anyway. Andy size=2 width="100%" align=center tabIndex=-1> From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Berdel, Brian Sent: Friday, May 18, 2007 9:28 AM To: MapGuide Users Mail List Subject: RE: [mapguide-users] Navigation Example .NET Thanks for the response. I am looking for a way to achieve this on the client side. I do not want to check until after the user has clicked on link. (such as putting it in the gotopoint.aspx page). Will this work here? Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com size=2 width="100%" align=center tabIndex=-1> From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Andy Morsell Sent: Friday, May 18, 2007 11:40 AM To: 'MapGuide Users Mail List' Subject: RE: [mapguide-users] Navigation Example .NET You should be able to use the MgLayer::IsVisible function to check the visibility and then SetVisible to turn it on. You will then have to refresh the map to reflect the change. Andy Morsell, P.E. Spatial Integrators, Inc. http://www.SpatialGIS.com size=2 width="100%" align=center tabIndex=-1> From: mapguide-users-bounces@lists.osgeo.org [mailto:mapguide-users-bounces@lists.osgeo.org] On Behalf Of Berdel, Brian Sent: Friday, May 18, 2007 8:00 AM To: MapGuide Users Mail List Subject: [mapguide-users] Navigation Example .NET Anyone know how I would go about checking to see if a layer was on in the navigation example and if it is not turn it when clicking a link. Thanks! Brian Berdel McMahon Associates, Inc. p: 215.283.9444 www.mcmtrans.com -------------------------------------------------------------------------------- _______________________________________________ mapguide-users mailing list mapguide-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapguide-users -------------------------------------------------------------------------------- _______________________________________________ mapguide-users mailing list mapguide-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapguide-users -------------------------------------------------------------------------------- _______________________________________________ mapguide-users mailing list mapguide-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapguide-users