Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Seems like this should be dead simple. I'm writing an add-in for ArcMap 10 in VB.Net. I need code that will reproduce the 'Selection --> Zoom To Selected Feature' menu option.

share|improve this question
    
What is causing problems? Add-in or "Zoom to selected"? –  MathiasWestin Oct 5 '10 at 14:50
    
Implementing "Zoom To Selected" inside the Add-in. The Add-in itself is working fine, other than the Zoom To Selected feature. I assumed there would be some VB.Net equivalent to the python code here: gis.stackexchange.com/questions/1711/… –  mwolfe02 Oct 5 '10 at 15:00
add comment

3 Answers 3

up vote 2 down vote accepted

You can call the built-in command for "Zoom to Selected Features" using the CLSID or ProgID.

{AB073B49-DE5E-11D1-AA80-00C04FA37860} esriArcMapUI.ZoomToSelectedCommand

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/ArcMap_commands/00010000029s000000/

http://resources.esri.com/help/9.3/arcgisdesktop/com/shared/desktop/reference/ArcMapIds.htm

share|improve this answer
    
Awesome. Exactly what I was looking for. I've been wasting my time trying to implement this manually in the code using envelopes, etc. but I really didn't need that level of granular control. I knew there had to be a straightforward way to simply use the existing toolbar commands. Thanks again! –  mwolfe02 Oct 5 '10 at 18:55
add comment

I had problems implementing the above solutions - the syntax hadn't been updated. This is my solution.

    Dim pUID As New UID
    'set the puid by using the clsid
    'pUID.Value = "{AB073B49-DE5E-11D1-AA80-00C04FA37860}"
    'Put subtype here if there is one.  There isn't in this case so you don't need it.
    'pUID.SubType = 0
    'Used the  ProgID instead.  Easier for someone else to read the code.
    pUID.Value = "esriArcMapUI.ZoomToSelectedCommand"
    My.ArcMap.Application.Document.CommandBars.Find(pUID).Execute()

This was written for an add-in using ArcGIS 10sp2 and Visual Studio 2008.

share|improve this answer
add comment
       public void ZoomToSelectedFeatures()
    {
        ESRI.ArcGIS.Carto.IActiveView pActiveView;
        ESRI.ArcGIS.Carto.IMap pMap;
        ESRI.ArcGIS.Geodatabase.IEnumFeature pEnumFeature;
        ESRI.ArcGIS.Geodatabase.IFeature pFeature;

        pMap = (IMap)m_hookHelper.FocusMap;
        pEnumFeature = (IEnumFeature)pMap.FeatureSelection;
        pFeature = pEnumFeature.Next();

        ESRI.ArcGIS.Geometry.IEnvelope pEnvelope;
        pEnvelope = new EnvelopeClass();

        while (pFeature != null)
        {
            pEnvelope.Union(pFeature.Shape.Envelope);
            pFeature = pEnumFeature.Next();
        }

        pEnvelope.Expand(1.2, 1.2, true);
        pActiveView = m_hookHelper.ActiveView;
        pActiveView.Extent = pEnvelope;
        pActiveView.Refresh();
    }
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.