// Evento general de atencion de eventos de click sobre el mapa. // Las distintas funciones a cumplir vienen definidas por flags externos: flagAddMarker, etc. public void EventoClickMouse(object sender, HtmlElementEventArgs e) { object[] args = { }; string res = (string)webBrowser.Document.InvokeScript("actualCoords", args); this.Text = "La posicion es: " + res; // Hizo un click para agregar un punto if (flagAddmarker) { btnCreate.Visible = true; actualPointID++; string idNuevoPunto = "P" + actualPointID.ToString(); string nuevoPunto = (string)webBrowser.Document.InvokeScript("actualCoords"); Zone.GeoCoord coordNuevoPunto = stringCoordToGeoCoord(nuevoPunto); markerPoints.Add(idNuevoPunto, coordNuevoPunto); actualPoint = coordNuevoPunto; // Actualiza el ListView de los puntos de la zona. //actualizarListaPuntos(); actualizarMarkersEnMapa(markerPoints); } }
// Convesion de string a Coordenadas Geometricas. private Zone.GeoCoord stringCoordToGeoCoord(string v_punto) { Zone.GeoCoord result = new Zone.GeoCoord(); string[] coords = v_punto.Split(','); result.latitude = coords[0].Substring(1); result.longitude = coords[1].Substring(0, coords[1].Length - 1); return(result); }
private void crearMarkers(string listaCoords) { string[] coordArray = listaCoords.Split(','); markerPoints.Clear(); if (coordArray.Length > 2) { actualPointID = 0; for (int i = 0; i < coordArray.Length; i = i + 2) { actualPointID++; string idNuevoPunto = "P" + actualPointID.ToString(); Zone.GeoCoord coordNuevoPunto = new Zone.GeoCoord(coordArray[i], coordArray[i + 1]); markerPoints.Add(idNuevoPunto, coordNuevoPunto); } } }
private Dictionary <string, Zone.GeoCoord> ObtenerSiguienteBufferPosiciones() { Dictionary <string, Zone.GeoCoord> res = new Dictionary <string, Zone.GeoCoord>(); long PanelIDSelected = long.Parse(frmLiveTrackingVG.DEVICEID); try { string errDesc = ""; int errCode = -1; string datos = WebServiceAPI.GetInstance().GetMultiplePositionsFromZone(PanelIDSelected.ToString(), frmLiveTrackingVG.ORGID.ToString(), out errDesc, out errCode); //Helpers.GetInstance().DoLog("datos=" + datos); Match matchRespuesta = Multiple_Pos_Data.Match(datos); if (matchRespuesta.Success) { string[] HHPositions = getMatchData(matchRespuesta, 2).Split(','); // Cada dato es: PANELID,Lat,Long,Speed,DateTime, ... 5 por cada bloque for (int i = 0; i < HHPositions.Length - 1; i = i + 5) { //long ID = Convert.ToInt64(HHPositions[i]); // Es el PANELID del HH string nombrePanel = HHPositions[i]; string lat = HHPositions[i + 1]; string lng = HHPositions[i + 2]; string speed = HHPositions[i + 3]; string dateTime = HHPositions[i + 4]; Zone.GeoCoord nuevoGPS = new Zone.GeoCoord(lat, lng); res.Add(nombrePanel, nuevoGPS); } } } catch (Exception ex) { Tools.GetInstance().DoLog("Excepcion en ObtenerSiguienteBufferPosiciones(): " + ex.Message); } //Tools.GetInstance().DoLog("ObtenerSiguienteBufferPosiciones devolvio:" + res.Count ); return(res); }