[mapguide-users] how to set selected feature at client infusion???

Berdel, Brian brian.berdel at mcmtrans.com
Mon Jun 9 10:41:35 EDT 2008


FYI, you do not need 

 

var map = GetParent().Fusion.getMapByName(mapName); 

 

That was in there for a different function…

 

Brian

________________________________

From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Berdel, Brian
Sent: Monday, June 09, 2008 10:26 AM
To: MapGuide Users Mail List
Subject: RE: [mapguide-users] how to set selected feature at client infusion???

 

There are two ways to do it...My preferred way is to use the MapguideViewweAPI.js file located under fusion/MapGuide/MapGuideViewerAPI.js

This has the SetSelectionXML Function in it and it also automatically zooms and refreshes the map once called.   Place this javascript in your task frame page.  I include the MapGuideViewerAPI.js in my fusion application template.

  

      function GetParent()

{

  if (popup) {

      return opener;

    } else 

    if (parent.Fusion) {

        return parent;

    } else if (parent.parent.Fusion) {

        return parent.parent;

    }

    return null;

}

 

function(mapName, sel)

{

var map = GetParent().Fusion.getMapByName(mapName); 

GetParent().SetSelectionXML(sel);

}

 

The one issue I did run into is that when grabbing the selectionXML

 

selectionXML = selection.ToXml();

 

the XML was incorrect...For the layername it was bringing in only the second part of the layer name (i.e. Parcels instead of Default:Parcels) which was giving an error in fusion when setting the selection.   For right now, I am just replacing the string after calling selection.ToXML

 

 

There is also a setSelection() function in fusion, but I haven't tried it yet...

 

Thanks, 

 

Brian  Berdel 

McMahon Associates, Inc. 

p: 215.283.9444

www.mcmtrans.com 

-----Original Message-----
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of foolfish
Sent: Sunday, June 08, 2008 10:17 PM
To: mapguide-users at lists.osgeo.org
Subject: [mapguide-users] how to set selected feature at client in fusion???

 

 

my problem is in tradition method (not use fusion), i can select feature at

server, and display the selected feature at client。

 

but in fusion,the follow line is failed:

parent.parent.SetSelectionXML(selectionXML);  

parent.parent.mapFrame.Refresh();

 

my question is how to setSelection at client in fusion?:confused:

 

-------------------------------------------------------------

[at server]:i define a function to select Feature,and return a selectionXML    

public void CreateSelectionXML(String queryLayer, String queryString,String

map_name)

    {

        MgResourceService resService =

(MgResourceService)siteConnection.CreateService(MgServiceType.ResourceService);

        MgFeatureService featureService =

(MgFeatureService)siteConnection.CreateService(MgServiceType.FeatureService);

      MgMap map = new MgMap();

        map.Open(resService, map_name);

        MgLayer layer = (MgLayer)map.GetLayers().GetItem(queryLayer);

      MgResourceIdentifier resId = new

MgResourceIdentifier(layer.GetFeatureSourceId());

        MgFeatureQueryOptions queryOption = new MgFeatureQueryOptions();

        queryOption.SetFilter(queryString);

        MgFeatureReader featureReader = featureService.SelectFeatures(resId,

queryLayer, queryOption);

      MgSelection selection = new MgSelection(map);

        selection.AddFeatures(layer, featureReader, 0); 

        OutputSelectionInHTML(selection, featureService, queryLayer);

        selectionXML = selection.ToXml();

    }

 

-------------------------------------------------------------

[at client]:

<%

    string sessionID = Request.Form.Get("SESSION");;

     String queryString = "ID='"+ Request.Form.Get("ID"); +"'";

     String queryLayer =  Request.Form.Get("LAYER_NAME");

     String map_name = Request.Form.Get("MAP_NAME");

 

     InitializeWebTier(Request);

     onnectToServer(sessionID);

     CreateSelectionXML(queryLayer,queryString,map_name );

     String selectionXML = utility.SelectionXML;

%>

...

<script type="text/javascript" >

        function onPageLoad() {

            var selectionXML = '<% = selectionXML  %>';

            parent.parent.SetSelectionXML(selectionXML);         

        }

parent.parent.SetSelectionXML(selectionXML);  

parent.parent.mapFrame.Refresh();

 

</script>

...

<body onload="onPageLoad()" >

...

</body>

-------------------------------------------------------------

 

 

-- 

View this message in context: http://www.nabble.com/how-to-set-selected-feature-at-client-in-fusion----tp17725343p17725343.html

Sent from the MapGuide Users mailing list archive at Nabble.com.

 

_______________________________________________

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/20080609/ed25ddfe/attachment.html


More information about the mapguide-users mailing list