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"); } }
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); } }