Example #1
0
        private void zoekBtn_Click(object sender, EventArgs e)
        {
            //input
            string themeCode = theme2code(themeCbx.Text);
            string catCode = cat2code(categoryCbx.Text);
            string poiTypeCode = poitype2code(typeCbx.Text);
            string keyWord = keywordTxt.Text;
            string nis;
            bool cluster = clusteringChk.Checked ;
            boundingBox extent;
            if (extentCkb.Checked) {
                IEnvelope env = view.Extent;
                IEnvelope prjEnv = geopuntHelper.Transform((IGeometry)env, wgs).Envelope;
                extent = new boundingBox(prjEnv);
                nis = null;
            }
            else
            {
                nis = municipality2nis(gemeenteCbx.Text);
                extent = null;
            }
            int count = 32;

            try
            {
                //get the data
                poiData = poiDH.getMaxmodel(Clustering: cluster,
                    q: keyWord, theme: themeCode, category: catCode, POItype: poiTypeCode, niscode: nis,
                    c: count, bbox: extent, srs: dataHandler.CRS.WGS84);

                List<datacontract.poiMaxModel> pois = poiData.pois;

                rows.Clear();

                int poiAllCount = int.Parse(poiData.labels.First().value);

                if (poiAllCount > 0)
                {
                    msgLbl.Text = string.Format("Aantal getoond:{0} - gevonden:{1}", pois.Count, poiAllCount);
                    setAddAllLabel();
                }
                else if (poiAllCount == 0)
                {
                    msgLbl.Text = "Geen resultaten gevonden voor de opgegeven selectie criteria";
                }
                else
                {
                    MessageBox.Show("Het aantal gevonden plaatsen kon niet worden bepaald, de zoekterm is te vaag. "+
                                        " Het resultaat is mogelijk niet compleet",  "Waarschuwing");
                    msgLbl.Text = string.Format("Aantal getoond:{0}, aantal gevonden kon niet worden bepaald.", pois.Count);
                    addAll2MapBtn.Text = string.Format("Voeg alle punten toe");
                }

                updateDataGrid(pois);
            }
            catch (WebException wex) {
                if (wex.Status == WebExceptionStatus.Timeout)
                    MessageBox.Show("De connectie werd afgebroken. "+
                        "Het duurde te lang voor de server een resultaat terug gaf.\n"+
                        "U kunt via de instellingen de 'timout'-tijd optrekken.", wex.Message);
                else if ( wex.Response != null )
                {
                    string resp = new StreamReader(wex.Response.GetResponseStream()).ReadToEnd();
                    MessageBox.Show( resp  , wex.Message);
                }
                else
                    MessageBox.Show(wex.Message, "Error");
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message + ": " + ex.StackTrace, "Error");
            }
        }
Example #2
0
        private void addAll2MapBtn_Click(object sender, EventArgs e)
        {
            //get input
            string themeCode = theme2code(themeCbx.Text);
            string catCode = cat2code(categoryCbx.Text);
            string poiTypeCode = poitype2code(typeCbx.Text);
            string keyWord = keywordTxt.Text;
            bool clustering = clusteringChk.Checked;
            string nis;
            boundingBox extent;
            if (extentCkb.Checked)
            {
                IEnvelope env = view.Extent;
                IEnvelope prjEnv = geopuntHelper.Transform((IGeometry)env, wgs).Envelope;
                extent = new boundingBox(prjEnv);
                nis = null;
            }
            else
            {
                nis = municipality2nis(gemeenteCbx.Text);
                extent = null;
            }

            try
            {
                //get the data
                datacontract.poiMinResponse poiMinData = poiDH.getMinmodel( q: keyWord, theme: themeCode, category: catCode,
                        Clustering: clustering, POItype: poiTypeCode, niscode: nis, bbox: extent, srs: dataHandler.CRS.WGS84);

                List<datacontract.poiMinModel> pois = poiMinData.pois;
                List<datacontract.cluster> clusters = poiMinData.clusters;

                if (pois.Count == 0 && clusters.Count == 0) return;

                if (gpExtension.poiMinLayer == null)
                {
                    String poiPath = geopuntHelper.ShowSaveDataDialog("Opslaan als");
                    if (poiPath == null) return;

                    FileInfo featureClassPath = new FileInfo(poiPath);
                    List<IField> fields = poiIMinFields();
                    IFeatureClass poiFC;

                    if (poiPath.ToLowerInvariant().EndsWith(".shp"))
                    {
                        poiFC = geopuntHelper.createShapeFile(poiPath, fields, view.FocusMap.SpatialReference,
                                                                                        esriGeometryType.esriGeometryPoint, true);
                    }
                    else if (featureClassPath.DirectoryName.ToLowerInvariant().EndsWith(".gdb"))
                    {
                        poiFC = geopuntHelper.createFeatureClass(featureClassPath.DirectoryName, featureClassPath.Name,
                                                   fields, view.FocusMap.SpatialReference, esriGeometryType.esriGeometryPoint, true);
                    }
                    else
                    {
                        throw new Exception("Is geen feature class of shapefile.");
                    }
                    gpExtension.poiMinLayer = poiFC;
                    geopuntHelper.addFeatureClassToMap(view, poiFC, false);
                }
                populateMinFields(gpExtension.poiMinLayer, pois, clusters);
                view.Refresh();
            }
            catch (WebException wex)
            {
                if (wex.Status == WebExceptionStatus.Timeout)
                    MessageBox.Show("De connectie werd afgebroken." +
                        " Het duurde te lang voor de server een resultaat terug gaf.\n" +
                        "U kunt via de instellingen de 'timout'-tijd optrekken.", wex.Message);
                else if (wex.Response != null)
                {
                    string resp = new StreamReader(wex.Response.GetResponseStream()).ReadToEnd();
                    MessageBox.Show(resp, wex.Message);
                }
                else
                    MessageBox.Show(wex.Message, "Error");
            }
            catch (Exception ex)
            {
                 MessageBox.Show(ex.Message + ": " + ex.StackTrace);
            }
        }