Exemple #1
0
        //On click, verify valid inputs are provided and send parameters to LoadLayers.cs
        private void button1_Click(object sender, EventArgs e)
        {
            if (m_pBUILDINGSDE == null || m_pDOFTAXMAPSDE == null || m_pCSCLSDE == null)
            {
                MessageBox.Show("Folder required for all connections.", "No folder provided", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            //Verify that map type is selected
            else if ((isCSCL && isCustom) || (!(isCSCL) && !(isCustom)))
            {
                MessageBox.Show("Select only one map type.", "Map Type Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
            }
            //Verify that at least one layer is selected (if custom)
            else if ((isCustom) && (!(isAddressPoint) && !(isBuilding) && !(isCenterline) && !(isTaxLot)))
            {
                MessageBox.Show("Select at least one map layer to load into map", "Custom Map Type Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
            }

            else
            {
                //Create Connection file (removed from final project)
                //SDEConnection.SDEWorkspace(server, instance, user, password, database, version);

                //Load layers using input folders/SDE connections
                LoadLayers.BuildMap(m_pBUILDINGSDE, m_pCSCLSDE, m_pDOFTAXMAPSDE, isCSCL, isCustom,
                                    isAddressPoint, isCenterline, isBuilding, isTaxLot, isSave);
                this.Close();
            }
        }
        public static void BuildMap(string m_pBUILDINGSDE, string m_pCSCLSDE, string m_pDOFTAXMAPSDE, bool isCSCL, bool isCustom,
                                    bool isAddressPoint, bool isCenterline, bool isBuilding, bool isTaxLot, bool isSave)

        {
            //Point to map document
            IMxDocument pMxDoc;

            pMxDoc = (IMxDocument)ArcMap.Application.Document;

            IMap pMap;

            pMap = pMxDoc.FocusMap;

            //Zoom in so that layers don't take too long to load
            double    x      = 988217;
            double    y      = 192020;
            double    border = 200;
            IEnvelope pEnvelope;

            pEnvelope = new EnvelopeClass {
                XMin = x - border, YMin = y - border, XMax = x + border, YMax = y + border
            };

            pMxDoc.ActiveView.Extent = pEnvelope;

            //Create layer groups
            IGroupLayer pBoundaryLayerGroup = new GroupLayerClass();

            pBoundaryLayerGroup.Name     = "Boundary";
            pBoundaryLayerGroup.Expanded = true;
            pBoundaryLayerGroup.Visible  = true;

            IGroupLayer pTransportationLayerGroup = new GroupLayerClass();

            pTransportationLayerGroup.Name     = "Transportation";
            pTransportationLayerGroup.Expanded = true;
            pTransportationLayerGroup.Visible  = true;

            IGroupLayer pPlacesLayerGroup = new GroupLayerClass();

            pPlacesLayerGroup.Name     = "Places";
            pPlacesLayerGroup.Expanded = true;
            pPlacesLayerGroup.Visible  = true;

            IGroupLayer pEMSLayerGroup = new GroupLayerClass();

            pEMSLayerGroup.Name     = "EMS";
            pEMSLayerGroup.Expanded = true;
            pEMSLayerGroup.Visible  = true;

            IGroupLayer pReferenceLayerGroup = new GroupLayerClass();

            pReferenceLayerGroup.Name     = "Reference";
            pReferenceLayerGroup.Expanded = true;
            pReferenceLayerGroup.Visible  = true;

            IGroupLayer pLayerGroup = new GroupLayerClass();

            pLayerGroup.Name     = "Featured Layers";
            pLayerGroup.Expanded = true;
            pLayerGroup.Visible  = true;

            //Load Layers into layer groups using input SDE connection using LoadCSCLFeatureClass method
            if (isCSCL)
            {
                LoadCSCLFeatureClass(isCSCL, "CityLimit", pBoundaryLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "ZipCode", pBoundaryLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "AssemblyDistrict", pBoundaryLayerGroup, m_pCSCLSDE);

                LoadCSCLFeatureClass(isCSCL, "CensusBlock2010", pReferenceLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "CensusTract2010", pReferenceLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "Elevation", pReferenceLayerGroup, m_pCSCLSDE);

                LoadCSCLFeatureClass(isCSCL, "FireBattalion", pEMSLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "FireCompany", pEMSLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "FireDivision", pEMSLayerGroup, m_pCSCLSDE);

                LoadCSCLFeatureClass(isCSCL, "Rail", pTransportationLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "Subway", pTransportationLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "SubwayStation", pTransportationLayerGroup, m_pCSCLSDE);
                LoadCSCLFeatureClass(isCSCL, "TransitEntrance", pTransportationLayerGroup, m_pCSCLSDE);

                LoadCSCLFeatureClass(isCSCL, "PointOfInterest", pPlacesLayerGroup, m_pCSCLSDE);
            }

            //Load Featured Layers if CSCL map or feature selected for custom map
            if (isCSCL || isTaxLot)
            {
                LoadLayers.LoadCSCLFeatureClass(isCSCL, "Cadastral", pLayerGroup, m_pDOFTAXMAPSDE);
            }
            if (isCSCL || isCenterline)
            {
                LoadLayers.LoadCSCLFeatureClass(isCSCL, "StreetCenterline", pLayerGroup, m_pCSCLSDE);
            }
            if (isCSCL || isBuilding)
            {
                LoadLayers.LoadCSCLFeatureClass(isCSCL, "Building", pLayerGroup, m_pBUILDINGSDE);
            }
            if (isCSCL || isAddressPoint)
            {
                LoadLayers.LoadCSCLFeatureClass(isCSCL, "AddressPoint", pLayerGroup, m_pCSCLSDE); //0
            }

            //If cscl, load group layers
            if (isCSCL)
            {
                pMap.AddLayer(pBoundaryLayerGroup);
                pMap.AddLayer(pReferenceLayerGroup);
                pMap.AddLayer(pTransportationLayerGroup);
                pMap.AddLayer(pPlacesLayerGroup);
                pMap.AddLayer(pEMSLayerGroup);
                pMap.AddLayer(pLayerGroup);
            }

            //Update map contents and refresh
            IActiveView pActiveView;

            pActiveView        = (IActiveView)pMap;
            pActiveView.Extent = pEnvelope;
            pActiveView.Refresh();
            pMxDoc.UpdateContents();

            //Prompt save directory if isSave checkbox selected
            if (isSave)
            {
                UID uid = new UIDClass();
                uid.Value   = "esriArcMapUI.MxFileMenuItem";
                uid.SubType = 3;
                ICommandItem item = ArcMap.Application.Document.CommandBars.Find(uid, false);
                item.Execute();
            }
        }