private void btnAnade_Click(object sender, EventArgs e) { try { DireccionPunto ndp = new DireccionPunto(); ndp.Direccion = txtDireccion.Text; ndp.Latitud = Convert.ToDouble(txtLat.Text); ndp.Longitud = Convert.ToDouble(txtLon.Text); ndp.X = Convert.ToDouble(txtX.Text); ndp.Y = Convert.ToDouble(txtY.Text); ndp.IsGeocodificado = _dp.IsGeocodificado; ndp.GeoreferenciadorDeno = _dp.GeoreferenciadorDeno; ndp.Municipio = _dp.Municipio; ndp.NivelRegional1 = _dp.NivelRegional1; ndp.NivelRegional2 = _dp.NivelRegional2; ndp.Pais = _dp.Pais; if (String.IsNullOrEmpty(_dp.key)) { _dp.key = txtDireccion.Text; } ndp.key = _dp.key; String key = _dp.key; if (_listaObservada.ContainsKey(_dp.key)) { int i = 1; while (_listaObservada.ContainsKey(ndp.key)) { ndp.key = key + "_" + Convert.ToString(i); i++; } _listaObservada.Add(ndp.key, ndp); } else { _listaObservada.Add(ndp.key, ndp); } } catch (Exception ex) { MessageBox.Show("Error", "Verifique los campos numéricos : " + ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Aunque List<RegistroModel> es una variable global, en el próximo incremento de geoToMap, el /// proceso de georreferenciación se desagregará. /// </summary> /// <param name="codificador"></param> /// <param name="direcciones"></param> private void ProcesoLoteGeoreferenciacion(IGeocodificador codificador, List <RegistroModel> direcciones) { try { BeginInvoke(new DlgMensaje(escribeConsolaNegro), new object[] { String.Format("Se han leído {0} direcciones", direcciones.Count.ToString(CultureInfo.InvariantCulture)) }); int i = 0; items.Clear(); BeginInvoke(new DlgVoid(() => listView1.Items.Clear())); foreach (RegistroModel registro in direcciones) { if (!String.IsNullOrEmpty(registro.Direccion)) { int i1 = i; BeginInvoke( new DlgVoid( () => progressBar1.Value = (int)(((double)(i1 + 1) / (double)direcciones.Count) * 100))); i++; DireccionPunto dp = codificador.GetCoordenadas(registro.Direccion); if (dp != null) { dp.key = registro.Id; Invoke(new DlgVoid(() => items.Add(dp.key, dp))); //TO DO Posible efecto secundario EVITAR!!! registro.Id = dp.key; } } } } catch (Exception ex) { } }