[mapguide-users] Zoom to feature using ajaxviewer

Zac Spitzer zac.spitzer at gmail.com
Thu Sep 6 06:54:08 PDT 2012


does your feature source have a pk?

On Thu, Sep 6, 2012 at 10:05 PM, veer-singh <veer-singh at hcl.com> wrote:
> Hello Lists..
>
> Please help me out in this.
>
> I am trying to zoom to a feature based on feature attribute value query.. I
> am not selecting any feature on map. i just want to zoomto feature based on
> my hardcoded query, here in below function you can assume fixed hardcoded
> values for layername and selection which is actually a featid of feature.
>
> i am using following function at server side...
>
>  public String OutputSelectionInHTML(MgMap map, MgFeatureService
> featureService, string layerName, string selection, MgResourceService
> resService, string mgMapName)
>     {
>         MgSelection mapSelection = new MgSelection(map);
>         mapSelection.Open(resService, mgMapName);
>         //MgReadOnlyLayerCollection layers = mapSelection.GetLayers();
>         MgLayerCollection layers = map.GetLayers();
>         String outString = null;
>         MgFeatureReader featReader = null;
>         if (layers != null)
>         {
>             for (int i = 0; i < layers.GetCount(); i++)
>             {
>                 MgLayerBase nextLayer = layers.GetItem(i);
>                 //MgLayer layer = (MgLayer)layers.GetItem(i);
>                 if (nextLayer != null && (nextLayer.GetName() == layerName))
>                 {
>                     String layerClassName = nextLayer.GetFeatureClassName();
>                     String selectString = "FeatId = " + selection;
>                     String layerFeatureIdString =
> nextLayer.GetFeatureSourceId();
>                     MgResourceIdentifier layerResId = new
> MgResourceIdentifier(layerFeatureIdString);
>                     MgFeatureQueryOptions queryOptions = new
> MgFeatureQueryOptions();
>                     queryOptions.SetFilter(selectString);
>                     featReader = featureService.SelectFeatures(layerResId,
> layerClassName.Split(':')[1].ToString(), queryOptions);
>                     while (featReader.ReadNext())
>                     {
>                         //MgByteReader
> mgbyte=featReader.GetGeometry(MgPropertyType.Feature);
>
>                         //mapSelection.AddFeatures(nextLayer, featReader,
> mapSelection.GetSelectedFeaturesCount(nextLayer,
> layerClassName.Split(':')[1].ToString()));
>                         mapSelection.AddFeatures(nextLayer, featReader, 0);
>                     }
>                      //get XML from selection
>                     string selectionXML = mapSelection.ToXml();
>
>                     //get center
>                     double selectionCenterX =
> mapSelection.GetExtents(featureService).GetLowerLeftCoordinate().GetX() +
> mapSelection.GetExtents(featureService).GetWidth() / 2;
>                     double selectionCenterY =
> mapSelection.GetExtents(featureService).GetLowerLeftCoordinate().GetY() +
> mapSelection.GetExtents(featureService).GetHeight() / 2;
>
>                     outString = "zoom~" + selectionXML + "~" +
> selectionCenterX + "~" + selectionCenterY;
>                                    }
>             }
>         }
>         ClientScript.RegisterStartupScript(this.GetType(), "page", "");
>   }
>
> following at client side
>
>
>
>
>
> -----
> VEER HCLTECH,INDIA
> --
> View this message in context: http://osgeo-org.1560.n6.nabble.com/Zoom-to-feature-using-ajaxviewer-tp5000178.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



-- 
Zac Spitzer
Solution Architect / Director
Ennoble Consultancy Australia
+61 405 847 168


More information about the mapguide-users mailing list